高斯消元
来源:互联网 发布:omega7 知乎 编辑:程序博客网 时间:2024/06/02 20:07
/* 高斯消元 by sbn*/#include<iostream>#include<cstdio>using namespace std;double matrix[101][102];int n;double res[101];void debug(){ for (int i1=1;i1<=n;i1++) { for (int j1=1;j1<=n+1;j1++) cout<<matrix[i1][j1]<<" "; cout<<endl; }}void print(int x){ if (x==0) return; double ans;ans=0.00000; for (int i=x+1;i<=n;i++) { matrix[x][i]*=res[i]; ans+=matrix[x][i]; } ans=(matrix[x][n+1]-ans)/matrix[x][x]; res[x]=ans; print(x-1); printf("%.2f\n",res[x]);}int main(){ cin>>n; for (int i=1;i<=n;i++) for (int j=1;j<=n+1;j++) cin>>matrix[i][j]; for (int i=1;i<n;i++) for (int j=i+1;j<=n;j++) for (int k=n+1;k>=i;k--) matrix[j][k]-=matrix[j][i]/matrix[i][i]*matrix[i][k]; //debug(); if(matrix[n][n]==0) cout<<"No Solution"<<endl;else print(n);}
阅读全文