The_Icer
2016-08-09 14:34
采纳率: 62.5%
浏览 1.5k
已采纳

关于C++中高斯消去法代码

我写了一段高斯消去法的代码,但是运行结果都是nan,请教怎么回事
#include
using namespace std;
int main(){
int i=4;
double str[i][i+1]={{2,3,11,5,2},{1,1,5,2,1},{2,1,3,2,-3},{1,1,3,4,-3}};
for(int m=0;m for(int n=m+1;n str[m][n]/=str[m][m];
}
str[m][m]=1;
for(int p=m+1;p for(int q=m+1;q str[p][q]-=str[p][m]*str[m][q];
}
str[p][m]=0;
}
}
for(int m=i-1;m>0;m--){
for(int p=m-1;p>=0;p--){
for(int q=p+1;q<m;q++){
str[p][q]-=str[p][m]*str[m][p];
}
str[p][i]-=str[p][m]*str[m][i];
str[p][m]=0;
}
}
for(int m=0;m<i;m++){
cout<<"x"<<m<<"="<<str[m][i]<<endl;
}
return 0;
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2016-08-09 14:40
    已采纳

    http://codepad.org/PR105Hca

    x0=-2
    x1=-2.22045e-16
    x2=1
    x3=-1

    可以执行

    已采纳该答案
    打赏 评论
  • threenewbee 2016-08-09 14:41

    x1很小,可以视作是0

    打赏 评论

相关推荐 更多相似问题