码迷,mamicode.com
首页 > 其他好文 > 详细

解方程与高斯消元

时间:2017-07-16 20:24:11      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:影响   blog   高斯   取值   自动   oid   gauss   --   高斯消元法   

解决多元一次方程组:

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次呢
用高斯消元造一个自动找规律机/滑稽,打表

解方程与高斯消元

标签:影响   blog   高斯   取值   自动   oid   gauss   --   高斯消元法   

原文地址:http://www.cnblogs.com/mljkw-gsry/p/7191465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!