矩陣與馬可夫鏈

☰ Contents

矩陣是按橫行和直列排成的一個長方形數表。矩陣乘以一個直列的數,會得到一個新的直列,所以矩陣是一條把一串數變成另一串數的規則;兩個矩陣的乘積,就是先套用一條規則,再套用另一條。

矩陣怎麼描述,怎麼相加?

描述一個矩陣要說它的階數:先說行數(橫向),再說列數(直向),所以 2 行 3 列的矩陣是 2 × 3 矩陣。一個元素用它所在的行和列來命名:a₂₁ 位於第 2 行、第 1 列。矩陣相加是對應元素逐一相加,所以兩個矩陣的階數必須相同。用分號隔開各行來書寫,(1 4; 2 0) + (3 −1; 5 2) = (4 3; 7 2),因為 1 + 3 = 4、4 − 1 = 3、2 + 5 = 7、0 + 2 = 2。這行得通,是因為兩個矩陣裡同一個位置放的是同一種量,例如某一家店某一種商品的銷量。階數不同的矩陣不能相加,因為有些元素找不到對應的夥伴。純量乘法是把每個元素都乘上這個數:3 乘 (1 4; 2 0) 等於 (3 12; 6 0)。檢查和的方法是減去其中一個矩陣,看能否得回另一個。

3 × 4 = 12

同樣的點,換了個方向:3×4和4×3

擺出24個點,再換一種擺法

A314275
列是縱向排列。第二步數列,得出階數 2 × 3。 完整課程: 矩陣的階數

詳見 矩陣的階數和矩陣的加減與純量乘法。

A3105B14624567+=
逐個元素相加。和的左上角是 3 + 1 = 4。 完整課程: 矩陣的加減與純量乘法
3105142627+
2 × 2 和 2 × 3 的階數不同:第 3 列沒有可以相加的元素,所以這個加法做不了。 完整課程: 矩陣的加減與純量乘法

換你試試

A4559B1343+

A + B 的第 1 行第 2 列是什麼?

48387×

把這個矩陣乘以 4。第 1 行第 1 列是什麼?

矩陣乘法怎麼算,為什麼 AB 不等於 BA?

兩個矩陣相乘時,把左邊矩陣的每一行和右邊矩陣的每一列配對:對應元素相乘,再把乘積加起來。設 A = (1 2; 3 4)、B = (0 1; 1 0),A 的第 1 行配 B 的第 1 列得 1 × 0 + 2 × 1 = 2,完整的乘積是 AB = (2 1; 4 3)。這條規則讓乘積表示「先做一個變換,再做另一個」。AB 通常和 BA 不同:BA = (3 4; 1 2),因為 B 在左邊時交換的是 A 的兩行,在右邊時交換的是 A 的兩列。大小也可能讓乘積不存在:只有當 A 的列數等於 B 的行數時,AB 才存在,所以 2 × 3 乘 3 × 2 得到 2 × 2。檢查 BA 的一個元素:B 的第 1 行配 A 的第 1 列得 0 × 1 + 1 × 3 = 3。

A231402B541032×
第 1 行配第 1 列:對應相乘再相加,2 × 5 + 3 × 1 + 1 × 3 = 16。 完整課程: 矩陣的乘積

A 的一行必須和 B 的一列一樣長,而兩個階數外側的數字,就是答案的階數。

這條規則之所以這樣定,是因為它在算帳:一行數量乘以一列價格,就是一家店的營業額。

S4235price35×
A 店賣了 4 支 $3 的筆和 2 本 $5 的筆記本,所以銷售額是 4 × 3 + 2 × 5 = $22。 完整課程: 用矩陣乘積合併數據

反過來,3 × 2 乘 2 × 3 得到 3 × 3,所以兩個乘積連階數都不一定相同。矩陣乘法不滿足交換律。

AB3211BA1213≠
所以 AB 和 BA 是不同的矩陣:矩陣乘法不滿足交換律。 完整課程: 為什麼 AB 不等於 BA

單位矩陣 I 的主對角線上都是 1,其餘位置都是 0;乘以 I 不會改變任何東西,就像一個數乘以 1 一樣。A 的反矩陣是和 A 相乘得到 I 的那個矩陣。A 的冪呈現的規律用數學歸納法證明:先在 n = 1 時驗證公式,再把假設成立的矩陣多乘一次 A。詳見 矩陣的乘積、用矩陣乘積合併數據、為什麼 AB 不等於 BA、單位矩陣與零矩陣和用數學歸納法求矩陣的冪。

換你試試

3459267553×

這個乘積可以算出來嗎?

814135167542713861×

這個乘積的階數是多少?

行列式量的是什麼?

對於 2 × 2 矩陣 (a b; c d),行列式是 ad − bc:主對角線的乘積減去另一條對角線的乘積。它是矩陣把面積放大的倍數。(4 2; 5 3) 的行列式是 4 × 3 − 2 × 5 = 12 − 10 = 2,所以單位正方形變成面積為 2 的平行四邊形。這個公式算出的是面積,因為兩個直列 (4, 5) 和 (2, 3) 正是這個平行四邊形的兩邊,而 ad − bc 就是帶正負號的面積。行列式為負表示還做了一次鏡射。行列式為 0 則完全不同:整個平面被壓到一條直線或一個點上,所以矩陣沒有反矩陣,例如 (2 4; 1 2),其中 2 × 2 − 4 × 1 = 0。檢查:面積為 3 的圖形會變成面積 3 × 2 = 6。

−2−1123412xy

det [[a, b], [0, 1]] = a × 1 − b × 0 = a,所以b從未出現:錯切不改變面積

把面積變成兩倍

行列式為 0 時,不同的點會落到同一個點上,再也沒有辦法把它們分開送回去。

B2412
當兩個乘積相等時,det = 0,矩陣沒有反矩陣。 完整課程: 2 × 2 矩陣的行列式

行列式不為 0 時,求 (a b; c d) 的反矩陣只要三步:交換 a 和 d,改變 b 和 c 的正負號,再把每個元素除以 ad − bc。用乘法檢查:乘積是 I。

A3512A⁻¹2−5−13→
這裡 ad − bc = 3 × 2 − 5 × 1 = 1,所以 (3 5; 1 2) 的反矩陣是 (2 −5; −1 3)。 完整課程: 2 × 2 矩陣的反矩陣

反矩陣一步就能解聯立方程。把方程組寫成 A X = b,係數放在 A 裡,未知數放在直列 X 裡,常數放在 b 裡,再把兩邊從左邊同乘 A⁻¹,X 就單獨留下了。

A⁻¹2−5−13b11421×=
算出 A⁻¹b:2 × 11 − 5 × 4 = 2,−11 + 3 × 4 = 1,所以 x = 2、y = 1。 完整課程: 用反矩陣解聯立方程

3 × 3 行列式沿著一行展開:第 1 行的每個元素,乘以刪去它所在的行和列之後剩下的 2 × 2 行列式,正負號依次為 +、−、+。它量的是體積,而且恰好在沒有反矩陣時等於 0。3 × 3 反矩陣是餘因子矩陣的轉置除以行列式,一步就能解三個方程。詳見 2 × 2 矩陣的行列式、2 × 2 矩陣的反矩陣、用反矩陣解聯立方程、3 × 3 矩陣的行列式、3 × 3 矩陣的反矩陣和用反矩陣解三元方程。

換你試試

6353

這個矩陣的行列式是多少?

1326

這個矩陣有反矩陣嗎?

什麼是特徵值和特徵向量?

方陣 A 的特徵向量是一個非零的直列,A 只會把它拉長或縮短,而拉伸的倍數就是它的特徵值:A v = λ v。乘以 A = (4 −1; 2 1) 時,大多數直列都會改變方向,但 (1, 1) 回來時是 (3, 3),因為 4 × 1 − 1 × 1 = 3 且 2 × 1 + 1 × 1 = 3,所以 (1, 1) 是特徵值為 3 的特徵向量。特徵向量的任何倍數也是特徵向量,所以特徵向量指的是一個方向。負的特徵值會把方向反轉,0 則把它壓扁。特徵向量重要,是因為沿著它們,矩陣的作用就像普通的乘法,所以求冪很容易:把 A 作用五次,(1, 1) 就被放大 3⁵ 倍。求特徵向量要從特徵值開始,特徵值是 det(A − λI) = 0 的解,每個特徵值再給出一個方向。驗證一個聲稱的特徵向量:A 乘 (1, 2) 得 (2, 4),是原直列的兩倍,所以另一個特徵值是 2。

Avθ = 20°|Av| = 2.75旋轉 16°−3−3−2−2−1−1112233

Av 與 v 的方向相差 16°,所以 Av ≠ λv:A 在拉伸這個向量的同時也旋轉了它,因此它不是特徵向量

旋轉 v,直到 Av 與 v 落在同一條直線上

A4−1211133×=
但 (1,1) 送回來變成 (3,3):方向相同,只是拉伸了三倍。 完整課程: 特徵值與特徵向量

求特徵值時,把 A v = λ v 改寫成 (A − λI) v = 0。一個非零直列被送到零,表示 A − λI 沒有反矩陣,所以 det(A − λI) = 0。減去 λI 就是從每個對角元素減去 λ,所以這裡 det(A − λI) = (4 − λ)(1 − λ) + 2 = λ² − 5λ + 6,這就是特徵多項式。它的根 2 和 3 就是特徵值。

or
令它等於零,再因式分解:A 的兩個特徵值是 2 和 3。 完整課程: 特徵多項式

對每個特徵值解 (A − λI) v = 0。在 λ = 3 時兩行都得出 y = x,所以 v = (1, 1);在 λ = 2 時兩行都得出 y = 2x,所以 v = (1, 2)。

把特徵向量作為 P 的各列,再把特徵值按同樣的順序放在 D 的對角線上。於是 A P = P D,所以 A = P D P⁻¹。冪也就跟著出來了,因為中間的每個 P⁻¹ P 都互相抵消:Aⁿ = P Dⁿ P⁻¹,而 Dⁿ 可以逐個元素求出。詳見 特徵值與特徵向量、特徵多項式、求特徵向量、2 × 2 矩陣的對角化和用對角化求矩陣的冪。

P1112D⁵2430032P⁻¹2−1−11××
所以 A⁵ 只需兩次矩陣乘法,不是四次:P 乘 D⁵,再乘 P⁻¹。 完整課程: 用對角化求矩陣的冪

換你試試

A − λI4 − λ−121 − λ

A − λI 長什麼樣子?

A1423

這個矩陣的特徵多項式是什麼?

什麼是馬可夫鏈,它為什麼會穩定下來?

馬可夫鏈在固定幾種狀態之間移動,每一步只取決於目前的狀態。移動的機率填成一個轉移矩陣 T,T 乘以今年的分布就得到明年的分布。假設每年城市裡有 0.2 的人搬到鄉下,鄉下有 0.3 的人搬到城市。T 的每一列代表一個起始狀態,所以每一列的元素加起來等於 1。如果兩地各有 500 人,明年城市就有 400 + 150 = 550 人,因為 500 人中有 4/5 留下,另外 500 人中有 3/10 搬來。正則的鏈會穩定下來,是因為 T 會讓某一個分布保持不變,而起點裡其餘的部分每一步都在縮小。這裡那個分布讓雙向的流量相等,城市因此佔所有人的 3/5。陷阱狀態是沒有人會離開的狀態,最終會收容所有能到達它的人。驗證這個穩定分布:2/10 等於 400 的 600 = 120 = 3/10。

AB100%0%0.3 →← 0.2πA = 0.4t104812t = 0: A = 100%

這個比例與 40/60 仍相差 60 個百分點,且每一步這個差距都會減半:(a₀ − 0.4) × 0.5ᵗ

從全部處於 A 開始,讓時間向前推進,直到比例不再變化

n 年後的分布是 Tⁿ 乘以起始分布,而把 T 對角化,求 Tⁿ 就很容易了。

T0.80.30.20.7now500500550450×=
把 T 乘上今年的分佈,就得出明年:550 和 450。 完整課程: 轉移矩陣

轉移圖用狀態之間的箭頭表示同樣的數字,留在原地的比例畫成一個回到自己的圈。如果 T 的某個冪的所有元素都是正數,這條鏈就是正則的。一個狀態如果唯一的箭頭指回自己,進去的人就全被困住,這樣的鏈就不是正則的。

0.80.70.20.3CK
C 是城市,K 是鄉村。每支箭頭帶著那個方向移動的比例,一個迴圈帶著留下的比例。 完整課程: 轉移圖

讓所有人一開始都在城市,分布就會穩定下來。穩定的分布是 T 不會改變的分布,所以它是 T 的特徵值為 1 的特徵向量。解 (T − I) s = 0:兩行都得出 2x = 3y,所以長期來看,城市和鄉下的人口比是 3 比 2。

citycountryyear 010000year 1800200year 2700300year 3650350year 4625375
一開始所有人都在城市,分佈逐漸穩定:800、700、650、625。 完整課程: 長期穩定狀態

每個轉移矩陣都有特徵值 1,因為它的每一列加起來都是 1。其餘特徵值的大小都小於 1,所以它們在任何起點中所佔的部分每一步都在縮小,最後剩下的就是特徵值 1 的特徵向量。PageRank 就是網頁之間連結矩陣的這個向量。詳見 轉移矩陣、轉移圖和長期穩定狀態。

換你試試

0.80.1?0.9

城市人口有百分之 80 留下。第 1 列下面填的是什麼?

T0.80.30.20.7

在轉移矩陣中,哪一組元素相加是 1?

接下來通往哪裡

矩陣運算說明矩陣對一個直列做了什麼,行列式說明這能不能復原,特徵值則說明矩陣作用很多次之後會發生什麼。馬可夫鏈就是把最後這個問題,放在一個由機率組成的矩陣上來問。

值得點名的錯誤

矩陣對圖形的作用,在全等、圓的定理與變換(英文)中繼續;特徵多項式用到的因式分解,來自二次方程式與多項式。相關指南:積分的應用與極座標曲線(英文)和複數。

輪到你了

三題試一試,點選作答。

任何矩陣乘以單位矩陣,得到

[[2, 1], [3, 4]] 的行列式

馬可夫轉移矩陣的每一直列加起來等於

常見問題

為什麼矩陣的 AB 和 BA 不一樣?
因為矩陣代表一個動作,而動作一般不能交換順序。把一本書先轉九十度再翻面,和先翻面再轉九十度,最後的位置不一樣。矩陣乘法的定義就是把動作依序組合起來,所以它也繼承了這種對順序的依賴。有些矩陣確實滿足 AB 等於 BA,但那是這幾個矩陣碰巧如此,不是規則。
矩陣的行列式告訴你什麼?
它是矩陣把面積(二維)或體積(三維)放大的倍數。行列式為 3 表示每個區域都變成原來的三倍大,行列式為負則表示矩陣還把圖形翻了面。行列式為零表示矩陣把一切壓扁了,這也是行列式為零的矩陣沒有反矩陣的原因:資訊已經被毀掉,無法再找回來。
怎麼用矩陣解聯立方程?
把方程組寫成係數矩陣乘以未知數直列、等於常數直列,然後兩邊同乘反矩陣。這樣一邊只剩下未知數,一次求反矩陣加一次乘法,就同時得出每一個未知數。如果行列式為零,反矩陣就不存在,這正好對應方程組無解或有無限多解的情況。
用白話說,特徵向量是什麼?
特徵向量是矩陣不會讓它轉向的方向——落在這個方向上的東西只會被拉長或縮短。拉長的倍數就是特徵值。矩陣作用時,大多數方向都會被轉動;特徵向量是少數仍指向原方向的特殊方向,而反覆作用最後會把一切都排到它們上面。
什麼是馬可夫鏈?
它是一個在固定幾種狀態之間移動的系統模型,下一步往哪裡走的機率只取決於目前的狀態,與過去的歷程無關。這些機率存放在轉移矩陣裡,乘一次這個矩陣,模型就前進一步。天氣、顧客流失、棋盤遊戲的位置和文字預測,都常常用這種方式建模。
為什麼馬可夫鏈會趨於穩定狀態?
因為反覆乘以轉移矩陣,會把任何起始分布拉向這個矩陣的主特徵向量。每個轉移矩陣都恰好有一個特徵值等於 1,對應的特徵向量就是鏈會原封不動重現的那個分布。其餘的成分每一步都在縮小,所以走了足夠多步之後,起點就不再重要。
Mr. Chalk