
發布
注冊
/
登錄列主元高斯消去法
關注創建者:sniper_5292 創建時間:2020-02-05

列主元高斯消去法的實例教程
本程序實現了三種方法,分別是列主元高斯消去法,直接三角分解法,列主元三角分解法
計算結果展示:
a. 列主元高斯消去法
b. 直接三角分解法
c. 列主元三角分解法求解
.
==> 關于下三角形方程組求解函數試下如下:
==> 這里的兩個工具類函數,如下所示:
==>
高斯消去的計算結果為:
LU分解的計算結果為:
==> 標準數據為:
標準結果為:
==> 我們所完成的兩種方法的計算結果是正確的。
支付寶贊助
微信:
求解方程組中的未知量的具體方式分直接法和迭代法,一般在有限元計算過程中都采用的是迭代法,但是對于那些很小的問題便可以采用直接法來直接得到。
2. 本次主要討論的是列主元高斯消去法。
==》 順道吐槽一下這個自帶的插入代碼的功能,很差勁。
程序名稱
gs1(n,n1,a,ep,kwji)――Gauss消去法
功 能
本程序用高斯消去法求線性方程組
的解,其中A為n×n的系數矩陣,x為解向量,b為方程組右端n為列向量。
使用說明
子程序語句 subroutine gs1(n,n1,a,ep,kwji)
參數說明
◎ a 輸入參數,n×n1個元素的二維實數組,存放由系數矩陣和右端列向量所組成的增廣矩陣,存儲方式是按
列存放,亦是輸出參數,其n1列存放解向量。
◎ n 整變量,輸入參數,方程組的階數。
◎ ep 實變量,輸入參數,作控制常數用,通常為比較小的正實數。
◎ kwij 整變量,輸出參數,標志。當矩陣A(k-1)(其意義見方法簡介)的第k列的元素的絕對值均小于
ep時,令kwji=1,這時認為方程組無解;否則令kwji=0。
方法簡介
高斯消去法由兩部分組成,即向前過程和回代過程。
向前過程由n-1步組成。假設向前過程以進行k-1步,得到矩陣A(k-1),它有
式: 右端項為
第k步得到的矩陣A(k)及右端項b(k)的元素由下列公式確定
回代過程的目的是求出方程組的解。其計算公式如下:
gs1.zip
展開 通常情況下,得到的該方程組中的K不是滿秩矩陣,其矩陣行列式為0,因此此時U的解不唯一,在采用拉格朗日乘子法或者罰函數法等方式引入了邊界條件進行修正后,K為滿秩矩陣,從而U的解唯一。
之后的任務就是求解這個方程組。求解該方程組的方式通常有兩種:直接法和迭代法。高斯消去法,就是一種傳統的直接求解法,其基本步驟如下:
例:求解
(1)
1.通過行加減,將第2-4行的第一列變為0(即line2=line2+line1*4/5...,右側的向量需要同樣地對應操作):
(2)
2. 繼續行加減,將第3-4行的第二列變為0:
(3)
3. 繼續行加減,將第4行的第3列變為0:
(4)
在得到(4)式以后,根據最后一行,可以直接求出U4的值,接著,再將U4的值帶入第3行,求出U3,再代入第二行...,從而最終求出所有U。
由此可見,高斯消去法實際上是通過行變換,將系數矩陣轉換為上三角矩陣,接著先求出最后一個值,然后依次往上回代,求出所有待求的U。
對上述過程進行算法總結:
(1)
上述過程完成的是對左側的系數矩陣和右側的向量進行變換,n是系數矩陣a的階數,c是用于行變換的系數,通過上述變換后,得到的a為上三角矩陣,b為對應的右側向量。
(2)
上述過程完成的是依次將求得的值回代入方程中,最終獲得的b,即為方程ax=b的解。
編程:
上述例子是針對的滿秩系數矩陣的求解,200階的系數矩陣求解時間約為0.01s的級別。
展開 
列主元高斯消去法的相關專題、標簽、搜索
列主元高斯消去法的最新內容
在之前的文章[數值算法與編程]高斯消去法 中,本公眾號編寫了高斯消去法求解線性方程組的具體代碼。其具體算法如下:
(1)消元部分
(2)回代部分
很明顯,對于某些矩陣,使用上述算法可能會出現a(i,i)為0的情況,而一旦出現這種情況,該算法實際上就無法繼續進行求解。
以以下方程組為例:
上述方程組的系數矩陣為:
首先是頭文件數據信息
然后是要進行基本操作的函數文件:
==> 這里調用的上三角形方程組求解的實現過程如下:
主函數的測試案例為:
==> 下面進行矩陣的LU分解,進而求解方程組.
==> 關于下三角形方程組求解函數試下如下:
==> 這里的兩個工具類函數
本程序實現了三種方法,分別是列主元高斯消去法,直接三角分解法,列主元三角分解法
計算結果展示:
a. 列主元高斯消去法
b. 直接三角分解法
c. 列主元三角分解法求解
等參數公式描述-四節點四邊形單元-高斯積分法-python編程
本次主要討論的是列主元高斯消去法。
==》 順道吐槽一下這個自帶的插入代碼的功能,很差勁。
在線性有限元計算中,通過單元剛度矩陣推導,整體剛度矩陣組裝等步驟后,最終得到的是一個線性方程組:
其中,K是整體剛度矩陣,U是未知的節點位移向量,F是荷載向量。通常情況下,得到的該方程組中的K不是滿秩矩陣,其矩陣行列式為0,因此此時U的解不唯一,在采用拉格朗日乘子法或者罰函數法等方式引入了邊界條件進行修正后,K為滿秩矩陣,從而U的解唯一。
之后的任務就是求解這個方程組
程序名稱
gs1(n,n1,a,ep,kwji)――Gauss消去法
功 能
本程序用高斯消去法求線性方程組
的解,其中A為n×n的系數矩陣,x為解向量,b為方程組右端n為列向量。
使用說明
子程序語句 subroutine gs1(n,n1,a,ep,kwji)
參數說明
◎ a 輸入參數,n×n1個元素的二維實數組,存放由系數矩陣和右端列向量所組成的增廣矩陣