Gauss 消元法求解線性方程組

2021-10-01 23:33:23 字數 1574 閱讀 9995

gauss 消元法求解線性方程組

消元法是將方程組中的一方程的未知數用含有另一未知數的代數式表示,並將其代入到另一方程中,這就消去了一未知數,得到一解;或將方程組中的一方程倍乘某個常數加到另外一方程中去,也可達到消去一未知數的目的。消元法主要用於二元一次方程組的求解。

1)兩方程互換,解不變;

2)一方程乘以非零數k,解不變;

3)一方程乘以數k加上另一方程,解不變 [2] 。

舉例: 有這樣乙個簡單的例子:

x1 + 2x2 = 5;

2x1 + 3*x2 = 8

其解為 x1=1;x2=2;

#include

#include

#include

using

namespace std;

const

int maxn=30;

const

double eps=

10e-8

;double a[maxn]

[maxn]

;//儲存方程組對應矩陣

bool l[maxn]

;//是否為自由元

int start[maxn]

;//開始狀態

int endss[maxn]

;//結束狀態

//高斯消元模板

inline

intsolve

(const

int&n)}if

(fabs

(a[r]

[i])

for(

int j=

0; j++j)

} l[i]

=true

,++r;

cout << endl;

for(

int i =

0; i) cout << endl;}}

return res;

}//模板結束

bool

issolve

(const

int&n)}if

(flag&&a[i]

[n-1]!=

0)return

false;}

return

true;}

void

result

(const

int&n)

;double sum =0;

for(

int i =

1; i < cols; i++

) ans[cols - i]

= sum / a[cols-

1- i]

[cols -

1- i];}

for(

int i =

1; i < cols; i++)}

intmain()

cout << endl;

}//求解過程

int ans=

solve

(n);if(

!issolve

(n-1))

else

return0;

}

消元法求解線性方程組

這裡的消元法,主要是針對矩陣 a 可逆的情況下 如果 a 不可逆消元後不好回代 即線性方程組只有唯一解的情況下,有多解的情況的解法在後面介紹。目前我們用於解線性方程組的方法依然是gauss消元法。在gauss消元法中,我們將右側向量b與a寫在一起作為乙個增廣矩陣進行同步的操作,這就預設了對a與b的運...

高斯消元求解線性方程組

蒟蒻 nanjo qi 前天考了一次試 第一題就華麗麗地爆零了。解一次方程組我會啊,但是解一千個有百來八十個未知數的 棄了棄了orz。考完了才知道有高斯消元這個神奇的東西,於是就去簡單了解了一下。高斯消元法是線性代數規劃中的乙個演算法,可用來為線性方程組求解,還可以求出矩陣的秩,以及求出可逆方陣的逆...

線性方程組(高斯消元)

acm模版 列主元gauss消去求解a x b 返回是否有唯一解,若有解在b中 define fabs x x 0 x x define eps 1e 10 const int maxn 100 int gausscpivot int n,double a maxn double b if fabs...