高斯消元原理

高斯消元是用来求线性方程组的解,行列式求值,或者矩阵求逆等等。主要有两个步骤:化行阶梯形矩阵回带

高斯消元的时间复杂度为,以下代码中代表方程个数,代表未知数个数,数组用来判断哪些未知数是

变元,数组用来存求得的解。

 

代码:

#include 
#include 
#include 
#include 
#include 

using namespace std;
const int N = 105;

int gcd(int a,int b)
{
    return b ? gcd(b,a%b):a;
}

int lcm(int a,int b)
{
    return a / gcd(a,b) * b;
}

/**n个方程,m个未知数,r代表当前处理的行,c代表当前处理的列*/
void Gauss(int a[][N],int n,int m,int &r,int &c)
{
    r = c = 0;
    for(; r abs(a[maxi][c]))
                maxi = i;
        if(maxi != r)
        {
            for(int i=r; i=0; i--)
        {
            int id = 0;
            int cnt = 0;
            for(int j=0; j 1) continue;
            int t = a[i][m];
            for(int j=0; j=0; i--)
    {
        int t = a[i][c];
        for(int j=i+1; j>n>>m)
    {
        for(int i=0; i>a[i][j];
        }
        int r,c;
        Gauss(a,n,m,r,c);
        Rewind(a,x,f,n,m,r,c);
        Print(a,n,m);
        puts("");
    }
    return 0;
}

 

 

你可能感兴趣的:(基础数学)