解方程与高斯消元
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解方程与高斯消元相关的知识,希望对你有一定的参考价值。
解决多元一次方程组:
n个方程n个未知数
高斯消元法:
思路:
1.把方程未知数的系数写成一个矩阵
2.消去x1,用除第一行以外的其他行减去第一行,写在原位上
3.同理第二步,消去第三行的x2
4.原来的矩阵会变成一个上三角矩阵
5.最后直接解方程
*如果当前方程需要消元的位置系数是0,就把当前方程和下面第一个非0的方程换一下位置
反正也不影响答案
代码实现:
void gauss() { juzhen:m for(int i=1;i<=n;++i) { if(m[i][i]==0) { for(int j=i+1;j<=n;++j) { if(m[j][i])//如果找不到,那么可以随便取值,无所谓 { swap(m[i],m[j]); break; } } } for(int j=i+1;j<=n;++j) { ratio=m[j][i]/m[i][i]; for(int k=1;k<=n+1;++k)//k也可以从i开始 m[j][k]-=m[i][k]*ratio; } } for(int i=n;i>=1;--i) { solution[i]=m[i][n+1]; for(int j=i+1;j<=n;++j) solution[i]-=m[i][j]*solution[j]; solution[i]/=m[i][i]; } }
还没编译过,不知道对不对。。
解决多元多次方程组
e.g.
f(x)=ax^5+bx^4+cx^3+dx^2+ex+f
解法:令x=1,2,3,4,5,带入方程,可得六个一次方程,然后用高斯消元
那么如果不一定是5次呢
用高斯消元造一个自动找规律机/滑稽,打表
以上是关于解方程与高斯消元的主要内容,如果未能解决你的问题,请参考以下文章