用直覺理解矩陣(轉換旅程的機器)

矩陣是會讓能力不錯的學生突然覺得自己很笨的主題。到這裡為止,每一種運算都有畫面。加法是合併,乘法是縮放。就連上週那篇文章裡的向量運算,也都是你能走一遍的旅程。然後有人寫下兩格數字,宣布要用「列乘以行」把它們相乘,畫面就消失了。規則行得通,卻沒有人說得出它在做什麼。
結果就是第二種雙重視覺,與向量那篇文章裡的是同一類。在代數課上,矩陣是一盒數字;在後面的課程裡,它是「線性變換」,這個詞聽起來像答案,卻什麼也沒解釋。這篇文章就是那座橋:矩陣是一台機器,丟進一趟旅程,吐出一趟旅程;格子裡的每一欄,記錄的是一條坐標軸落在哪裡;而乘法規則,只是依序執行兩台機器時的記帳方式。
轉換旅程的機器
這個系列一直回到同一個想法:數是有方向的。負數是朝反方向的普通數。虛數是朝側面的數,離開數線,進入平面。向量是這個想法被解放後的樣子,是可以帶著任何方向的量。有了旅程,下一個問題幾乎是必然的:什麼東西能作用在旅程上?什麼東西能把「向東 3、向北 4」變成另一趟旅程?
這個作用者就是矩陣。
想像一台機器,它的設定可以拉伸、壓縮、旋轉或翻轉你丟進去的任何東西。你給它一趟旅程,它還你一趟旅程。2×2 的矩陣,就是這種機器作用在平面上的完整說明書。3×3 的矩陣則是同一個想法放到空間裡。那一格格數字不是物件本身,而是規格表。
這就是為什麼矩陣不是比較大的向量。向量是一趟旅程,矩陣是改變旅程的規則。把兩者混為一談,就像把旅程和把你吹離航道的天氣混為一談。
每一欄都是坐標軸落下的位置
這是讓整個主題變得讀得懂的事實。你不需要知道矩陣對每一趟可能的旅程做了什麼,只需要知道它對其中兩趟做了什麼:向東一步,以及向北一步。其他每一趟旅程都是這兩趟的組合,所以機器對任何旅程的作用,就是它對兩條坐標軸的作用做同樣的組合。
把這兩個結果寫成兩欄,你就得到了矩陣。
假設機器把向東一步送到 (2, 1),把向北一步送到 (0, 3)。矩陣就是第一欄為 2、1,第二欄為 0、3 的 2×2 格子。把旅程 (3, 4)(也就是「先向東 3,再向北 4」)丟進去,輸出就是 3 份第一欄加上 4 份第二欄:。這就是矩陣與向量的乘法。課本裡「列乘以行」的流程,就是這個同樣的和,只是寫成電腦不必畫箭頭就能執行的形式。
從向量那篇文章讀過來的讀者會認得這個和:你是在把縮放過的旅程相加。矩陣並沒有發明新的算術,它只是把旅程的算術,每一欄用一次。
單位矩陣是什麼都不做的機器。()向東一步仍是向東一步,向北一步仍是向北一步,所以它的兩欄正好就是兩條坐標軸的旅程。丟什麼進去,就原封不動還你什麼。它是設定在 100% 的影印機,沒有旋轉,也是這個主題裡數字 1 有對應物的原因。
乘法的意思是先做這個,再做那個
那條感覺像是憑空發明的規則,也就是兩個矩陣相乘,其實是穿著格子外衣的函數合成。A 乘以 B,是要造出一台單一的機器:先做 B,再做 A。你把旅程送進 B,拿出來的東西再送進 A。乘積 AB 就是這台合併後機器的規格表。
這就是為什麼順序很重要,也是為什麼它感覺像是倒著來的。,道理就像先穿襪子再穿鞋,和先穿鞋再穿襪子不一樣。右邊的機器先作用,因為我們早就是這樣寫函數的:f(g(x)) 先作用 g。矩陣乘法繼承了同樣的慣例。
這也是為什麼會有「列乘以行」的作法。AB 的各欄,就是合併後的機器對兩條坐標軸做的事,也就是 A 作用在 B 的各欄上。每一個都是矩陣與向量的乘積,而每一個矩陣與向量的乘積,又是一堆內積。課本上的流程,是同一個想法的三層結構,被壓縮成一句口訣。
一個有用的推論:你可以不用再死背兩個矩陣何時才能相乘。當第一台機器吐出的旅程,大小剛好可以送進第二台機器時,它們就能相乘。2×3 的矩陣吃進 3 維的旅程,吐出 2 維的旅程。它可以放在吃 2 維旅程的 2×2 矩陣的右邊,也可以放在吐出 3 維旅程的 3×4 矩陣的左邊。中間的大小必須吻合,因為它們是同一條走廊。
行列式是保留下來的面積
把以兩條坐標軸旅程為邊的單位正方形丟進機器。它的像是一個平行四邊形,邊就是那兩欄。行列式就是這個平行四邊形的有向面積。
如果行列式是 2,機器就把面積變兩倍。如果是 1/2,就減半。如果是 0,平行四邊形就塌成一段線或一個點:機器把平面壓扁了,兩趟不同的旅程可能落在同一個地方,資訊已經被丟掉。如果是負的,機器就翻轉了方向,把逆時針的正方形變成順時針的,這與負數在數線上造成的反向相同。
計算的方法,例如 2×2 的 ,以及之後的餘因子展開,都是計算那塊面積的方式,不是意義本身。一旦你看到那個平行四邊形,「行列式為零」就不再是神祕的失敗,而是一個畫面:兩欄指向同一條直線,所以張不出面積,於是這台機器就等於是往那條直線上的投影。
這也是為什麼行列式為零就沒有反矩陣,這正是下一節的全部重點。
反矩陣的意思是復原
反矩陣就是復原按鈕。如果 A 把旅程 v 送到旅程 w,那麼 A 的反矩陣就把 w 送回 v。先跑機器,再跑它的反矩陣,結果是恆等變換:你回到出發的地方,好像什麼都沒發生過。
一台機器能被完整復原,恰好是在它沒有丟掉資訊的時候。這又回到行列式的檢驗。如果兩趟不同的輸入旅程可以產生同一個輸出,就沒有辦法確定某個輸出是從哪個輸入來的,也就不存在反矩陣。如果每個輸出都恰好來自一個輸入,復原機器就存在,而且是唯一的。
在學校裡,這會以一條包含 1 除以行列式和一個重新排列過的格子的公式出現。這個公式是真的,也值得練習,但它只是結果。想法是「把影片倒著放」,而且只有在影片沒有把場景壓扁時才行得通。
一次聯立方程式組,是同一個想法換了件衣服。代數教你用消去法解兩個未知數的兩個方程式。那兩個方程式,就是一個矩陣作用在一趟未知的旅程上,並等於一趟已知的旅程。解方程組就是套用反矩陣。當方程組無解或有無限多組解時,行列式為零:機器把平面壓扁了,而右邊的結果不是落在剩下的那條線之外,就是以無限多種方式落在那條線上。你背過的「矛盾方程組」和「相依方程組」,正是一台塌縮的機器無法有唯一復原方式的兩種情形。
特徵向量拒絕轉向
大多數旅程進入機器後,出來時指向新的方向。少數特別的旅程出來時,仍指著進去時的方向,只是變長或變短。這些旅程就是特徵向量,伸縮的倍數就是特徵值。
畫面是風洞。大部分的箭頭被吹得歪向一邊,而特徵向量是風只會讓它變長或變短的箭頭。如果倍數是 2,機器就把那趟旅程變兩倍。如果倍數是 1,就原封不動。如果倍數是 0,就把那趟旅程壓成什麼都不剩,也就是前兩節的壓扁,只是沿著單一方向看。如果倍數是負的,就在伸縮之外,還讓旅程反向。
這是後面章節中看起來很進階、其實不然的一個想法。找特徵向量,就是在問:沿著哪些方向,這台機器的作用就像單純乘上一個數?一旦有了那些方向,在那個坐標系裡機器就變簡單了,這也是為什麼從微分方程到網頁排名,每個用到矩陣的領域都從尋找它們開始。
錯誤從哪裡來
矩陣的錯誤集中在三個地方,而且每一個都是從來沒畫出來的畫面。
第一種是逐項相乘。學生看到兩個大小相同的格子,就把數字兩兩配對,就像矩陣加法那樣,而加法確實是逐項的。乘法不是加法,而是先跑一台機器,再跑另一台。兩個 2×2 的矩陣相乘,會得到另一個 2×2 的矩陣,但每一個輸出的欄,是 A 作用在 B 的一欄上,不是四組對應格子的相乘。
第二種是忽略順序。只要 A 和 B 做的事不同(這幾乎總是如此),AB 和 BA 就是不同的機器。按照遇到它們的順序來寫因子,而不是按照它們作用的順序,就是襪子與鞋的錯誤,也是整章中最常見的代數失誤。
第三種是把行列式為零當成計算機壞掉,而不是平行四邊形被壓扁。機器仍然在做事:它把每一趟旅程都送到一條直線上,或送到原點。只是無法復原。「沒有反矩陣」不是宇宙的拒絕,而是對一台少了一個維度的機器的描述。
Math Zen 能幫上什麼
矩陣建立在向量的基礎之上,那裡一有動搖,馬上就會浮現。把各欄相加就是向量加法。「列乘以行」那一步是內積。2×2 的行列式是平行四邊形的有向面積,與向量那篇文章討論平行四邊形法則時用的是同一種幾何。如果這些運算還停留在口頭上而不是視覺上,每一次矩陣計算都會變成一種儀式。
Math Zen 的階段式進度讓這些基礎保持有序。早期階段練習帶正負號的算術和單位圓;向量的階段接著讓加法、縮放與內積成為反射動作;矩陣的階段則把這些視為已知,練習新的運算:相乘、計算行列式、求反矩陣、解方程組、求特徵值,這恰好就是本文那些畫面的清單,化成你每天能做的短題。間隔重複能把「每一欄都是坐標軸落下的位置」,從一句你曾經覺得有道理的話,變成考試題目第二行就會用上的反射動作。
結論
矩陣是一台機器,丟進一趟旅程,吐出一趟旅程。那一格格數字是規格表:每一欄是一條坐標軸落下的位置,而它對任何其他旅程的作用,就是這些欄的對應組合。兩個矩陣相乘,造出的是先跑右邊那台的機器。行列式是保留下來的面積,機器把平面壓扁時就是零。反矩陣是復原按鈕,恰好在沒有東西被壓扁時才存在。特徵向量則是機器只拉伸、不轉向的那些少見的旅程。
這樣合起來看,這個主題只有一個想法,被用在越來越大的機器上。兩間教室造成的雙重視覺,在你不再追問矩陣「究竟是格子還是變換」的那一刻就消失了。它其實是一台機器,而格子只是記錄坐標軸去了哪裡的清單。
常見問題
- 簡單來說,矩陣是什麼?
- 矩陣是一台機器,丟進一趟旅程,吐出一趟旅程。那一格格數字本身不是物件,而是規格表。每一欄記錄一條坐標軸落在哪裡,而它對任何其他旅程的作用,就是把這些欄做同樣的組合。向量是一趟旅程;矩陣則是改變旅程的規則。把兩者混為一談,就像把旅程和把你吹離航道的天氣混為一談。
- 矩陣乘法為什麼這麼奇怪?
- 因為它不是把對應的格子相乘,而是先跑一台機器,再跑另一台。乘積 AB 是一台單一的機器:先做 B,再做 A,與函數早已使用的由右往左的慣例相同。AB 的每一欄,就是 A 作用在 B 對應那一欄上的結果,而每一欄又是幾趟縮放後的旅程相加。課本裡「列乘以行」的那套流程,其實就是這個合成,只是寫成不用畫箭頭也能計算的形式。
- 矩陣的行列式究竟代表什麼?
- 它是把單位正方形丟進機器後,得到的平行四邊形的有向面積。行列式為 2 代表面積變兩倍;行列式為 1/2 代表面積減半;為零代表平行四邊形塌成一條線或一個點,於是兩趟不同的旅程可能落在同一個地方,這台機器就無法復原。行列式為負代表機器翻轉了方向,把逆時針的正方形變成順時針,這與負數在數線上造成的反向相同。
- 什麼是反矩陣?
- 就是「復原」按鈕。如果 A 把旅程 v 送到旅程 w,反矩陣就把 w 送回 v。先跑機器、再跑它的反矩陣,結果是恆等變換:你回到出發的地方。反矩陣存在,恰好是在行列式不為零的時候,因為只有這時機器才沒有丟掉任何資訊。解一組一次聯立方程式其實就是同一件事換了個裝扮:係數是矩陣,未知數是輸入的旅程,求解就是套用反矩陣。
- 用白話說,特徵向量是什麼?
- 是機器只會拉長或壓短、卻不會轉向的旅程。大多數旅程進去之後,出來時指向新的方向。特徵向量出來時仍在它進去時的那條直線上,只是變長或變短,而那個伸縮倍數就是特徵值。如果倍數是 2,這趟旅程就變兩倍;如果是 0,這趟旅程就被壓成什麼都不剩。找特徵向量,就是在問:沿著哪些方向,這台機器的作用就像單純乘上一個數?


