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

如题所述

#include<stdio.h>

int main()

{    

int a[3][4]={{1,2,3,1},{2,7,5,6},{1,4,9,-3}};

int i,j;

//第一行求解,现在第一行第一个参数就为1,所以不用作处理,直接消其它行第一列参数

for (i=1;i<3;i++)

{

for (j=3;j>=0;j--)

{

a[i][j]=a[i][j]-a[i][0]*a[0][j];

}

}

//第二行求解,先将第二行参数归一化

a[1][3]=a[1][3]/a[1][1];

a[1][2]=a[1][2]/a[1][1];

a[1][1]=1;

//消其它行第二列参数

//先消第一行

for (j=3;j>0;j--)

{

a[0][j]=a[0][j]-a[0][1]*a[1][j];

}

//消第三行

for (j=3;j>0;j--)

{

a[2][j]=a[2][j]-a[2][1]*a[1][j];

}

//求解第三行,先将第三行第参数归一化

a[2][3]=a[2][3]/a[2][2];

a[2][2]=1;

//消其它行第三列参数

for (i=0;i<2;i++)

{

for (j=3;j>1;j--)

{

a[i][j]=a[i][j]-a[i][2]*a[2][j];

}

}

printf("方程组解为:\nx1=%d\nx2=%d\nx3=%d\n",a[0][3],a[1][3],a[2][3]);

return 0;

}

结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-04-21

c++ 高斯消去法 求线性方程组的解
void InputData(); \/\/输入数据 void solve_eqution(); \/\/高斯全主元消去 void gauss_all_valueiaoqu(); \/\/Gauss全主元消去法 void gauss_calculate(); \/\/高斯消去法以后计算未知量的结果 void evaluechange_hang(int m,int n);void evaluechange_a_lie(int m,int n);void e...

...语言或者c++编程,实现用高斯消元法求解线性方程组Ax=b。
void gaussj(double a[], int n, double b[]){ int i,j,k,l,ll,irow,icol;double big,pivinv,dum;int ipiv[50], indxr[50], indxc[50];for (j=0;j<=n-1;j++){ ipiv[j]=0;} for (i=0;i<=n-1;i++){ big=0.0;for (j=0;j<=n-1;j++){ if(ipiv[j]!=1)...

如下方程组如何求解? C++
利用高斯消元法,将方程组转化成矩阵,在解就行了,主要思路就是这样。

C++高斯列主元消去法,这是我写的程序,计算结果不正确,求高手修改下_百 ...
cout << "方程的解为" << endl;for(i = 0; i < n;i++) cout << b[i] << endl;return 0;}

求用C++编程解方程组
如果单就你给出的这个方程来说,最简单的办法就是手工解出x,y的解析表达式,然后让计算机去执行具体的运算工作,就你的这个方程来说,应该不难。如果想实现一个通用的多元方程组求解程序则要分两种情况:对于线形多元方程组有确定的方法求解,比如线形代数中的高斯消元法、QR分解法等,但是代码量很大...

用C++编程简单迭代法和史蒂芬孙迭代法和GAUSS列主消元法
列主元消元法解n元线形方程组:1、先把线形法程组写成增广矩阵的形式。2、应用列主元的方法,把增广矩阵转换成行阶梯矩阵。枚举k从0到equ – 1,当前处理的列为col(初始为0) ,每次找第k行以下(包括第k行),col列中元素绝对值最大的列与第k行交换。如果col列中的元素全为0,那么则处理col ...

【C++】解二元一次方程组
int main(){ double a,b,c,d,e,f,x,y;cin>>a>>b>>c>>d>>e>>f;\/\/直接输入ax+by=c,dx+ey=f的参数,化简一下不难 x=(e*c-b*f)\/(a*e-b*d);y=(d*c-a*f)\/(b*d-a*e);\/\/这里指ax+by=c,dx+ey=f的解 cout << fixed << setprecision(1); \/\/保留位数自行调整...

C++解数学方程
不知道你听没听过“克莱默”法则,那个是专门用来解n元一次方程组的,利用线性代数里的行列式。其它数学解法灵活性太高,没有统一的步骤,难以用程序实现,克莱默法则完美的解决了这个问题,它有一个固定的流程 具体你可以搜一下,一言难尽。。。

求用C++编程解方程组
对于线形多元方程组有确定的方法求解,比如线形代数中的高斯消元法、QR分解法等,但是代码量很大,网上有相关的程序代码可以搜索,但也要求你具有一定的线性代数基础知识;对于非线性多元方程组,理论上没有确定的办法解决,必须视具体情况先将其转化成线性方程组后再求解,但这种转化不是一定可行,有可能...

爆肝期末!7道代码实验吃透《计算方法》(C++)
题目三:通过列主元素高斯消去法解如下方程组,获取其解。x1 + 2x2 - x3 = 3 x1 - x2 + 5x3 = 0 4x1 + x2 - 2x3 = 2 代码实现:(省略代码实现,直接给出核心逻辑)题目四:使用紧凑存储的Doolited分解法求解上述方程组。要求输出分解结果。方法一:(省略具体方法描述,直接给出核心...

相似回答