/*
高斯消元
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);
}
高斯消元
最新推荐文章于 2025-01-08 10:05:27 发布
