您的当前位置:首页正文

用列主元高斯消去法解线性方程Ax

来源:爱go旅游网


//用列主元高斯消去法解线性方程Ax=b

#include

#include

using namespace std;

bool Gauss (int n,double a[][10],double x[10])

{

int k,i,j,s;

double p,t;

for(k=1;k<=n-1;k++)

{

s=k;

for(i=k+1;i<=n;i++)

{

if(fabs(a[s][k]){

s=i;

}

}

if(fabs(a[s][k])<1.0e-14)

return false;

for(j=k;j<=n+1;j++)

{

t=a[k][j];

a[k][j]=a[s][j];

a[s][j]=t;

}

for(i=k+1;i<=n;i++)

{

p=a[i][k]/a[k][k];

for(j=k+1;j<=n+1;j++)

{

a[i][j]-=p*a[k][j];

}

}

}

if(fabs(a[n][n])<1.0e-14)

return false;

for(k=n;k>=1;k--)

{

x[k]=a[k][n+1];

for(j=k+1;j<=n;j++)

{

x[k]-=a[k][j]*x[j];

}

x[k]/=a[k][k];

}

return true;

}

void main(void)

{

double a[10][10],x[10];

int i,j,n=3;

cout <<\"输入矩阵系数 : \"<<'\\n';

for(i=1;i<=n;i++)

{

for(j=1;j<=n+1;j++)

cin >>a[i][j];

}

if(Gauss(n,a,x))

{

cout <<\"方程的解为: \"<for(i=1;i<=n;i++)

cout <}

else cout <<\"方程的系数矩阵为奇异矩阵\"<<'\\n';

}

因篇幅问题不能全部显示,请点此查看更多更全内容