怎么样修改?
我用C++写了一个用高斯消去法解方程的程序,但是不知道哪里错了,想请各位帮忙看下是哪里错了:0.012x1+0.01x2+0.167x3=0.671
x1+0.8334x2+5.91x3=12.1
3200x1+1200x2+4.2x3=981
程序如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
float A[3][4]={{0.012,0.01,0.167,0.6781},{1,0.8334,5.91,12.1},{3200,1200,4.2,981}};
int i,j;
float x1,x2,x3;
float B[2][3];
float C[2];
for(i=0;i<3;i++)
for( j=0;j<4;j++)
B[i-1][j-1]=A[i][j]-A[i][0]*A[0][j]/A[0][0];
C[0]=B[1][1]-B[1][0]*B[0][1]/B[0][0];
C[1]=B[1][2]-B[1][0]*B[0][2]/B[0][0];
x3=C[1]/C[0];
x2=(B[0][2]-B[0][1]*x3)/B[0][0];
x1=(A[0][3]-A[0][1]*x2-A[0][2]*x3)/A[0][0];
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl;
cout<<"x3="<<x3<<endl;
return 0;
}
编译时没错,但就是算的不对,不知是哪里错了。
正确结果是:x1=-104.0 x2=100.0 x3=5.546
谢谢各位了。