高斯消元模板

2021-08-30 17:44:34 字數 1306 閱讀 1627

,y,

z...

x,y,z...

x,y,z.

..,可以得到乙個上三角矩陣。這時已經可以直接讀出最後乙個方程的解了,再回代到上面的方程就行了。

具體實現:

對於x ixi

xi,找到xixi

xi係數最大的乙個方程,以減少精度誤差。

然後,把該方程的xixi

xi係數轉化為1,帶入後面所有方程消元。

考慮倒著往回進行代入消元,每得到乙個xixi

xi的答案,就把上面方程中的所有xixi

xi消掉。然後矩陣就成了乙個單位矩陣,輸出答案即為各個未知數的解。

模板題是luogu3389 【模板】高斯消元法.

#include

#include

#include

#include

using

namespace std;

const

int maxn =

110;

const

double eps =

1e-6

;int n;

double ele[maxn]

[maxn]

;double ans[maxn]

;int

main()

scanf

("%lf"

,&ele[i]

[n +1]

);}for

(int i =

1; i <= n; i++)if

(maxn != i)

swap

(ele[i]

, ele[maxn]);

double div = ele[i]

[i];

for(

int j =

1; j <= n +

1; j++

) ele[i]

[j]/

= div;

for(

int j = i +

1; j <= n; j++)}

} ans[n]

= ele[n]

[n +1]

;for

(int i = n -

1; i >=

1; i--

) ans[i]

= ele[i]

[n +1]

;}for(

int i =

1; i <= n; i++

)return0;

}

高斯消元模板

include include include include include include include include typedef long long ll const int n 1008 高斯消元模板 const double eps 1e 12 double aug n n 增廣矩...

高斯消元模板

用迭代的辦法打會簡潔一些。有些精度上的細節需要注意。多次消元要清空use和cho陣列。實數高斯消元 int use maxn cho maxn void solve equation int n,int m break fd i,n,1 if cho i 自由元的個數就是cho為0的個數 無解的話去...

高斯消元模板

高斯消元 const int n 20 const double eps 1e 7 double a n n x n double c n n m表示行數,n表示列數 下標從0開始儲存,常數列不算進列數 返回值 1表示無解,0表示唯一解,大於0表示無窮解,並返回自由變元的個數 int gauss i...