把行變換記錄成一個矩陣
初等行變換最初是矩陣上的操作步驟:交換兩行、把一行乘以非零純量、把一行的
倍數加到另一行。在增廣矩陣上,只有把操作施加到受影響的整行——包括增廣
線右邊的常數項——才是在等價地改寫方程。此時操作可以逆轉,因而保留原方程組
的解集。
但同一件事還有一個更有結構的讀法:每一個初等行變換,都等同於左乘某個特別
的方陣。這個觀點很重要,因為它把一串初等行變換轉成普通的矩陣等式。之後討論
行化簡、可逆性、秩、行列式和基底時,這正是程序性操作和代數結構之間的橋。
這個結構觀點亦回答一個實際問題:若同一個行變換要同時作用於許多列,怎樣只
記錄一次規則,而不逐項重做?單位矩陣恰好提供這種編碼。它的每一行會記錄新行
由哪些舊行組成;隨後,矩陣乘法便把這套規則同時施加到相容矩陣的每一列。
由單位矩陣建立初等矩陣
假設一個初等行變換 ρ 作用於有 p 行的矩陣。先從單位矩陣 Ip
開始,對 Ip 做同一個初等行變換,所得矩陣記作 Eρ。
所有純量都屬於矩陣所採用的底域;特別地,每個非零倍數 c 在該域中都有倒數
1/c。
定義
初等行變換矩陣
與 p 行矩陣上的初等行變換 ρ 對應的初等行變換矩陣,就是把
ρ 作用在 Ip 上所得的 p×p 矩陣。
這種矩陣亦簡稱初等矩陣;較長的名稱可以明確指出它與指定行變換的關係。
換句話說,
Eρ=ρ(Ip).
這個定義有用,是因為以下定理。
定理
初等行變換等同於左乘矩陣
設 A 是任何有 p 行的矩陣,ρ 是一個初等行變換,並以
ρ(A) 表示把它作用於 A 後得到的矩陣。則
ρ(A)=EρA.所以,對 A 做這個初等行變換,等同於用同一個操作在 Ip 上得到的
初等行變換矩陣左乘 A。
這裏必須是左乘。初等行變換改變的是行,會把新行寫成舊行的線性組合;左乘正是把
A 的新行寫成舊行的線性組合。右乘則會混合列,不是同一件事。
維數亦說明了同一點。若 A 是 p×n 矩陣,則 Eρ 是
p×p 矩陣,所以 EρA 有定義,而且仍是 p×n。
這裏完全不要求 A 是方陣。相反,右乘矩陣必須是 n×n,它會作用於
n 個列。
為甚麼左乘會執行指定行變換
證明
對三類初等行變換逐行驗證
把任意 p×n 矩陣 A 的各行記作
a1,a2,…,ap,並以 ekT 表示 Ip 的第 k 行。
基本等式
ekTA=ak表示左乘矩陣的一行會選取 A 的相應行。現在逐類檢查。
-
對 Ri↔Rj,Eρ 的第 i 行是
ejT,第 j 行是 eiT,其餘第 k 行仍是
ekT。因此 EρA 恰好交換 A 的第 i,j 行。
-
對 Ri←cRi(c=0),Eρ 的第 i 行是
ceiT,其餘行不變。因此乘積的第 i 行為
(ceiT)A=cai,
而每個 k=i 的第 k 行仍為 ak。
-
對 Rj←Rj+cRi(i=j),Eρ 的第 j 行是
ejT+ceiT,其餘行不變,所以新的第 j 行為
(ejT+ceiT)A=aj+cai,
正是指定的行加法。
三類情形窮盡了初等行變換,因此對每個相容矩陣 A 都有
EρA=ρ(A)。這個證明沒有聲稱任意改動行的方式都對應一個初等矩陣;
ρ 必須是剛才檢查的三類操作之一。
作用於增廣矩陣
假設 Ax=b 由增廣矩陣 [A∣b] 表示。初等行變換必須作用於整個增廣
矩陣,不能只改其中一邊。相應的乘法等式是
Eρ[A∣b]=[EρA∣Eρb].
因此,係數和右端常數會接受完全相同的行組合。向量 x 滿足 Ax=b,若且唯若
它滿足 EρAx=Eρb:正向可把原等式左乘 Eρ,反向則施加逆向
初等行變換。這才是解集保持不變的嚴格理由。
若只改 A 而固定 b,或只改 b,一般會得到另一個方程組。增廣線只是視覺
上的分隔,不是行變換可以中途停止的邊界。
分別記錄替換、縮放與交換
三種初等行變換,對應三類初等行變換矩陣。
例題
行加法
對有三行的矩陣,考慮
ρ:R2←R2+3R1.把它作用在 I3 上:
I3=100010001⟼Eρ=130010001.因此,對任何有三行的矩陣 A,
EρA就是把 A 的第 2 行改成「第 2 行加上 3 倍第 1 行」後所得的矩陣。
例題
行倍乘
對
ρ:R3←−2R3,對應的初等行變換矩陣是
Eρ=10001000−2.行倍乘要求純量非零,這一點在矩陣上也看得出來:如果倍數是 0,所得矩陣會
出現零行,不能反向恢復。
例題
交換兩行
對
ρ:R1↔R3,我們得到
Eρ=001010100.左乘這個矩陣,就會交換任何相容矩陣的第 1 行和第 3 行。
逐步理解初等矩陣的左乘
上面三個例子其實都遵循同一條規則:先把初等行變換作用在單位矩陣上,再把所得
矩陣當成左乘矩陣使用。下面的圖解先整理這條規則,然後本頁才進入多個初等行變換
矩陣的乘積。
把行變換讀成左乘看清初等行變換如何變成左乘矩陣:先把操作作用在單位矩陣上,再用所得矩陣改變任何相容矩陣的行。
由 I 開始
對 ρ: R₂ ← R₂ + 3R₁,先把操作作用在 I₃ 上。
建立 Eρ
只有 I₃ 的第 2 行改變,得到第 2 行為 [3,1,0] 的 Eρ。
放在左邊相乘
同一個矩陣會對 A 執行該操作:ρ(A)=Eρ A。
讀新行
新的第 2 行等於舊第 2 行加三份舊第 1 行。
保留乘積次序
在 A₃=E₂E₁A₁ 中,E₁ 最靠近 A₁,因為 ρ₁ 最先作用。
反向得到逆矩陣
R₂ ← R₂ + 3R₁ 的反向操作是 R₂ ← R₂ − 3R₁,所以相應矩陣相乘得到 I。
行變換矩陣是把行變換先作用在單位矩陣上得到的。之後用它左乘任何相容矩陣,就會執行同一個行變換;反向行變換則給出逆矩陣。
比較行變換與矩陣乘積
用下面的步驟工具重溫一串行變換。每一步都要同時讀成:
在左邊乘上對應的初等矩陣。
邊讀邊試
跟著走完一條行化簡路徑
互動步驟器會帶你走完一條完整的消元路徑,逐步顯示行變換、正在處理的主元,以及每一步得到的矩陣。
要留意甚麼
第 1 列的第一行已經有方便的主元 1,所以暫時不用換行。
先由增廣矩陣開始。第一個主元的工作,是幫我們把它下面的元素清掉。
一串初等行變換就是一個矩陣乘積
真正的用途不只是表示一個初等步驟,而是把整串初等行變換寫成一個矩陣乘積。
定理
一串初等行變換的乘積表示
假設
A1ρ1A2ρ2A3ρ3⋯ρkAk+1.則
Ak+1=EρkEρk−1⋯Eρ2Eρ1A1.這裏每個 ρj 都必須是作用於同樣行數矩陣的初等行變換。這個乘積表示整串
操作,但乘積本身未必仍是單一個初等行變換矩陣。
這個公式中的次序很重要。第一個行變換最靠近 A1,因為它最先作用:
A2=Eρ1A1,A3=Eρ2A2=Eρ2Eρ1A1.
例題
合併兩個行變換
令
A=101020110.依次做
ρ1: R2←R2+R1,ρ2: R1←R1+2R2.對應的行變換矩陣是
Eρ1=110010001,Eρ2=100210001.兩個操作完成後,結果就是
Eρ2Eρ1A=310210001101020110=311420520.若不想直接相乘 Eρ2Eρ1,也可以把同一串行變換按同一次序作用在
I3 上,所得矩陣就是合併後的左乘矩陣。最後的數值結果亦確認:第二步使用的
是已經更新後的第 2 行。
讀懂較長的行變換乘積
把一長串初等行變換寫成矩陣乘積時,需要先分清三種對象:
- 正在被變換的矩陣 A1,A2,…,Ak+1;
- 每一步對應的初等行變換矩陣 H1,H2,…,Hk;
- 合併後的單一左乘矩陣 J=Hk⋯H2H1。
以下是一個四行矩陣的典型例子。假設
ρ1ρ2ρ3ρ4ρ5ρ6:R2←−21R2,:R1↔R2,:R3←R3−2R1,:R4←R4−2R3,:R1←R1−R3,:R1←R1−R2.
如果
A1ρ1A2ρ2A3ρ3A4ρ4A5ρ5A6ρ6A7,
那麼
A7=H6H5H4H3H2H1A1.
相應的行變換矩陣是
H1H3H5=10000−210000100001,=10−20010000100001,=10000100−10100001,H2H4H6=0100100000100001,=10000100001−20001,=1000−110000100001.
它們的乘積是
J=H6H5H4H3H2H1=−1100−2301−2−101−20001.
有效率的做法,是把六個行變換依次作用在 I4 上,而不是手動展開六個因子。
矩陣 J 記錄了整串步驟對行的總作用:
A7=JA1.
這個等式也可用來檢查乘積次序。如果把第一步放在最左邊,所得乘積會描述另一
串不同的操作。
思考檢查
在上面六步行變換中,若 K 是由 A7 反向回到 A1 的行變換矩陣乘積,J 和 K 應滿足甚麼等式?
解答 · 答案
矩陣 J 和 K 編碼的是每一個四行矩陣上的變換,不只是題中展示的
A1。對任意四行矩陣 X,先做正向步驟,再做反向步驟,會得到
K(JX)=X.取 X=I4,便有 KJ=I4。反過來,先做反向步驟,再做正向步驟,亦會恢復
任意四行矩陣 Y,所以 J(KY)=Y;取 Y=I4,便有 JK=I4。因此
KJ=I4JK=I4.換句話說,K=J−1。
反向行變換與逆矩陣
每個初等行變換都有反向操作:
- Rj←Rj+cRi 的反向操作是
Rj←Rj−cRi;
- Ri←cRi(其中 c=0)的反向操作是
Ri←(1/c)Ri;
- 交換兩行的反向操作仍然是同一次交換。
這給出一個精確的矩陣敘述。
定理
初等行變換矩陣都是可逆矩陣
每個初等行變換矩陣都是可逆的。它的逆矩陣,就是反向初等行變換所對應的
初等行變換矩陣。
證明
為甚麼反向矩陣是雙側逆矩陣
設 Eρ 表示初等行變換 ρ,而 Eρ−1 表示它的反向初等
操作。對每個有 p 行的矩陣 X,先做 ρ 再撤銷,都會恢復 X。由左乘
定理,
Eρ−1EρX=X.這個等式對每個這樣的 X 都成立;特別取 X=Ip,得到
Eρ−1Eρ=Ip。先做反向操作再做 ρ,同理得到
EρEρ−1=Ip。因此
Eρ−1=Eρ−1.具體來說,交換兩行的逆仍是同一次交換;乘以 c=0 的逆是乘以 1/c;
把第 i 行的 c 倍加到第 j 行,則由加上 −c 倍第 i 行來撤銷。
例如,若
E=130010001
表示 R2←R2+3R1,則
E−1=1−30010001
表示 R2←R2−3R1。
這就是初等行變換可逆的代數原因,也解釋了為甚麼行化簡和可逆矩陣有密切關係。
證明
先撤銷最後一步操作
設 E1,…,Ek 按時間順序編碼同一組 p 行矩陣上的操作,合併左乘矩陣就是 J=Ek⋯E1。每個 Ej−1 表示對應初等行變換的反向操作。要恢復輸入,首先必須撤銷 Ek,因為它是最後一次對行所作的改變;然後依次撤銷 Ek−1,…,E1。因此,反向鏈的合併矩陣為
K=E1−1E2−1⋯Ek−1.這裏必須區分兩種次序:反向操作的時間順序從 Ek−1 開始;寫成乘積時,最先作用的因子卻放在最靠近待恢復矩陣的位置。以三步為例,由結合律可得
KJ=E1−1E2−1(E3−1E3)E2E1=E1−1(E2−1E2)E1=Ip.另一個乘積 JK 則從相鄰的 E1E1−1 開始消去,最後同樣得到 Ip。任意有限鏈都可這樣逐對消去。整個論證沒有交換因子,也不要求被變換的矩陣本身是方陣。
把這個讀法用於前面的兩步例子:合併矩陣是 Eρ2Eρ1,所以逆矩陣是 Eρ1−1Eρ2−1。從最終矩陣開始,先從第一行減去目前第二行的兩倍,第一行便恢復為 [1 0 1];再從第二行減去剛恢復的第一行,第二行便恢復為 [0 2 1]。撤銷操作是在逐個恢復中間狀態,乘積次序也就隨之確定,無須另背一個口訣。
為甚麼這個觀點之後會有用?
如果 B 與 A 行等價,則存在有限多個初等行變換把 A 變成 B。因此存在
某個初等行變換矩陣的乘積 E,使得
B=EA.
由於每個初等行變換矩陣都可逆,乘積 E 也可逆。因此行等價既可以用初等操作
步驟來描述,也可以用左邊乘上一個可逆矩陣的等式來描述。反向敘述則要小心:
任意可逆左乘矩陣未必本身只代表一步初等操作。
這個觀點會在多個地方使用:
- 一個方陣若行等價於 In,它就是若干初等行變換矩陣的乘積;
- 初等行變換保留齊次方程組的解資訊,因為它等同於左乘可逆矩陣;
- 行列式關於初等行變換的規則,可以透過初等矩陣來表述;
- 秩和基底的論證可以使用行化簡,同時清楚知道原矩陣的列本身通常已被改變。
常見錯誤
常見錯誤
不要乘錯方向
初等行變換由左乘表示。右乘會混合列,而不是混合行。
常見錯誤
不要把乘積次序反過來
如果 ρ1 先於 ρ2 作用,合併矩陣是
Eρ2Eρ1,不是 Eρ1Eρ2。
常見錯誤
不能把某一行乘以零
行倍乘要求純量非零。把一行乘以 0 不能反向恢復,也不會產生可逆的
初等行變換矩陣。
常見錯誤
只恢復一個矩陣不足以證明互逆
從某個特定矩陣 A 滿足 KJA=A,一般不能推出 KJ=I,因為 A 的各列
未必能檢測所有可能輸入。應證明複合行變換會恢復每個相容矩陣,或直接把它們
作用於 Ip。所以上面對 KJ=JK=Ip 的論證先使用任意 p 行矩陣,再代入
單位矩陣。
按作用次序理解乘積
要編碼有 p 行矩陣上的一個初等行變換,只需把該操作施加到 Ip。所得
初等矩陣 Eρ 會以左乘方式作用於每個相容矩陣;對交換、非零倍乘和行加法
三類情形逐行檢查,就得到 EρA=ρ(A)。若對象是增廣矩陣,操作必須
橫跨整行,包括右端常數,方程組才會保持完全相同的解集。
依次施加 ρ1,…,ρk 時,乘積按作用次序寫成
Eρk⋯Eρ1。每個因子都可逆,因為反向初等操作給出它的雙側
逆矩陣。因此,有限的行化簡既可以看成逐步操作,亦可以看成一次可逆的左乘;
各個因子則繼續記錄每一步的準確內容。
快速檢查
思考檢查
對有三行的矩陣,E=105010001 表示哪個行變換?
解答 · 答案
只有第 3 行被改變,而且它變成「第 3 行加上 5 倍第 1 行」。因此
R3←R3+5R1.
思考檢查
R2←R2−4R1 的反向行變換是甚麼?
解答 · 答案
反向操作是
R2←R2+4R1.
練習
思考檢查
寫出有三行矩陣上 R1↔R2 的行變換矩陣。
解答 · 引導解答
交換 I3 的前兩行,得到
010100001.這就是左乘時交換第 1 行和第 2 行的矩陣。
思考檢查
假設 B 由 A 經以下兩步得到:先做 R2←R2+R1,再做 R3←2R3。把 B 寫成涉及 A 的矩陣乘積。
解答 · 引導解答
令 E1 是 R2←R2+R1 的行變換矩陣,令 E2 是
R3←2R3 的行變換矩陣。因為 E1 先作用,而 E2 後作用,
B=E2E1A.
思考檢查
令 β1,β2=0。假設五行矩陣 A 經以下行變換鏈得到 B:先做 R3←R3+α1R1,再做 R2←β1R2,再做 R1↔R4,再做 R3←R3+α2R2,最後做 R1←β2R1。寫出單一矩陣 G,使得 B=GA。
把同一串操作作用在 I5 上,並記住後面的操作使用的是當時的行,不是原來的行。
解答 · 引導解答
把這些操作作用在 I5 上,得到
G=00α1100β1α2β10000100β2000000001.重點是 α2β1 這一項。操作
R3←R3+α2R2 發生在第 2 行已經被縮放成
β1R2 之後,所以來自原來第 2 行的貢獻是
α2β1R2。
思考檢查
沿用上一題的矩陣 G,假設 D=GC。寫出矩陣 H,使得 C=HD。
解答 · 引導解答
反向鏈是
GR1←β21R1R3←R3−α2R2R1↔R4R2←β11R2R3←R3−α1R1I5.因此
H=000β2100β11−α2000010010−α10000001.這就是 G−1,所以 D=GC 會推出 C=HD。
相關筆記
這一頁建立在
2.2 增廣矩陣與行變換
和
3.2 矩陣乘法、單位矩陣與線性方程組
之上。接著可讀
3.6 分塊矩陣,完成第三章。
它也準備了
5.1 可逆矩陣
和
7.2 行變換、乘積與可逆性
中使用的行化簡代數觀點。