高斯消元 浮點高斯消元

2021-07-26 13:41:10 字數 1441 閱讀 6005

浮點數高斯消元

【問題描述】

給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。

【輸入格式】

第1行:2個整數n和m,(n, m <=400,且n不一定等於m)

接下來n行,每行m+1個整數,表示乙個方程的m個未知數的係數和常數

【輸出格式】

如果無解,輸出「no solution」。

如果有唯一解,輸出m行,每行乙個未知數的值,保留到小數點第4位。格式見樣例。

如果有無窮解,輸出m行,如果未知數有確定解,直接輸出。如果是自由變元,輸出「xx isfree number」

【輸入樣例1】

3 3

2 -1 3 1

4 2 5 4

2 0 2 6

【輸出樣例1】

x[1] = 9.0000

x[2] = -1.0000

x[3] = -6.0000

【輸入樣例2】

3 3

2 -1 3 1

4 -2 5 4

2 -1 4 -1

【輸出樣例2】

x[1] not determined

x[2] not determined

x[3] = -2.0000

【輸入樣例3】

3 4

5 -1 2 1 7

2 1 4 -2 1

1 -3 -6 5 0

【輸出樣例3】

no solution

#include

#include

#include

#include

#define sf scanf

#define pf printf

#define maxn 410

#define eps 1e-8

using

namespace

std;

double a[maxn][maxn],x[maxn];

int n,m,rank,f[maxn];

void init()

void gauss()

if(maxr!=r)

for(int i=c;i<=m;i++)

swap(a[r][i],a[maxr][i]);

for(int i=0;iif(i!=r&&fabs(a[i][c])>eps)

for(int j=m;j>=c;j--)

a[i][j]-=a[r][j]/a[r][c]*a[i][c];

}rank=r;

}bool check()

if(cnt==1)

}return1;}

void print()

}else

}int main()

}

矩陣消元 高斯消元

安利一波高斯消元的部落格,內容很詳細。看完這個相信你已經理解了大概,高斯消元求線性方程組,在學習線性代數 大學課程 的時候我們都接觸過。原理是先把執行緒組轉換成矩陣,然後把它等價變換成上三角矩陣,這樣從下到上依次可以求出解集。高斯消元模板 模板題 include define n 205 using...

矩陣乘 高斯消元專題小結 高斯消元

i p其它題太水了就不寫了,這裡說一下o和p。我太懶不想寫 op這兩個題是高斯消元求期望的題。對於p題,求從 點到 點的步數期望,先從 點bfs一遍找到所有可以到達的點,對於可達點每個點是乙個變數。因為終點有任意多而起點只有乙個,這裡可以反過來求從任意乙個終點走到起點的期望。於是對於每乙個終點的期望...

高斯消元法(二) 高斯消元法原理

高斯消去法是一種常用的求解線性方程組的方法,通過逐次消元後,在回代求解,實際計算中常用的一種方法。順序消去法 將ax b按照從上至下 從左至右的順序化為上三角方程組,中間過程不對矩陣進行交換,主要步驟如下。step1 將第2行至第n行,每行分別與第一行做運算,消掉每行第乙個引數。公式如 形成如下圖所...