//用列主元高斯消去法解线性方程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 <<\"方程的解为: \"< cout < else cout <<\"方程的系数矩阵为奇异矩阵\"<<'\\n'; } 因篇幅问题不能全部显示,请点此查看更多更全内容