C++用高斯消元法求解方程组

问题描述:

C++用高斯消元法求解方程组
1个回答 分类:综合 2014-11-17

问题解答:

我来补答
#include<stdio.h>
int main()
{    
\x05int a[3][4]={{1,2,3,1},{2,7,5,6},{1,4,9,-3}};
\x05int i,j;
\x05//第一行求解,现在第一行第一个参数就为1,所以不用作处理,直接消其它行第一列参数
\x05for (i=1;i<3;i++)
\x05{
\x05\x05for (j=3;j>=0;j--)
\x05\x05{
\x05\x05\x05a[i][j]=a[i][j]-a[i][0]*a[0][j];
\x05\x05}
\x05}
\x05//第二行求解,先将第二行参数归一化
\x05a[1][3]=a[1][3]/a[1][1];
\x05a[1][2]=a[1][2]/a[1][1];
\x05a[1][1]=1;
\x05//消其它行第二列参数
\x05//先消第一行
\x05for (j=3;j>0;j--)
\x05{
\x05\x05a[0][j]=a[0][j]-a[0][1]*a[1][j];
\x05}
\x05//消第三行
\x05for (j=3;j>0;j--)
\x05{
\x05\x05a[2][j]=a[2][j]-a[2][1]*a[1][j];
\x05}
\x05//求解第三行,先将第三行第参数归一化
\x05a[2][3]=a[2][3]/a[2][2];
\x05a[2][2]=1;
\x05//消其它行第三列参数
\x05for (i=0;i<2;i++)
\x05{
\x05\x05for (j=3;j>1;j--)
\x05\x05{
\x05\x05\x05a[i][j]=a[i][j]-a[i][2]*a[2][j];
\x05\x05}
\x05}
\x05printf("方程组解为:\nx1=%d\nx2=%d\nx3=%d\n",a[0][3],a[1][3],a[2][3]);
\x05return 0;
}
结果:
 
 
展开全文阅读
剩余:2000
下一页:先解十一题
也许感兴趣的知识