在聊起矩陣分解之前,先看一下我們小學二年級就學過的高斯消去法解線性方程組,其主要思想就是:將方程組寫作寫作增廣矩陣(a|b)的形式,然後通過一系列的初等變換將增廣矩陣(a|b)化為上三角矩陣(u|c),再通過回代求解與 ax = b 同解的上三角形方程組 ux = c 的解。
為什麼提這麼老的知識點呢?因為高斯消去的過程實際上就可以看作是乙個矩陣做三角分解的過程。
先給乙個定義:
嚴格意義上來講,並非所有的矩陣都可以做高斯消去,那麼問題來了,什麼樣的矩陣才能做lu分解呢?
故給出lu分解的存在性和唯一性定理:
需要注意的是,doolittle 分解中,l是單位下三角矩陣,要求其主對角線的元素均為 1。
如果要求 l 是下三角陣,u 是單位上三角陣,則為count 分解。
進一步,還可以做這樣的分解a = ldu,此時要求的是 l 為單位下三角陣,u 為單位上三角陣,d 是乙個非奇異的對角矩陣,稱其為 a 的 ldu 分解。
其定義為:
由矩陣的條件數定義可知,正交矩陣是性態最好的矩陣,如果我們能用正交矩陣代替 gauss 消去過程中的單位下三角矩陣,使得 q1q2a = u,則變換後所得的矩陣 u 的條件數不變,故該計算過程具有數值穩定性。
如果非奇異矩陣 a 能夠化成正交矩陣 q 與非奇異上三角矩陣 r 的乘積,即a = qr,則稱其為 a 的 qr 分解。
剩下的之後再寫。。。
求解線性方程組 Doolittle分解法
求解線性方程組 doolittle分解法。源 用c 實現 這裡採用的是數值分析裡的演算法。在vc6.0下編譯通過,經測試沒大問題。求解線性方程組 doolittle分解法 include using namespace std 二維陣列動態分配模板 template t allocation2d i...
求解線性方程組 Cholesky分解法
求解線性方程組 cholesky分解法。源 用c 實現 這裡採用的是數值分析裡的演算法。在vc6.0下編譯通過,經測試沒大問題。求解線性方程組 cholesky分解法 本分解法僅適用於當 係數矩陣為對稱正定陣的情況 include include using namespace std 二維陣列動態...
求解線性方程組之LU分解
具有列選主元和從前到後代入的lu分解 include include include using namespace std class lu delete a void main void lu lu input for i 0 i n i for j 0 j n j for i 0 i n i ...