Evanalysis
3.1嵌入式互動預計閱讀時間: 11 分鐘

3.1 矩陣乘法與單位矩陣

理解何時可以做矩陣乘法、行乘列規則怎樣運作,以及單位矩陣為何對方程組與逆矩陣重要。

矩陣乘法是第一個真正把「行」與「列」結合起來的矩陣運算。它也是矩陣之所 以能表達複合、線性方程組與逆矩陣的核心原因。所以這條規則不能只靠死記; 你要明白每一步的大小條件到底在做甚麼。

為甚麼矩陣乘法比加法微妙

矩陣加法與數乘都是逐項進行。矩陣乘法則不同:輸出中的一個元素,是由左邊 矩陣的一整行與右邊矩陣的一整列共同決定。

定義

矩陣乘積何時有定義

AAm×nm \times n 矩陣,BBn×pn \times p 矩陣,則乘積 AB 有定義,且結果是 m×pm \times p 矩陣。

AA 的列數不等於 BB 的行數,則 AB 未定義。

內側大小必須配對;外側大小則給出結果矩陣的大小。

行乘列規則

定義

矩陣乘法

A=[aij]A = [a_{ij}]m×nm \times n 矩陣,B=[bjk]B = [b_{jk}]n×pn \times p 矩陣。

AB(i,k) 元素為

(AB)ik=ai1b1k+ai2b2k++ainbnk.(AB)_{ik} = a_{i1}b_{1k} + a_{i2}b_{2k} + \cdots + a_{in}b_{nk}.

也就是說,輸出中的一個元素,是 AA 的第 i 行與 BB 的第 k 列按位相 乘後再相加。

這個定義同時說明三件事:

  • 矩陣乘法不是逐項相乘;
  • 內側大小必須吻合;
  • 一個輸出元素會用到整行與整列中所有對應位置。

例題

細算一個矩陣乘積

A=[1231],B=[4051].A = \begin{bmatrix} 1 & 2 \\ 3 & -1 \end{bmatrix}, \qquad B = \begin{bmatrix} 4 & 0 \\ 5 & 1 \end{bmatrix}.

由於兩者都是 2×22 \times 2,所以 AB 有定義。其元素為

(AB)11=14+25=14,(AB)_{11} = 1 \cdot 4 + 2 \cdot 5 = 14,(AB)12=10+21=2,(AB)_{12} = 1 \cdot 0 + 2 \cdot 1 = 2,(AB)21=34+(1)5=7,(AB)_{21} = 3 \cdot 4 + (-1) \cdot 5 = 7,(AB)22=30+(1)1=1.(AB)_{22} = 3 \cdot 0 + (-1) \cdot 1 = -1.

因此

AB=[14271].AB = \begin{bmatrix} 14 & 2 \\ 7 & -1 \end{bmatrix}.

矩陣乘向量就是方程組語言

x 是列向量,那麼 Ax 只是矩陣乘法的特例,但它剛好把線性方程組的左 邊全部打包起來。

A=[121315],x=[x1x2x3],A = \begin{bmatrix} 1 & 2 & -1 \\ 3 & -1 & 5 \end{bmatrix}, \qquad x = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix},

Ax=[x1+2x2x33x1x2+5x3].Ax = \begin{bmatrix} x_1 + 2x_2 - x_3 \\ 3x_1 - x_2 + 5x_3 \end{bmatrix}.

所以 Ax=bAx = b 並不是純粹縮寫,而是把整個方程組寫成一個矩陣乘積。

單位矩陣是刻意「甚麼也不改變」的矩陣

定義

單位矩陣

對每個正整數 nInI_n 表示 n×nn \times n 單位矩陣:主對角線上全是 1, 其餘位置全是 0

例如

I2=[1001],I3=[100010001].I_2 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \qquad I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}.

單位矩陣之所以重要,是因為它對任何大小相容的矩陣都不起改變作用:

AIn=A,ImA=A.AI_n = A, \qquad I_m A = A.

例題

為甚麼乘上單位矩陣不會改變矩陣

A=[2143],A = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix},

AI2=[2143][1001]=[2143].AI_2 = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix}.

因為 I2I_2 的第一列會抽出 AA 的第一列,第二列會抽出 AA 的第二列。

這正是往後定義逆矩陣的原因:若 A1A^{-1} 存在,就要求 AA1=IAA^{-1} = I

乘法一般不交換

線性代數最早令學生不習慣的地方之一,就是

ABBAAB \ne BA

一般並不成立。

有時兩個乘積都定義,但結果不同;有時其中一個有定義,另一個根本未定義。 所以次序同時影響「能不能做」與「做出來是甚麼」。

下面的圖可以幫你直接看到:一個輸出元素,是如何由一行與一列構成的。

邊讀邊試

跟著看一格矩陣乘法

互動工具會在你改變 A 與 B 的元素時,即時更新 AB 的每一格。

結果

89
34

8 = 1×2 + 2×3

用列觀點去讀乘積

除咗逐格計算之外,矩陣乘法仲有另一個非常重要嘅讀法。

如果將 BB 嘅列寫成

B=[b1 b2  bp],B = [b_1\ b_2\ \cdots\ b_p],

咁就有

AB=[Ab1 Ab2  Abp].AB = [Ab_1\ Ab_2\ \cdots\ Ab_p].

即係話,乘積嘅每一列,都可以理解成 AA 乘上 BB 嘅對應列向量。

矩陣乘法其實表示複合

矩陣乘法唔係隨手規定出嚟嘅公式,而係用嚟表達線性映射複合嘅規則。

如果向量 x 先被送去 Bx,再將結果送去 A(Bx),咁整體作用就係

(AB)x.(AB)x.

所以內側大小一定要吻合,因為第一個變換嘅輸出,必須係第二個變換可以接收 嘅輸入。

定理

結合律對應重複複合

只要相關乘積有定義,就有

A(BC)=(AB)C.A(BC) = (AB)C.

所以一串矩陣乘積可以改變分組方式,而唔改變最後嘅線性變換。

標準基向量解釋點解列觀點咁自然

RnR^n 入面,eke_k 係第 k 個位置等於 1、其餘位置都係 0 嘅向量。 如果 AAm×nm \times n 矩陣,咁 AekAe_k 就正正係 AA 嘅第 k 列。

因此單位矩陣一啲都唔神秘。InI_n 嘅各列就係 e1,e2,,ene_1, e_2, \ldots, e_n,所以 右乘 InI_n,其實就係逐列將 AA 自己原封不動咁重建出嚟。

同一個 sanity check 亦適用於零矩陣。如果右邊矩陣每一列都係零向量,咁乘積 嘅每一列都會變成零向量,所以任何大小相容嘅 A0 都一定係零矩陣。

最先要記住的代數法則

當乘法有定義之後,下一個問題就係:佢同你已經熟悉的其他矩陣運算如何配合。

只要大小相容,矩陣乘法滿足

A(B+C)=AB+AC,(A+B)C=AC+BC,A(B + C) = AB + AC, \qquad (A + B)C = AC + BC,

而純量亦可以搬進搬出:

(cA)B=c(AB)=A(cB).(cA)B = c(AB) = A(cB).

零矩陣係最簡單的 sanity check。若 0 係大小相容的零矩陣,便有

A0=0,0A=0.A0 = 0, \qquad 0A = 0.

原因係:行乘列時只要其中一邊全部是零,所有輸出元素都只會係零。

呢幾條法則雖然基本,但往後講逆矩陣、block 計算和更長的乘積推理時, 都會默默用到。如果唔將佢哋明確掌握,後面的大計算就會好難核對。

例題

零乘積不代表其中一個因子必定為零

A=[11],B=[11].A = \begin{bmatrix} 1 & -1 \end{bmatrix}, \qquad B = \begin{bmatrix} 1 \\ 1 \end{bmatrix}.

兩個矩陣都不是零矩陣,但

AB=[11+(1)1]=[0].AB = \begin{bmatrix} 1 \cdot 1 + (-1) \cdot 1 \end{bmatrix} = \begin{bmatrix} 0 \end{bmatrix}.

所以矩陣乘法同實數乘法不同:AB=0AB = 0 並不推出 A=0A = 0B=0B = 0

定理

單位矩陣是唯一的

如果 EE 係一個 n×nn \times n 矩陣,而且對每個相容的 n×nn \times n 矩陣 AA 都滿足

EA=AandAE=A,EA = A \qquad \text{and} \qquad AE = A,

咁就一定有 E=InE = I_n

證明

點解唔可能存在第二個單位矩陣

常見錯誤

常見錯誤

矩陣乘法不是逐項相乘

(AB)ik(AB)_{ik} 不是 aikbika_{ik}b_{ik}。它來自 AA 的第 i 行與 BB 的第 k 列。

常見錯誤

一個方向可乘,不代表反方向也可乘

AA2×32 \times 3BB3×43 \times 4,則 AB 有定義,但 BA 沒有。不要自動把順序反過來。

快速檢查

快速檢查

AA2×32 × 3BB3×53 × 5,那麼 AB 的大小是甚麼?

先檢查內側大小,再讀外側大小。

解答

答案

快速檢查

把一個大小相容的矩陣乘上 InI_n,會發生甚麼?

用一句話回答。

解答

答案

快速檢查

如果 BB 嘅列向量係 b1b_1b2b_2,點樣讀 AB 嘅各列?

用列觀點回答。

解答

答案

練習

快速檢查

為甚麼 Ax=0Ax = 0 不論 AA 是甚麼,都至少有一個解?

x 看成列向量來回答。

解答

引導解答

快速檢查

點解有時 AB 有定義,但 BA 卻冇定義?

請用內側大小條件作答。

解答

引導解答

相關筆記

本節建立在 2.1 矩陣基礎 之上。 下一節可讀 3.2 轉置與特殊矩陣, 或直接跳到 5.1 可逆矩陣

本節掌握 checkpoint

要完成這一節 checkpoint,需要把每一題答對。 答對進度: 0%.

技能點: matrix-multiplication, dimensions

若 A 是 2×3 而 B 是 3×4,AB 的大小是甚麼?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

技能點: matrix-multiplication, row-by-column

設 A = [[1,2],[3,4]]、B = [[0,5],[1,-1]]。填空:AB 的 (1,2) 元素是 ____。

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

輸入格式提示: 請輸入一個純量。

技能點: identity-matrix, matrix-multiplication

哪一項最能描述單位矩陣的作用?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

本單元重點詞彙