矩陣乘法是第一個真正把「行」與「列」結合起來的矩陣運算。它也是矩陣之所
以能表達複合、線性方程組與逆矩陣的核心原因。所以這條規則不能只靠死記;
你要明白每一步的大小條件到底在做甚麼。
為甚麼矩陣乘法比加法微妙
矩陣加法與數乘都是逐項進行。矩陣乘法則不同:輸出中的一個元素,是由左邊
矩陣的一整行與右邊矩陣的一整列共同決定。
定義
矩陣乘積何時有定義
若 A 是 m×n 矩陣,B 是 n×p 矩陣,則乘積 AB
有定義,且結果是 m×p 矩陣。
若 A 的列數不等於 B 的行數,則 AB 未定義。
內側大小必須配對;外側大小則給出結果矩陣的大小。
行乘列規則
定義
矩陣乘法
設 A=[aij] 是 m×n 矩陣,B=[bjk] 是 n×p
矩陣。
則 AB 的 (i,k) 元素為
(AB)ik=ai1b1k+ai2b2k+⋯+ainbnk.也就是說,輸出中的一個元素,是 A 的第 i 行與 B 的第 k 列按位相
乘後再相加。
這個定義同時說明三件事:
- 矩陣乘法不是逐項相乘;
- 內側大小必須吻合;
- 一個輸出元素會用到整行與整列中所有對應位置。
例題
細算一個矩陣乘積
令
A=[132−1],B=[4501].由於兩者都是 2×2,所以 AB 有定義。其元素為
(AB)11=1⋅4+2⋅5=14,(AB)12=1⋅0+2⋅1=2,(AB)21=3⋅4+(−1)⋅5=7,(AB)22=3⋅0+(−1)⋅1=−1.因此
AB=[1472−1].
矩陣乘向量就是方程組語言
若 x 是列向量,那麼 Ax 只是矩陣乘法的特例,但它剛好把線性方程組的左
邊全部打包起來。
對
A=[132−1−15],x=x1x2x3,
有
Ax=[x1+2x2−x33x1−x2+5x3].
所以 Ax=b 並不是純粹縮寫,而是把整個方程組寫成一個矩陣乘積。
單位矩陣是刻意「甚麼也不改變」的矩陣
定義
單位矩陣
對每個正整數 n,In 表示 n×n 單位矩陣:主對角線上全是 1,
其餘位置全是 0。
例如
I2=[1001],I3=100010001.
單位矩陣之所以重要,是因為它對任何大小相容的矩陣都不起改變作用:
AIn=A,ImA=A.
例題
為甚麼乘上單位矩陣不會改變矩陣
若
A=[24−13],則
AI2=[24−13][1001]=[24−13].因為 I2 的第一列會抽出 A 的第一列,第二列會抽出 A 的第二列。
這正是往後定義逆矩陣的原因:若 A−1 存在,就要求 AA−1=I。
乘法一般不交換
線性代數最早令學生不習慣的地方之一,就是
AB=BA
一般並不成立。
有時兩個乘積都定義,但結果不同;有時其中一個有定義,另一個根本未定義。
所以次序同時影響「能不能做」與「做出來是甚麼」。
下面的圖可以幫你直接看到:一個輸出元素,是如何由一行與一列構成的。
邊讀邊試
跟著看一格矩陣乘法
互動工具會在你改變 A 與 B 的元素時,即時更新 AB 的每一格。
結果
8 = 1×2 + 2×3
用列觀點去讀乘積
除咗逐格計算之外,矩陣乘法仲有另一個非常重要嘅讀法。
如果將 B 嘅列寫成
B=[b1 b2 ⋯ bp],
咁就有
AB=[Ab1 Ab2 ⋯ Abp].
即係話,乘積嘅每一列,都可以理解成 A 乘上 B 嘅對應列向量。
矩陣乘法其實表示複合
矩陣乘法唔係隨手規定出嚟嘅公式,而係用嚟表達線性映射複合嘅規則。
如果向量 x 先被送去 Bx,再將結果送去 A(Bx),咁整體作用就係
(AB)x.
所以內側大小一定要吻合,因為第一個變換嘅輸出,必須係第二個變換可以接收
嘅輸入。
定理
結合律對應重複複合
只要相關乘積有定義,就有
A(BC)=(AB)C.所以一串矩陣乘積可以改變分組方式,而唔改變最後嘅線性變換。
標準基向量解釋點解列觀點咁自然
喺 Rn 入面,ek 係第 k 個位置等於 1、其餘位置都係 0 嘅向量。
如果 A 係 m×n 矩陣,咁 Aek 就正正係 A 嘅第 k 列。
因此單位矩陣一啲都唔神秘。In 嘅各列就係 e1,e2,…,en,所以
右乘 In,其實就係逐列將 A 自己原封不動咁重建出嚟。
同一個 sanity check 亦適用於零矩陣。如果右邊矩陣每一列都係零向量,咁乘積
嘅每一列都會變成零向量,所以任何大小相容嘅 A0 都一定係零矩陣。
最先要記住的代數法則
當乘法有定義之後,下一個問題就係:佢同你已經熟悉的其他矩陣運算如何配合。
只要大小相容,矩陣乘法滿足
A(B+C)=AB+AC,(A+B)C=AC+BC,
而純量亦可以搬進搬出:
(cA)B=c(AB)=A(cB).
零矩陣係最簡單的 sanity check。若 0 係大小相容的零矩陣,便有
A0=0,0A=0.
原因係:行乘列時只要其中一邊全部是零,所有輸出元素都只會係零。
呢幾條法則雖然基本,但往後講逆矩陣、block 計算和更長的乘積推理時,
都會默默用到。如果唔將佢哋明確掌握,後面的大計算就會好難核對。
例題
零乘積不代表其中一個因子必定為零
令
A=[1−1],B=[11].兩個矩陣都不是零矩陣,但
AB=[1⋅1+(−1)⋅1]=[0].所以矩陣乘法同實數乘法不同:AB=0 並不推出 A=0 或 B=0。
定理
單位矩陣是唯一的
如果 E 係一個 n×n 矩陣,而且對每個相容的 n×n 矩陣 A
都滿足
EA=AandAE=A,咁就一定有 E=In。
常見錯誤
常見錯誤
矩陣乘法不是逐項相乘
(AB)ik 不是 aikbik。它來自 A 的第 i 行與 B 的第 k
列。
常見錯誤
一個方向可乘,不代表反方向也可乘
若 A 是 2×3、B 是 3×4,則 AB 有定義,但 BA
沒有。不要自動把順序反過來。
快速檢查
快速檢查
若 A 是 2×3、B 是 3×5,那麼 AB 的大小是甚麼?
快速檢查
把一個大小相容的矩陣乘上 In,會發生甚麼?
快速檢查
如果 B 嘅列向量係 b1 同 b2,點樣讀 AB 嘅各列?
練習
快速檢查
為甚麼 Ax=0 不論 A 是甚麼,都至少有一個解?
快速檢查
點解有時 AB 有定義,但 BA 卻冇定義?
相關筆記
本節建立在
2.1 矩陣基礎 之上。
下一節可讀
3.2 轉置與特殊矩陣,
或直接跳到
5.1 可逆矩陣。