常見的幾種矩陣分解方式
1.三角分解(LU分解)
矩陣的LU分解是將一個矩陣分解為一個下三角矩陣與上三角矩陣的乘積。本質上,LU分解是高斯消元的一種表達方式。首先,對矩陣A通過初等行變換將其變為一個上三角矩陣。對於學習過線性代數的同學來說,這個過程應該很熟悉,線性代數考試中求行列式求逆一般都是通過這種方式來求解。然後,將原始矩陣A變為上三角矩陣的過程,對應的變換矩陣為一個下三角矩陣。這中間的過程,就是Doolittle algorithm(杜爾裡特演算法)。
轉一個Tony Ma同學寫的例子:
若AX=b是一個非奇異系統,那麼高斯消元法將A化簡為一個上三角矩陣。若主軸上沒有0值,則無需互動行,因此只需進行第3類初等行變換(把第 i 行加上第 j 的 k 倍)即可完成此變換。例如
第3類行變換可以通過左乘相應的初等矩陣image實現,對上例來說進行的3個變換就是相應初等矩陣的乘積。注意最右邊是一個下三角矩陣L
從而有
注意:
1)U是高斯消元的結果,且對角線上是主元
2)L對角線上是1,對角線下面的元素image恰恰是在式1中用於消去(i,j)位置上元素的乘子。
LU分解常用來求解線性方程組,求逆矩陣或者計算行列式。例如在計算行列式的時候,
線上性代數中已經證明,如果方陣
2.QR分解
QR分解是將矩陣分解為一個正交矩陣與上三角矩陣的乘積。用一張圖可以形象地表示QR分解:
這其中,
實際中,QR分解經常被用來解線性最小二乘問題。
3.Jordan分解
每次看到Jordan分解,就想起當年考研的那段時光。控制原理裡面,就有大段關於Jordan分解的內容。可惜當時矩陣分析沒有學到位,線性代數裡頭又沒有提到Jordan分解,所以理解起來那個費勁。
廢話這麼多,先來看看Jordan到底是個什麼鬼:
我們將下面的
稱為Jordan塊。同時,我們也將由若干個Jordan塊組成的對角矩陣成為Jordan陣。
由Jordan塊的定義不難看出,Jordan 陣與對角陣的差別僅在於它的上 (下)對角線的元素是0或1。因此,它是特殊的上三角陣。
為什麼要進行Jordan分解呢?或者說,Jordan分解能解決什麼問題呢?
我們先來複習一下,如果一個n階方陣
1.
2.
3.
因為有的矩陣不可以進行對角化,那麼我們可以對它進行Jordan分解,達到簡化計算的目的。