1. 程式人生 > >【線性代數】2-6:三角矩陣( $A=LU$ and $A=LDU$ )

【線性代數】2-6:三角矩陣( $A=LU$ and $A=LDU$ )

title: 【線性代數】2-6:三角矩陣( A=LUA=LU and A=LDUA=LDU ) toc: true categories:

  • Mathematic
  • Linear Algebra date: 2017-09-12 15:41:12 keywords:
  • A=LU
  • A=LDU
  • Factorization

Abstract: 如何將矩陣分解成三角矩陣 Keywords: A=LU,A=LDU,Factorization

開篇廢話

今晚蘋果要新版本iPhone了,不知不覺iPhone已經十年了,然而我只用過iPhone4和6,技術的不斷創新,給人們帶來了方便,也改變了產業結構和生活方式,這應該與自然的變遷類似,無法阻擋的歷史潮流,人類一切的進步都源自於對未知事物的探索,希望各位繼續努力,為人類的進步,為人類與自然的和諧相處努力。

Factorization

因式分解,開始學的時候肯定是分解多項式,將一串長的式子分解成幾個因式相乘的形式,矩陣也可以,把一個矩陣分解成幾個矩陣相乘的形式,但是問題來了,從表述上看,多項式分解的結果是整體變得簡單了,但是矩陣分解好像越分越多啊,是多了,但是多出來這些矩陣都很有特點,他們的形狀固定,大部分元素是0. 回想一下消元的過程

A to U E21A=[1031][2168]=[2105]=U E_{21}A= \begin{bmatrix}1&0\newline -3&1\end{bmatrix} \begin{bmatrix}2&1\newline 6&8\end{bmatrix}= \begin{bmatrix}2&1\newline 0&5\end{bmatrix}=U

U to A

E211U=[1031]=[2105]=[2168]=AU E_{21}^{-1}U= \begin{bmatrix}1&0\newline 3&1\end{bmatrix}= \begin{bmatrix}2&1\newline 0&5\end{bmatrix}= \begin{bmatrix}2&1\newline 6&8\end{bmatrix}=A U

168]=AU 從U到A的過程就是我們今天的男一號,A=LUA=LU

消元的解釋說明

1:E1E^{-1} 都是lower triangular 下三角矩陣,對角線元素全部為1

2:E1E^{-1} 就是LL,把U變回A的係數矩陣

3:每個消元係數lijl_{ij} 只會把對應的(i,j)位置的元素幹掉,不會影響其他位置,尤其是已經完成消元的位置

A=LUA=LU

這是不包含行交換的消元過程的矩陣形式,上三角矩陣U對角線上全是pivot,對角下為0,L的對角線全是1,對角線下面是消元的乘子。 有兩條規律,總結如下

1:A的某行開頭是0,那麼對應的L的位置也是0 2:A的某列開頭是0,那麼對應的U的位置也是0

A=LUA=LU 成立的關鍵還是要回顧消元過程,當某元素(pivot)所在的列一下都是0了以後,做下一個pivot消元的時候,對已完成的,為0的列沒有影響,但是後面的非零列是有影響的,大部分非零列已經不是原始的列了,這種做法能保證解空間不變,但是矩陣的列空間已經發生改變了,具體後面講到列空間的時候會有說明。

A=LDUA=LDU

A=LUA=LU 數學家們喜歡0,喜歡1,喜歡對稱,A=LUA=LU 顯然不那麼對稱,U對角線上是主元,L對角線上是1,這太不美觀了 然後再分解一下, Divide U by a diagonal natrix D that contains the pivots 啥意思?就是這個意思: [d1    d2        dn][1u12/d1u13/d1. 1u23/d2.     1] \begin{bmatrix} d_1&\,&\,&\,\newline \,&d_2&\,&\,\newline \,&\,&\ddots&\,\newline \,&\,&\,&d_n\newline \end{bmatrix} \begin{bmatrix} 1&u_{12}/d_1&u_{13}/d_1&.\newline \,&1&u_{23}/d_2&.\newline \,&\,&\ddots&\vdots\newline \,&\,&\,&1\newline \end{bmatrix} 如果除法不好理解那就當做D1UD^{-1}U然後根據row model 或者 col model一看,發現上面式子沒問題。 所以係數矩陣A就能分解成 A=LDUA=LDU

Why

你一定跟我當時一樣心中一萬匹羊駝在奔騰,覺得折騰這玩意有啥用啊,折騰過來折騰過去,沒啥用啊,這麼弄的目的是啥嘛,但是當天晚上回家看數值分析的書,剛好也講這個過程,原來這麼做的目的是為了減輕計算,舉個例子Ax=bAx=b這種計算過程在工程應用裡非常常見,而且多半時間是A不變,不同的b來解不同的x,那麼按照高斯消元法,每次要從頭消元,因為b改變了增廣矩陣,但是很多計算是冗餘的,所以使用三角矩陣的好處就是可以大大減少冗餘計算

第一步:就是把矩陣分解成 LULU 或者 LDULDU 形式(factor) 第二步:通過回代,把x求出來(solve)

Ax=bLUx=bc=L1b......(1)Ux=cx=U1c......(2) Ax=b\\ LUx=b\\ c=L^{-1}b......(1)\\ Ux=c\\ x=U^{-1}c......(2) 過程(1)(2)並不需要求逆,而是通過回代的過程進行,根據計算時間複雜度(也就是計算量,計算次數),factor的時間複雜度是O(13n3)O(\frac{1}{3}n^3),solve的時間複雜度大概是O(n2)O(n^2),如果你對時間複雜度不瞭解,可以去看《演算法導論》的最開始那一章,這個理論還是非常有用的,尤其是對研究演算法的童鞋。通過回代而不是消元,能夠降低不少多餘的計算。

band matrix

帶狀矩陣,只有對角線附近元素不為0,其他位置都是0,這種矩陣factor的時間複雜度是O(nw2)O(nw^2),solve的時間複雜度大概是O(2nw)O(2nw) w是非零元素的個數

總結

本文知識點比較連貫,就不總結了,總結的是一點,如果看一本書看不太懂,可以看看別的書,或者別人的解釋,兼聽則明,然後就有可能豁然開朗。

title: 【線性代數】2-6:三角矩陣( A=LUA=LU and A=LDUA=LDU ) toc: true categories:

  • Mathematic
  • Linear Algebra date: 2017-09-12 15:41:12 keywords:
  • A=LU
  • A=LDU
  • Factorization

Abstract: 如何將矩陣分解成三角矩陣 Keywords: A=LU,A=LDU,Factorization

開篇廢話

今晚蘋果要新版本iPhone了,不知不覺iPhone已經十年了,然而我只用過iPhone4和6,技術的不斷創新,給人們帶來了方便,也改變了產業結構和生活方式,這應該與自然的變遷類似,無法阻擋的歷史潮流,人類一切的進步都源自於對未知事物的探索,希望各位繼續努力,為人類的進步,為人類與自然的和諧相處努力。

Factorization

因式分解,開始學的時候肯定是分解多項式,將一串長的式子分解成幾個因式相乘的形式,矩陣也可以,把一個矩陣分解成幾個矩陣相乘的形式,但是問題來了,從表述上看,多項式分解的結果是整體變得簡單了,但是矩陣分解好像越分越多啊,是多了,但是多出來這些矩陣都很有特點,他們的形狀固定,大部分元素是0. 回想一下消元的過程

A to U E21A=[1031][2168]=[2105]=U E_{21}A= \begin{bmatrix}1&0\newline -3&1\end{bmatrix} \begin{bmatrix}2&1\newline 6&8\end{bmatrix}= \begin{bmatrix}2&1\newline 0&5\end{bmatrix}=U U to A

E211U=[1031]=[2105]=[2168]=AU E_{21}^{-1}U= \begin{bmatrix}1&0\newline 3&1\end{bmatrix}= \begin{bmatrix}2&1\newline 0&5\end{bmatrix}= \begin{bmatrix}2&1\newline 6&8\end{bmatrix}=A U 從U到A的過程就是我們今天的男一號,A=LUA=LU

消元的解釋說明

1:E1E^{-1} 都是lower triangular 下三角矩陣,對角線元素全部為1

2:E1E^{-1} 就是LL