高斯消元是一種解方程的很巧妙的方法,核心是把方程轉換成矩陣形式,然後再通過加減消元,求出值後再回帶,就解出了這個方程,這裡我就不贅述了。
我一般用高斯-約旦消元法,這種方法是直接轉換成單位矩陣求解,減少回帶次數,提高精確度,實現方式如下:
下方是乙個方程
把它轉換成矩陣形式就是:
我們可以這樣對其進行變換:
在第一行找到第乙個元素,向下尋找有沒有絕對值更大的,如果有就交換。
對於之後的如法炮製即可。
最後,我們就可以得到這樣乙個矩陣:很顯然,在左邊是單位矩陣的情況下,右邊即為原方程的解。
需要注意的是,如果在轉換的時候主元係數為0,這種就是無解(右邊為非零數)或無窮多解(右邊為零),如下為無窮多解:
可以發現,消元已經已經無法進行了。
所以,演算法的思路已經出來了,接下來根據思路模擬就行了。
核心**如下:
const double eps=1e-6;恩,這就是我學了幾天沒學懂的東西void guass-jordan()
for(int j=1;j<=n;++j)
if(j!=i)
}for(int i=1;i<=n;++i)a[i][n+1]/=a[i][i];
return
;}
高斯 約旦消元法
高斯 約旦消元法 此演算法是基於高斯消元的基礎上改進而成的,唯一不同之處是多進行了幾次矩陣變換使得化為行最簡型矩陣。相比於高斯消元法此方法效率較低,但是不需要回帶求解 此演算法的過程大概為 首先確定每個a i i a i i a i i 不為0 00 如果為0 00就和下面的行替換 接著將每個a i...
高斯 約旦消元法
學了將近兩個晚上。突然看懂時感覺自己是個 寫個部落格記一下吧。模板 洛谷p3389 模板 高斯消元法 有 n 個形如 a 1x 1 a 2x 2 cdots a nx n b 的方程。解方程組。有唯一解則將其求出,否則輸出no solution。把方程組用矩陣形式寫出來 left begin a a...
數學 高斯 約旦消元法
給定 n 元一次方程組 begin a x 1 a x 2 cdots a x n b 1 a x 1 a x 2 cdots a x n b 2 cdots a x 1 a x 2 cdots a x n b n end 請求出方程組的解的情況 對於這樣的問題,我們可以使用高斯消元法進行求解,當然...