高斯消元

 1 void solve(){
 2     rep(i,1,n+1){
 3         int t=i;
 4         rep(j,i+1,n+1) if(fabs(a[j][i])>fabs(a[t][i])) t=j;
 5         if(t!=i) rep(j,1,n+2) swap(a[i][j],a[t][j]);
 6         rep(k,i+1,n+1){
 7             double p=a[k][i]/a[i][i];
 8             rep(j,i,n+2) a[k][j]-=p*a[i][j];
 9         }
10     }
11     for(int i=n+1;i;i--){
12         rep(j,i+1,n+1) a[i][n+1]-=a[j][n+1]*a[i][j];
13         a[i][n+1]/=a[i][i];
14     }
15     rep(i,1,n+1){
16         printf("%.3lf",a[i][n+1]);
17         if(i!=n) putchar(' ');
18     }
19 }
View Code

 

posted @ 2015-12-03 14:31  ChenThree  阅读(150)  评论(0编辑  收藏  举报