高斯消元法(选主元).txt
来自「高斯消元法(选主元)这个也是数学方法中的常用计算程序学过的人都知道的」· 文本 代码 · 共 60 行
TXT
60 行
//高斯消元法(选主元)
#include <iostream.h>
#include <math.h>
int main()
{
int i,j,k,n,t,r;
double matrix[50][50],temp;
cout<<"请输入方程阶数:";
cin>>n;
for (i=1;i<=n;i++) //输入矩阵
{
for (j=1;j<=n+1;j++)
{
cout<<"a["<<i<<"]["<<j<<"]";
cin>>matrix[i][j];
}
}
for(k=1;k<=n-1;k++) //迭代
{
t=fabs(matrix[k][k]); //选主元
r=k;
for(i=k+1;i<=n;i++)
{
if (t<fabs(matrix[i][k])) {r=i;t=fabs(matrix[i][k]);}
}
if(r!=k)
{
for(j=k;j<=n+1;j++)
{
temp=matrix[r][j];
matrix[r][j]=matrix[k][j];
matrix[k][j]=temp;
}
}
if (matrix[k][k]==0) {cout<<"对角元为零,消元失败。";return 0;}
for(i=k+1;i<=n;i++)
{
matrix[i][k]=matrix[i][k]/matrix[k][k]; //l[i][k]=matrix[i][k]
for (j=k+1;j<=n+1;j++)
{
matrix[i][j]=matrix[i][j]-matrix[i][k]*matrix[k][j];
}
}
}
for(k=n;k>=1;k--) //回代
{
temp=0;
for(i=k+1;i<=n;i++)temp=temp+matrix[k][i]*matrix[i][n+1];
matrix[k][n+1]=(matrix[k][n+1]-temp)/matrix[k][k];
}
cout<<"方程组的解为:"<<endl;
for(k=1;k<=n;k++)
{
cout<<"a["<<k<<"]="<<matrix[k][n+1]<<" ";
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?