把行变换记录成一个矩阵
初等行变换最初是矩阵上的操作步骤:交换两行、把一行乘以非零标量、把一行的
倍数加到另一行。在增广矩阵上,只有把操作施加到受影响的整行——包括增广
线右边的常数项——才是在等价地改写方程。此时操作可以逆转,因而保留原方程组
的解集。
但同一件事还有一个更有结构的读法:每一个初等行变换,都等同于左乘某个特别
的方阵。这个观点很重要,因为它把一串初等行变换转成普通的矩阵等式。之后讨论
行化简、可逆性、秩、行列式和基底时,这正是程序性操作和代数结构之间的桥。
这个结构观点也回答一个实际问题:若同一个行变换要同时作用于许多列,怎样只
记录一次规则,而不逐项重做?单位矩阵恰好提供这种编码。它的每一行会记录新行
由哪些旧行组成;随后,矩阵乘法便把这套规则同时施加到相容矩阵的每一列。
从单位矩阵建立初等矩阵
假设一个初等行变换 ρ 作用于有 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 行变换、乘积与可逆性
中使用的行化简代数观点。