第三課時:a的lu分解
一、a=la分解
消元的目的,只是為了更好正確的認識矩陣的概念,a=lu是最基礎的矩陣分解。l是下三角矩陣,u是上三角矩陣。a通過消元最終得到u,l即a與u之間的聯絡。
先看a矩陣通過初等矩陣消元得到u:
這裡要求的是a=lu,l和消元矩陣e是什麼聯絡呢?l與e互為逆矩陣。消元矩陣的逆是比較容易求的
有時我們將u中的主元提取出來,其餘的位置設為0,即diagonal對角陣d,可分解得到
ldu,兩邊各乙個三角矩陣,中間乙個對角陣。
假設在三維矩陣中,消元步驟中不需要任何行交換,
l是各消元矩陣的逆的反向乘積。
為什麼要用逆的形式?即上圖中為什麼下面的逆的形式的等式要比上面的等式要好?
舉下面的例子,兩個消元矩陣e21(行2減去2倍行1)和e32(行3減去5倍的新行2)相乘得新的右側消元矩陣,那麼,從右側結果顯示,元素10是我們不喜歡的(但它確實是運算結果),e21(行2減去2倍行1)和e32(行3減去5倍的新行2)這種順序,行1(元素10)怎麼就影響到了行3呢?這是因為,第一步中有2倍行1從行2中減去了,然後在第二步中又乘5倍從行3中減去,因此總共在行3中加上了10倍行1。因此,這種形式不是我們喜歡的,但逆的乘積則不是這樣的。
對於「第一步中有2倍行1從行2中減去了,然後在第二步中又乘5倍從行3中減去,因此總共在行3中加上了10倍行1」,我舉個例子解釋一下:
1 2 0
3 4 1
5 0 5
該矩陣通過以上所描述的進行變換,第一步第二行有:3-2*1 4-2*2 1-2*0
最終第二步第三行有:5-5*(3-2*1) 0-5*(4-2*2) 5-5*(1-2*0)
即:5-5*(3-2*1) 0-5*(4-2*2) 5-5*(1-2*0)= 5-5*3+10*1 0-5*4+10*2 5-5*1+10*0
由這個結果不難看出「總共在行3中加上了10倍行1」的結論了。
現在我們
反向計算,順序倒過來求逆的積。l中矩陣相乘的順序非常好,2和5不會衝突,不會得到10。即要求出l,不需要任何運算,只需要把所有消元乘數都寫進來,就能得到l。
總結下:a=lu,如果不存在行互換,消元乘數,即消元步驟中的需要乘以並減去的那個倍數,消元乘數可以直接寫入l中。即只要步驟正確,可以在得到lu過程中把a拋開。例如,當你完成a第二行的消元時,為了得到lu,你只需要記住u中新的第二行是什麼,同時消元所用的乘數也需要記住,至於a是什麼不需要管。
二、消元耗費次數
消元共耗費了多少次?a變成u
把消元中的一次加和乘操作看為「一次」操作。100*100的矩陣,第一主元的消元需要接近100*100的操作(第一行不變),第二主元的消元需要接近99*99的操作(第二行不變)。。。。
因此n維矩陣的消元一共需要次數接近1/3 n3,1/3是考慮到求和式子中數字在逐漸減小,如果不減小的話應該是n*n2,這才是n3。這其中有微積分的知識:從1到n對x2dx進行積分,結果得到1/3n3,微積分其實是考慮連續情況下的「求和」(但線性代數式離散的)。
另乙個問題:之前是a進行消元得到u,那麼加上右側常數列b,它需要多少次操作?把它放到消元步驟中,然後進行回代,一共需要n square次操作,要比a進行變換的次數少得多。
因此,經常有矩陣a和幾個右側向量,這時對a進行更多次操作,將其分解乘l和u,來完成消元,之後就可以以較少次數處理右側向量了。這時方程組運算中最基本的運算問題。
三、轉置與置換permutations,置換矩陣群
若允許行互換,當主元位置為0時,要進行行互換,置換矩陣可以進行行互換。來看看3維下的所有置換矩陣:
1)置換矩陣兩兩相乘結果仍然在該群中
2)取其逆,只用將行換回去,結果也在該群中
3)個別置換矩陣的逆矩陣就是其置換矩陣本身(比如上面的前4個,其轉置等於本身),但對於所有的,
總結來說是:置換矩陣的逆是等於其轉置。
線性代數導論4 A的LU分解
第三課時 a的lu分解 一 a la分解 消元的目的,只是為了更好正確的認識矩陣的概念,a lu是最基礎的矩陣分解。l是下三角矩陣,u是上三角矩陣。a通過消元最終得到u,l即a與u之間的聯絡。先看a矩陣通過初等矩陣消元得到u 這裡要求的是a lu,l和消元矩陣e是什麼聯絡呢?l與e互為逆矩陣。消元矩...
MIT線性代數 4 矩陣A的LU分解
乘以逆矩陣得到單位陣需要反著乘。第二行是第一行兩邊同時轉置的結果,得到的結論是a轉置的逆是a的逆的轉置。l是lower也就是下三角矩陣,u是upper也就是上三角矩陣。先是由e初等矩陣消元從a變化到u。l與e是什麼關係呢?答案是互為逆矩陣。2.2a ldu 有時候我們也可以把主元單獨分離出來,得到d...
GSL 系列 6 線性代數 2 LU 分解
關於 lu 分解的背景知識介紹,參見 gsl 系列 6 線性代數 1 背景知識 1 lu 分解 節,本篇只說明相關函式 轉置矩陣物件儲存著一列索引。第 j jj 個數為 k kk 表示轉置矩陣第 j jj 列是相應單位矩陣的第 k kk 列,定義如下 gsl permutation.h struct...