Gilbert Strang 經典線代課程心得-1

更新 發佈閱讀 13 分鐘

來自MIT的經典線代課程--Glbert Stran

第一課:了解線性方程組 ( The fundamental problem of linear algebra )

首先教授向我們說明了線性代數的核心主題--解「線性方程組( System of linear equations)」,這個主題並不令人陌生,當我們學習方程式這一概念時,最先學習到的方程式便是線性方程式,因此我們可以通過過往學過的解析方式進入線性代數的世界,讓我們開始吧!

在中學數學,我們很常使用的兩種幾何解析法來剖析這個主題

列圖( Row picture;RP)/行圖( Column picture;CP)解析

如果你對於這兩個詞彙很陌生,那是正常的,因為我也沒聽過,其實這兩種解析法我們都學過了,現在只是換個名字而已,不用太擔心,接下來我們會配合例子來進行說明,先給定一組二元一次聯立方程組(如下)

2x-y=0 ; -x+2y=3

2x-y=0 ; -x+2y=3

而「 係數矩陣 ( Coefficient matrix) 」便是將線性方程組的各項未知數係數排列過後建立的矩陣 ( 如下 )

raw-image

這是也我們這個課程認識的第一種「矩陣」,為了讓觀看體驗更加舒服,讓我先介紹一下何謂「矩陣 ( matrix ) 」

「矩陣」可視為「資訊更加廣泛的向量」(課程中段會學到),為何我們需要這個東西?與其這麼問,不妨可以想想為何「有加要有乘,有乘要有乘方」,我們可以再從一些例子裡看到這些看

  • 當我們需要表示「數量」時,「正整數與零」誕生了
  • 當我們需要表示「相對關係」時,「性質符號」誕生了
  • 當我們需要表示「方向量」時,「向量」誕生了
  • 當我們需要表示「有效表達/處理多個向量」時,「矩陣」誕生了

科學上的新事物大抵如此,當舊有的結構已經不夠用時,便會有人使用更有「效率」的表示方式,而矩陣的出現除了更有效地表示多個方向量,其核心是提供了一種簡潔的語言來描述和計算多個未知數之間的關係,這也是線性代數的核心理念--「線性變換」,這個敘述不全然正確,可是我想這是最好理解「矩陣」的原因之一了,別想得太複雜,就當數學家已經懶到連未知數都想省就好了

矩陣構成很簡單,一個大大的中/小括號依序寫下相互獨立的數字,兩種表示法我都有看過,但嚴格來說矩陣的標準符號是中括號,而小括號通常用於表示「向量」

括號內部數字我們稱之為「 元 ( Element ) 」,通常以「 aij 」表示,元的排列是有順序要求的,而下標( i、j )的使用方式也很好理解,與我們使用平面坐標系有些相像

以平面座標系座標 P ( xp , yp ) 舉例,需要先在 x 軸上找到對應座標 Px( xp , 0 ),再從 y 軸上找到對應座標 Py( ​0 , yp ),通過通過兩座標的垂線取交點,便可得到對應座標 ( 如下圖 )

raw-image


矩陣內部元素的位置座標,是「先列後行」則是從左上方的元開始, i 是朝下數的,j 是朝右數的,因此「a12」表示的是「從左上的數開始往下第一個往右第二個的數字」( 如下圖 )

raw-image

橫向和豎向的數 ( 列 ) 稱為 Row Column

  • 第 i 橫列 稱為 「 ith Row 」 或「 Row i
  • 第 j 豎行 稱為 「 jth Column 」或「 Column j

【地區術語註釋】

這裡有一個很煩人的地方:「中文翻譯在不同地區有所差異。」

  • 台灣習慣稱呼「橫列」與「豎行
  • 中國大陸則慣用「橫行」與「豎列

天曉得為啥要這樣分,為了避免不必要的誤會,在運算式中我們將統一使用英文術語下標,畢竟最終還是要回歸教材與原文書。但在接下來的文字敘述中,仍會以台灣慣用的「橫列」和「豎行」方式進行書寫說明。

在系列文章中,要怎麼打出矩陣呢?因為這個部落格不支援Latex語言,因此在書寫上會佐以下方的表示法進行表示

假定「a11=2」,「a12=-1」,「a21=-1」,「a22=2」

則「Row1=[2 , -1]」,「Row2=[-1 , 2]」

而「Column1=[2;-1]」,「Column2=[-1;2]」

矩陣則是 [Row 1;Row 2]→[2 , -1;-1 , 2]

以逗號分隔元,分號代表換到下一列(Row)了

若以矩陣形式寫出聯立方程組 (範例 ) ,就會向下面的矩陣一樣

[2 , -1;-1 , 2][x , y]=[0 , 3]

[2 , -1;-1 , 2][x , y]=[0 , 3]

為了方便討論,在數學上我們習慣以 A x = b 表示線性方程組,其中 A 為係數矩陣,x 為變量向量,b 為常數向量( 如下圖 )

[2 , -1;-1 , 2][x , y]=[0 , 3]

[2 , -1;-1 , 2][x , y]=[0 , 3]

相信看到這邊,讀者對於線性方城組已經有了基本的認識,接下來我們來看看有哪些方式可以以幾何圖形協助我們進行分析


列圖分析 ( Row picture / 2D )

這是整個中學生涯都在使用的解析方法,也是我們最先學習到的解析法

已知方程式的未知數總量為k,則須建構一個 k 維的座標空間 F,並將所以方程式解以座標的形式 ( x 1 , x 2 , ... , x k ) 繪製於F上形成圖形。

例如,給定方程式

x + y = 0

此時

k = 2 & L = { (x , y ) := ( t , -t ) = t ( 1 , -1 ) | t ∈ R }

將 L 的元素繪製於座標系上,在這個例子中,當我們的點足夠多時,圖形會愈發接近一條直線,甚至我可以大膽的說,儘管元素是獨立的,但所有元素形成的點會形成一條線

現在我們能通過這種方式將線性方程組 ( 如下圖 )

raw-image

轉化為兩條直線圖形,此時兩直線的交點座標為(1 , 2)

解集示意圖

解集示意圖

這種解析方式便是將「解集」具象化為「直線」,故兩直線交會之處便是滿足兩方程式的共有解了,清晰易懂且資訊完善

小知識:線性方程組中的線性( Linear )一詞,便是指圖形會以直線形式呈現,因此不妨好好想想看,這個直線與上述的方程式圖形是否存在直接關聯呢?難道在k > 2 的條件裡,方程式圖形也是直線嗎?


行圖分析 ( Column picture / 2D )

在這個解析法中,我們會將線性方程組改寫為向量運算式 ( 如下 ),也可以說這是利用向量運算中的「分量」同時討論兩方程式的未知數關係

[2;-1 ] x +[-1;2 ] y = [ 0;3 ]

[2;-1 ] x +[-1;2 ] y = [ 0;3 ]

對於學過高二數學的同學應該知道,我們將此種構造稱為(行向量的)線性組合( Linear conbination of the columns )

現在要做的事情也很單純,在二維坐標系上,繪製兩個向量 [ 2;-1 ] & [ -1;2 ] ,並通過調整 x、y 建構出 [ 0;3 ]

我們發現當 ( x , y ) = ( 1 , 2 ) 時(如果你不知道這個結論是如何得出時,建議往上看一下)方程組成立,如果是從圖來看呢?我們能發現其建構方式與「列圖分析」全然不同,又因向量加法具有交換律,也就是我們能以不同的移動方式,得出相同的結果

其中一種組合的示意圖

其中一種組合的示意圖

我們現在單以「行圖分析」繼續延伸,如果 ( x , y ) 隨意給定,此時等式右側的向量是什麼?

答案是「所有二維向量」,所有二維向量都可以用這兩個向量 [ 2;-1 ] & [ -1;2 ] 線性組合出來--此乃概念為線性代數的核心

「通過行向量的線性組合可以建構出所有可能的右側向量」

這是一句相當強大的句子,不過這個敘述在某些情況下並不成立( 例如當向量共線或維度不足時),但現階段我們暫時不會去討論「失敗的可能」。因為那需要討論是否滿足線性獨立 (Linear Independence) 的條件,但那是好久之後的事情了...

簡單用例子說明完畢後,你應該也能明白兩者間的差異,但問題是

「為什麼要分成這兩種?不是能算就行了?」

針對這個問題我先說說我的觀點,當我們討論的維度足夠高時,列圖分析的圖會畫不出來,假設算畫出來了,於「解析」這個目的而言也沒有太大幫助

為了更直觀地體會這種差異,我們可以通過提高維度觀察差異,下面以三維空間的例子來進行說明,給定一組三元一次聯立方程組 ( 如下 )

2x-y=0 | -x+2y-z=-1 |  -3y+4z=4

2x-y=0 | -x+2y-z=-1 | -3y+4z=4

改寫為矩陣運算 A x = b (如下) 以便觀察

A=[2 , -1 , 0;-1 , 2 , -1;0 , -3 , 4]|x=[x , y , z]|b=[3 , 1 , 4]

A=[2 , -1 , 0;-1 , 2 , -1;0 , -3 , 4]|x=[x , y , z]|b=[3 , 1 , 4]

列圖分析 ( Row picture / 3D )

一樣找解集元素,將元素以點座標形式圖像化,如果繪圖概念正確,此時應該會得到三個平面

然後...然後啥也看不出來,儘管你很注意也盡可能精準地去描點了,但沒什麼參考價值,我們也沒辦法從圖形上辨別這三個平面的交會狀況

此圖說明,在「有唯一解」的前提下,三平面將交於一點,此交點便是方程組的解,但實操上你是無法繪製出具體的圖形的,因為我們無法在二維平面上建構立體坐標系,我們看到的圖僅僅是畫出來的僅為其中一個視角罷了,所以這個圖頂多算是示意圖,有人說他看了些什麼?那就是人家比你會通靈,不是開玩笑,有興趣的可以了解一下拉馬努金

這還只是三維,更高維度的圖呢?所以列圖分析只能用於二維,也確實列圖分析在二維時非常好用,但是隨著提升至更高維度,三維、四維...任意維我們都可以給定規則去繪圖,但是此時圖形的建構難度已經遠高於問題本身了


行圖分析 ( Column picture / 3D )

將方程組轉換為線性組合,得

 [ 2;-1;0 ] x + [ -1;2;-3 ] y + [ 0;-1;4 ] z = [ 0;-1;4 ]

[ 2;-1;0 ] x + [ -1;2;-3 ] y + [ 0;-1;4 ] z = [ 0;-1;4 ]

顯而易見,此時 ( x , y , z ) = ( 0 , 0 , 1 ),難道這種表示法真的那麼好用嗎?當然不是,這不過是特例罷了,但我們可以通過特例清楚地認識到,使用這個方式時,可以僅用其中的一個或兩個條件去建構出方程組的解,而列圖分析則是有幾個方程式就要確認幾次條件,因此「行圖分析」相較於「列圖分析」有更多直觀的機會算出方程組的解

接著我們進一步推廣,當 b 變成 [ 1;1;-3 ] 的時候,列圖分析需要通過平移平面得出新的交點,而行圖分析可以通過調整 ( x , y , z ) 使得 ( x , y , z ) = ( 1 , 1 , 0 ) ,也就是通過 [ 2;-1;0 ] + [ -1;2;-3 ] 建構出 [ 1;1;-3 ] ,換句話說,我們在解析方程組時,不一定所有的資訊都需要討論到

思考這兩種解析方式的特點,便能得出以下結論,「列圖分析」全面但資訊過於繁雜,「行圖分析」精簡卻能更好的擷取所需資訊,而我們需要的是解決問題,所以線性代數的核心概念便出現了


此時教授提了兩個問題

  • Q1:對任意三維向量 b,是否都能得到一組 A x 表示呢?
  • Q2:行向量的線性組合是否能建構出三維空間中的任一向量?

可以停下來思考看看你的答案,這個問題很有份量,你需要試著找到解析法的弱點,能回答這個問題,表示你已經準備好進入線性代數的世界了,沒有想法也沒關係,繼續往下看即可

如果你有成功想出答案的話就能發現,其實 Q1 與 Q2 只是換個方式問,問題的核心並沒有發生改變,換句話說,這兩個問題是等價的,且答案皆為「否」,又或者是說「部分正確」--哪裡錯誤才是這兩個問題的核心,所以下一個問題是:

「什麼情況下,A的行向量無法滿足Q2的問題」

答案是「 當行向量共平面/共線時 」,當行向量中的部分向量能被其餘行向量線性組合出來的時候,我們便無法建構出所有三維空間中的其他向量,因為可能性被限制住了,在線性代數中,我們將此情況稱 A 為「 奇異 ( Singular ) 」、「 不可逆的 ( not Invertible ) 」,雖然這兩者的是用場合需要細分,但確實都是用來表示矩陣的行向量之中,有向量在擺爛不貢獻

這告訴了我們,通過不同的分析法,能夠向我們賦予線性方程組不同的意義,使我們能以更多的觀點去看待數學式,這比起解未知數有趣多了對吧!

這節課的核心知識到這邊便已經結束,下面是一些問題銜接下堂課的小知識,建議還是看一下

下一次上課的主題,會重點談論到矩陣運算,更甚者能說我們最為重視的是矩陣乘法運算 ( A x = b ) 中,有兩種方式可以說明其過程:「 內積 ( Dot product ) 」 與「 線性組合 ( Linear combination ) 」,給定

A = [ 2 , 5;1 , 3 ]  |  x = [ 1;2 ]

A = [ 2 , 5;1 , 3 ] | x = [ 1;2 ]

若以內積進行運算,則過程可表示為

A x = [ [2 , 5]。[1;2];[1 , 3]。[1;2] ]

A x = [ [2 , 5]。[1;2];[1 , 3]。[1;2] ]

若以線性組合進行運算,則過程可表示為

A x = [ 2;1 ] ( 1 ) + [ 5;3 ] ( 2 )

A x = [ 2;1 ] ( 1 ) + [ 5;3 ] ( 2 )

通過這個簡單的例子,當我們將矩陣運算視為一個線性組合後,問題變得更加精簡了!這個線性組合的理念會貫徹接下來的整個課程,所以務必先熟悉此運算

下一個章節會說明如何系統性的解構方程組,也就是線性代數中的運算核心之一「消元法(elimination)」

希望你也能感受到數學的魅力,也感謝你願意看完這篇文章,也期待我們能在下篇心得中碰面 88

留言
avatar-img
留言分享你的想法!
avatar-img
中中ㄉ數學筆記
0會員
4內容數
一個在內容永不更新的合格中學數學教師 分享/記錄自己所學的部落格 可能是書 可能是專業課程 內容準確度有請同事協助校稿 應該還過得去 期許自己所學能夠幫助到有需要的人 不定期更新