zoukankan      html  css  js  c++  java
  • 学习笔记——gauss消元法

    。。。看了好几篇博客,说得都挺好的。。。

    这里直接安利一篇讲得很棒的博客吧。。。

    http://blog.csdn.net/u010182633/article/details/45225179

    我们经常讲的是正常版递归上三角矩阵的gauss消元,这里上一份高斯——若尔当消元的代码,就是对角线矩阵消元

    复杂度O(n^3)

    //a 方程组对应的矩阵
    //n 未知数个数
    //l,ans 存储解,l[]表示是否为自由元
    //返回值:解空间的维数 
    
    inline int gauss(double a[][MAXN],double ans[],bool l[],const int& n){
        int res=0,r=0;
        for(int i=0;i<n;i++)
            l[i]=false;
        for(int i=0;i<n;i++){
            for(int j=r;j<n;j++)
                if(fabs(a[j][i])>EPS){
                    for(int k=i;k<n;k++)
                        swap(a[j][k],a[r][k]);
                    break;    
                }
            if(fabs(a[r][i])<EPS){
                ++res;
                continue;
            }
            for(int j=0;j<n;j++){
                if(j!=r && fabs(a[j][i])>EPS){
                    double tmp=a[j][i]/a[r][i];
                    for(int k=i;k<n;k++)
                        a[j][k]-=tmp*a[r][k];
                }
            }
            l[i]=true;++r;
        }
        for(int i=0;i<n;i++)
            if(l[i])
                for(int j=0;j<n;j++)
                    if(fabs(a[j][i])>0)
                        ans[i]=a[j][n]/a[j][i];
        return res;
    }
    View Code
  • 相关阅读:
    python 数据类型 基础第二天
    Python基础第一篇
    前言、入门程序、常量、变量
    win10打开移动热点让手机连接上网教程
    win10移动热点问题
    博客园快速美化
    Idea提示没有符号类错误解决
    mybatis复习01
    test
    d190305面试题01总结
  • 原文地址:https://www.cnblogs.com/JimmyC/p/6596490.html
Copyright © 2011-2022 走看看