需要一些有关此代码的帮助。我正在尝试编程高斯消除;编译时代码没有问题,但是当我执行时,程序总是向我显示:“解决方案是向量0”。我有些错误吗?非常感谢。
以下是代码:
void Elim_Gaussiana()
{
int n,i,j,k;
double A[20][20],B[20][20],x[20][20],aik,s = 0.0;
//Elimination (triangularization process)
for(k = 1;k <= n-1;k++)
{
for(i = k+1;i <= n;i++)
{
aik = A[i][k]/A[k][k];
for(j = k;j <= n+1;j++)
B[i][j] = A[i][j] - A[k][j]*aik;
}
}
//Back-substitution
x[n][1] = B[n][n+1]/B[n][n];
if(B[n][n] == 0)
cout<<"There's no solution"<<endl;
else
{
for(i = n-1;i >= 1;i--)
{
for(j = i+1;j <= n;j++)
s = B[i][j]*x[j][1];
x[i][1] = (B[i][n+1] - s)/B[i][i];
}
}
cout<<"Solution vector:"<<endl;
cout<<endl;
for(j=1; j<=n; j++)
{
cout<<"x["<<j<<"]"<<" = "<<x[j];
}
cout<<endl;
}