來自MIT的經典線代課程--Gilbert Strang
第三課:矩陣乘法、逆矩陣性質與高斯-喬登消去法(Matrix multiplication、Inverse matrix and Guass-Jordan Elimination)
矩陣乘法的剖析與會銜接在上次課程提到的消元矩陣後,當時我們引用了線性組合的概念進行消元矩陣的建構,此處我們進一步推廣至一般的矩陣乘法的說明,當我們面對相同的矩陣運算式,可以發展出五種不同的說明方法,最有趣的是結論相同的說明發法,其過程卻是截然不同,這是一件有趣的性質,在認識這些說明後,對於後續出現的運算式便能有更多樣的解讀方法,進而發現更多矩陣本身的資訊,開始吧!
假定矩陣 A , B 存在,且令 C = A B,注意,我們需要先定義 A , B , C 的大小,因為不是隨便挑兩個矩陣便能相乘,所以我們設
- A 為「 m 乘 n 的矩陣」習慣上記為「 Am×n 」
- B 為「 n 乘 p 的矩陣」習慣上記為「 Bn×p 」
此時
C 為「 m 乘 p 的矩陣」習慣上記為「 Cm×p 」
這份乘法規則便是矩陣乘法中的「一般性原則(standard rule)」,以文字呈現則為:
- 兩個矩陣相乘,左側矩陣的行數需等於右側矩陣的列數
- 乘積矩陣 C 的大小是由 A 的列數與 B 的行數決定
我們後續都會使用這三個矩陣進行說明(這次上課純代數推導的部分比較多,我其實都建議看影片來學)
給個目錄讓大家參照(教授沒說這些方式的名稱,所以下方非正式名稱,請留意)
- 定義(一般性原則)
- 行線性組合
- 列線性組合
- 列行建構和
- 分塊組合
1.定義
從最基礎的求乘積矩陣定義來說明矩陣乘法--如果現在我想知道「 cij 」要怎麼計算呢?
以實際元舉例,給定( i , j )=( 3 , 4 ),根據我們的矩陣乘法定義
c34 = Row3(A)。Column4(B)= ( a31 ) ( b14 ) + ( a32 ) ( b24 ) + ... + ( a3m ) ( bm4 )
以求和符號(Sigma)書寫的話

用這個方式可以寫出 C 的所有元,但有點累人
2.行線性組合(Columns of C are combinations of columns of A)
將 C = A B 以此概念拆解,我們能注意到此時的 Column(B) 被視為線性組合中的向量, A 則是對應指令乘數,依序建構出 C 中的所有行向量

3.列線性組合(rows of C are combinations of rows of B)
同樣將 C = A B 以此概念拆解,我們能注意到此時的 row(A) 被視為線性組合中的向量, B 則是對應指令乘數,依序建構出 C 中的所有列向量

4.行列建構和(multiply column of a row)
運算時,如果取用 A 的行向量( Column( A ) )與 B 的列向量( Row( B ))相乘的到的矩陣是什麼樣的?在不考慮內部元數值的前提下,此乘積矩陣的大小會與 C 相同,現在我們定義
[Columni( A )m×1]×[Rowi( B )1×p]=[Ci]m×p
而

此時的 [Ci] 會是一個行列向量皆為線性依賴( linear dependant )的特殊矩陣,而我們需要的是把所有的 [Ci] 進行矩陣加法即可得到目標 C
註:抱歉這邊讓你看到新名詞,以上專有名詞算是後面的課程內容,但我希望你能先記住這個特殊的例子,導出這個矩陣是很有意思的,讓我小小的爆個雷,之後我們會嘗試將矩陣視為一個向量,並且討論其空間性質,而這個運算規則會是一個很漂亮的例子,希望你看到後面時能夠想起來
5.分塊組合(Block)
這部分寫起來有些抽象,實際理解起來也蠻抽象,所以...看不懂也別太傷心,因為我自己看也不是很懂
首先假定 A 由四個「大小相同」的小矩陣 A1、A2、A3、A4 構成,B 由四個小矩陣 B1、B2、B3、B4 構成,關係以矩陣關係寫出是
![A = [ A_1 , A_2;A_3 , A_4 ] ;B = [ B_1 , B_2;B_3 , B_4 ] ;C = [ C_1 , C_2;C_3 , C_4 ]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2Ff564c85a-6a89-479d-8d5b-ab77d1533894.png&width=260&sign=L0xBesIJki_JK0WlmIyEtdD2PETT1H_5chHSzM8KYZ8)
A = [ A_1 , A_2;A_3 , A_4 ] ;B = [ B_1 , B_2;B_3 , B_4 ] ;C = [ C_1 , C_2;C_3 , C_4 ]
此時
C1 = A1 B1 + A2 B3
C2 = A1 B2 + A2 B4
C3 = A3 B1 + A4 B3
C4 = A3 B2 + A4 B4
換句話說,我們將矩陣轉化為元了!這種思想方式同第四點,都是將矩陣視為向量(組)進行矩陣運算,其中的規則挺值得思考的,或許我們能找到一個很好的說明方式進一步解析這個運算性質?如果我們裁成三乘三、四乘四呢,可以進行幾次切割?如果切割可行,又需要具備那些條件?其構成與參與乘法的矩陣大小關聯性又是什麼?如果你也對這些問題感興趣,或許可以來讀讀看數學系,相信教授會很樂意與你討論
不過我們不會花太多時間討論這些性質,那太細了,或許之後能有番外篇?先別想那麼多吧,這些就夠我們學的了(抱歉有些興奮,我們再次回到課程)
下一個主題是「逆反矩陣( Inverse matrix )的性質討論」,在此之前我們需要先釐清何為逆矩陣,假設現在存在一個任意大小的矩陣 A
- 若矩陣 B 使得 B A = I, B 被稱為 A 的「左逆反矩陣( Left inverse of A , AL-1 )」
- 若矩陣 C 使得 A C = I, C 被稱為 A 的「右逆反矩陣( Right inverse of A , AR-1 )」
- 若矩陣 D 使得 A D = D A = I, D 被稱為 A 的「逆反矩陣( Inverse of A , A-1 )」
之所以左右要分開命名,是因為對同於矩陣 A 而言,「右逆反矩陣」不恆等於「左逆反矩陣」,例如 A'2×3 時,若其左逆矩陣存在,相乘所得為 I2,若其右逆矩陣存在,相乘所得為 I3,而 I3 ≠ I2 ,故若 A 不是方陣,則不可能存在逆反矩陣
「如果 A 是方陣,則其必然存在逆反矩陣嗎?」
答案是否定的,因為還需要另外滿足一個條件
「 A 中的行/列向量皆為線性獨立(linear indepandant)」
何謂線性獨立?這個問題我們在後面的課程才會有比較深入的探討,但你可以先了結定義是沒有影響的(就像我們在第二課時就學習了消元逆運算一樣),所謂的「線性獨立」意味著「不存在由部分行/列向量線性組合得出的行/列向量」,如果 A 出現了如
Row1( A ) + Row2( A ) = Row3( A )
代表 A 的列向量彼此「線性相依(linear depandant)」,這時的 A 不可能存在逆反矩陣, 這時的 A 被稱為「奇異矩陣( Singular matrix)」,條件說是這麼說,但這又是為什麼?
要記住,學習時永遠不要吝嗇於追問到底,很多概念性問題只有思考過後才能明白其意義,還記得我們怎麼定義逆反矩陣嗎?我們需要找到一個矩陣使其滿足
A A-1 = A-1 A = I
換句話說,套用上一節課的內容,我們需要找到一個適當的線性組合乘數建構指令,使其進行「行/列向量的線性組合」,現在我們的目標已經給定了,就是由一個一跟多個零構成的行/列向量,但若其中有一個行/列向量消元時發現「啊!全零了!」,那不就不可能找到一個適當的指令建構出單位矩陣矩陣了嗎!
看了這麼多名詞,我們做個總結,當 A 滿足
- A 中的行/列向量皆線性獨立 ( 等價於行列式不為0,屬於課程規劃中段的內容了 )
- A 是方陣
以上兩個條件皆為存在逆反矩陣的「充分條件( Sufficient )」,而非存在逆反矩陣「必要條件( Necessity )」,我知道需要白話文,OK我翻譯一下
滿足條件才可能有逆反矩陣,但只滿足其中一個則不一定存在逆反矩陣
若 A 滿足所有條件時,則 A 必然存在逆反矩陣,此時 A 可以被稱為
- 可逆矩陣( Invertible matrix )
- 正則矩陣( Regular matrix )
- 非奇異矩陣( Non-singular matrix)
- 非退化矩陣( Non-degenerate matrix )
說實話我也不知道為什麼有那麼多說法,大概是擁有可逆性質的矩陣也具備著很多有意思的性質吧
接著我們繼續推廣下去,還記得我們為何要學習逆反矩陣嗎?是因為上一堂課提到的
E A → U
時有提到,數學家更好奇 U 怎麼變回 A ,換句話說,我們想知道 E-1 具有何種特質令人念念不忘,忘記的讀者建議回去再看一下,話說回來,既然我們已然知曉問題,下一步自然是...
沒錯,提出另一個問題
「如果存在一個非零向量 X 使得方陣 A 滿足 A X = 0 ,則 A 是否存在逆反矩陣?」
這是一個關於線性方程組解的一個重要引題,如果你有認真看上面的內容,應該會在我們提到線性獨立的地方找到這個問題的答案,答案是否定的,而且我們能說,只要能找到一個非零向量 X,就會存在無窮多個非零向量 X' 滿足該方程式
如果你到這邊還是有些模糊不懂為何,請你先停下來,這並不是一個看過一遍就能輕鬆了解的東西,重新再看看前面教授是如何使用例子不斷強調
「將矩陣運算視為對行/列向量的線性組合」
緩下來,想想你是怎麼理解這些內容的,用自己明白的方式寫一遍,試著找到哪個地方卡住了,如果你一次就通了,那你真的挺厲害的,我自己是看了兩三次才算很順的看過去,大神受小弟一拜
話說回來,這其實也是一種證明方式,假定存在一個非零向量 X 使得使得方陣 A' 滿足 A' X = 0,且 A 的逆反矩陣存在,那麼根據定義
LHS:A'-1 A' X = I X = X
RHS:A'-1 0 = 0
得出
X = 0 (→←)
故此時的方陣 A' 不可能有逆反矩陣
----------------- 分隔線 -----------------
理論的部分基本上告一段落了,現在我們來想想如何將這些概念應用到問題上,假設有一非奇異方陣
![A = [ 1 , 3;2 , 7]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2F466594c0-9b2b-4a35-9a4d-8f6064d16576.png&width=231&sign=2YLbYlgAL2FiQIlcMVlw2FEZ2A09viCvSe9Al7Reqhs)
A = [ 1 , 3;2 , 7]
我們嘗試用線性組合湊出 A 的逆反矩陣,設逆反矩陣為
![A^(-1) = [ a , c;b , d]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2F8a9481a8-4d02-460f-8946-cadfba9555ba.png&width=235&sign=hfvYZAk9Oj6soyKBuRSGqwpeY3Z2h89MFa-OzAS8T9U)
A^(-1) = [ a , c;b , d]
此時我們要讓
![a [ 1 , 3 ] + c [ 2 , 7 ] = [ 1;0 ] ; b [ 1 , 3 ] + d [ 2 , 7 ] = [ 0;1 ]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2Ff3c5aecd-3a49-4b7a-8765-3ecd0ac53606.png&width=262&sign=xqaP_6LkN9NQ3q8ICF4Wja6YiZdGZeeaFuEijlZf6jA)
a [ 1 , 3 ] + c [ 2 , 7 ] = [ 1;0 ] ; b [ 1 , 3 ] + d [ 2 , 7 ] = [ 0;1 ]
你獲取會注意到,找尋逆反方陣的過程何嘗不是在解線性方程組呢,通過計算我們能知道
( a , b , c , d ) = ( 7 , -2 , -3 , 1 )
但是這樣拆解太過於沒有效率了,所以我們要引入高斯消元法+--「高斯-喬丹消元法 (Gauss-Jordan elimination)」,這個方法可以用來一次處理兩個方程組,其使用結構也很單純,同樣利用增廣矩陣使得問題矩陣變成
aug( A | I ) = [ A | I ]
經過運算可以得知
[ A | I ] → [ I | A-1 ]
咦?步驟呢?運算呢?這東西怎麼得出來得?啥?
別慌,還記得我們提到的,所謂的逆反矩陣實際上就是已知目標矩陣( I )的線性組合乘數( a , b , c , d )對吧 ? 在線性組合的過程中,難道不能用消元矩陣表示求導逆反矩陣的過程?說到底在高斯消元法時使用消元矩陣的目標是 U ,而逆反矩陣進一步要求變成了 I 而已,對吧?如果這樣還是想不通,我們可以用消元矩陣的方式說明一次
對 aug( A | I ) 進行向下消元,乘上 E21 = [ 1 , 0;-2 , 1 ]得
![[ 1 , 0;-2 , 1 ][ 1 , 3;2 , 7 | 1 , 0;0 , 1 ] → [ 1 , 3;0 , 1 | 1 , 0;-2 , 1 ]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2Faff3ec33-ae05-4bdb-9c01-d03016ce379b.png&width=707&sign=p7hAjZ_FDXGShVWyTV7chCoZvpTx-mSefltZwI74a3w)
[ 1 , 0;-2 , 1 ][ 1 , 3;2 , 7 | 1 , 0;0 , 1 ] → [ 1 , 3;0 , 1 | 1 , 0;-2 , 1 ]
再進行向上消元,乘上 E12 = [ 1 , -3;0 , 1 ]得
![[ 1 , -3;0 , 1 ][ 1 , 3;0 , 1 | 1 , 0;-2 , 1 ]→ [ 1 , 0;0 , 1 | 7 , -3;-2 , 1 ]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2Fea6e2270-cd97-4f6e-95ca-a9746fbad991.png&width=740&sign=nb7dnb7pSlVg1xP9Q5lYe2O_lPxFglqbiHoPInHicI4)
[ 1 , -3;0 , 1 ][ 1 , 3;0 , 1 | 1 , 0;-2 , 1 ]→ [ 1 , 0;0 , 1 | 7 , -3;-2 , 1 ]
此時得到的
![A^(-1) = [ 7 , -3;-2 , 1 ]](https://resize-image.vocus.cc/resize?compression=6&norotation=true&url=https%3A%2F%2Fimages.vocus.cc%2Fdbc98c88-5942-4f99-a720-6ac790d3b19b.png&width=272&sign=vs0QFjMpDpQLe_nj1bNJ0LP8vlIo78yjrN7Idpf916E)
A^(-1) = [ 7 , -3;-2 , 1 ]
與我們解線性方程組得到的解相同,因為從頭到尾,我們在做的事情,都可以矩陣乘法與等量公理表示
AB = I
→ E21AB = E21
→ E12E21AB = E12E21
→ I B = E12E21
→ B =A-1 = E12E21
如果我們以 E 表示
E = E12E21=A-1
換句話說,逆反矩陣也是初等矩陣的一分子,我們如何使用理解初等矩陣,就能怎麼使用逆反矩陣
好了,相信又是收穫滿滿的一課,但是從上節課尾段的問題--「U 怎麼變回 A」依然沒有解決,這個變回的過程實際上就會使用到逆反矩陣,在知道逆反矩陣的性質後,我們便可探究這個問題的答案,關鍵字為 L U 分解,感謝你的閱讀,期待下一次碰面









