syntax.garden

09 矩阵

矩阵乘法为什么那样定义 · 四种读法 · 复合即相乘

矩阵

这讲讲什么:怎么把线性映射记成一堆数;矩阵加法、标量乘法、乘法分别该怎样定义;为什么矩阵乘法偏偏是「行乘列」;以及矩阵的秩在加法与乘法下怎么变(Sylvester、Frobenius 两条不等式)
前置:线性映射(07);基与维数(05–06)
一句话:矩阵是线性映射在选定两组基下的坐标记录——矩阵乘法之所以长成那样,是因为它必须记录复合映射。


一、为什么需要它

从前面几讲已经知道一件非常省事的事:线性映射 T:V→WT:V\to W 有无穷多个输入,但只要知道它把一组基送到哪里,整个映射就定死了。基有 nn 个向量,每个的像都由 WW 的基唯一地表示成 mm 个数——于是记录一个线性映射,只需要 mnmn 个数。

剩下的问题只有一个:这 mnmn 个数怎么摆、怎么用?

摆法就是矩阵:一列装一个基向量的像,一共 nn 列;一行对应到达空间的一个基向量,一共 mm 行。

如果只是想算「某个向量的像」,把坐标取出来做线性组合就够了,不需要更大的机器。真正的麻烦在两个映射叠在一起:先做 TT,再做 SS,得到的复合映射 STST 的矩阵是什么?

这个问题的答案,就是矩阵乘法那条看起来古怪的规则。它不是谁拍脑袋规定的,而是被复合映射逼出来的唯一选择——这是本讲最核心的一句话,第三节会用完整推导兑现它。

读完这一讲你应该能回答:

  1. 给定 TT 和两组基,M(T)\mathcal{M}(T) 的第 kk 列是什么?第 jj 行第 kk 列的数是谁的系数?
  2. 为什么矩阵乘法规定为「行乘列」,而不是对应位置相乘?
  3. 为什么 M(ST)=M(S)M(T)\mathcal{M}(ST)=\mathcal{M}(S)\mathcal{M}(T) 里,先作用的映射写在右边?
  4. 为什么矩阵乘法满足结合律,却不满足交换律?两个原因各是什么?
  5. 已知 rank⁡A\operatorname{rank}A 与 rank⁡B\operatorname{rank}B,能对 rank⁡(AB)\operatorname{rank}(AB) 说些什么?为什么乘法既有上界又有下界?

二、定义与最小例子

矩阵:把数排成矩形

矩阵:设 m,nm,n 是非负整数,一个 m×nm\times n 矩阵是由 F\mathbb{F} 中元素排成的 mm 行 nn 列的矩形阵列:

A=(A1,1⋯A1,n⋮⋮Am,1⋯Am,n)A=\begin{pmatrix}A_{1,1}&\cdots&A_{1,n}\\\vdots&&\vdots\\A_{m,1}&\cdots&A_{m,n}\end{pmatrix}

记号 Aj,kA_{j,k} 表示 AA 的第 jj 行第 kk 列中的元素。

下标顺序是最容易翻车的一处

第一个下标永远是行,第二个永远是列:(j,k)(j,k) =(行,列)。
中文「行列」两字的先后与下标顺序一致;英文 row(行)在 column(列)之前,字母序也一致。
两个记忆钩子指向同一个答案,就别再记反了。

最小例子:

A=(845−3i19)A=\begin{pmatrix}8&4&5\\-3i&1&9\end{pmatrix}

这是 2×32\times 3 矩阵。A1,3=5A_{1,3}=5,A2,1=−3iA_{2,1}=-3i,A2,3=9A_{2,3}=9。注意那个 −3i-3i:元素来自数域 F\mathbb{F},取 C\mathbb{C} 时本来就是复数,不必觉得别扭。

元素全是 00 的 m×nm\times n 矩阵叫零矩阵,也记作 00。

线性映射的矩阵

现在正式回答「怎么摆」。

设 T∈L(V,W)T\in\mathcal{L}(V,W),v1,…,vnv_1,\dots,v_n 是 VV 的基,w1,…,wmw_1,\dots,w_m 是 WW 的基。每个 TvkTv_k 都是 WW 中的向量,因此能唯一地写成 w1,…,wmw_1,\dots,w_m 的线性组合:

Tvk=A1,kw1+⋯+Am,kwmTv_k=A_{1,k}w_1+\cdots+A_{m,k}w_m

TT 关于这两组基的矩阵记作 M(T)\mathcal{M}(T),就是把上面这些系数 Aj,kA_{j,k} 按「第 kk 列装 TvkTv_k 的系数」摆成的 m×nm\times n 矩阵。

若从上下文看不出用的是哪两组基,就写全:M(T,(v1,…,vn),(w1,…,wm))\mathcal{M}\big(T,(v_1,\dots,v_n),(w_1,\dots,w_m)\big)。

把这一行式子逐字读一遍,得到本讲最该背下来的一句话:

M(T)\mathcal{M}(T) 的第 kk 列,就是 TvkTv_k 关于 WW 的基 w1,…,wmw_1,\dots,w_m 的坐标。

换句话说:列对应定义域的基向量,行对应到达空间的基向量。 后面所有「矩阵摆错了」「怎么转置了」的事故,根源都是这句话没记住。

一张不用背的备忘图

在矩阵上方横着写 v1 ⋯ vnv_1\ \cdots\ v_n,在左侧竖着写 w1,…,wmw_1,\dots,w_m。
上面一行是输入端的基,左边一列是输出端的基。
一旦忘了第 kk 列是什么,把这两行字补回去,答案立刻自己出来。

例 1:从 F2\mathbb{F}^2 到 F3\mathbb{F}^3

设 T∈L(F2,F3)T\in\mathcal{L}(\mathbb{F}^2,\mathbb{F}^3) 由

T(x,y)=(x+3y, 2x+5y, 7x+9y)T(x,y)=(x+3y,\ 2x+5y,\ 7x+9y)

定义。两端都取标准基(第 kk 个基向量是「第 kk 个坐标是 11、其余坐标是 00」的那个)。逐个算基向量的像:

T(1,0)=(1,2,7),T(0,1)=(3,5,9)T(1,0)=(1,2,7),\qquad T(0,1)=(3,5,9)

按定义,第 1 列装 T(1,0)T(1,0) 的坐标 (1,2,7)(1,2,7),第 2 列装 T(0,1)T(0,1) 的坐标 (3,5,9)(3,5,9):

M(T)=(132579)\mathcal{M}(T)=\begin{pmatrix}1&3\\2&5\\7&9\end{pmatrix}

立刻验一次:用矩阵算 T(2,1)T(2,1)。因为 (2,1)=2(1,0)+1(0,1)(2,1)=2(1,0)+1(0,1),所以

T(2,1)=2(1,2,7)+1(3,5,9)=(5,9,23)T(2,1)=2(1,2,7)+1(3,5,9)=(5,9,23)

直接代原式核对:(2+3, 4+5, 14+9)=(5,9,23)(2+3,\ 4+5,\ 14+9)=(5,9,23)。✓

这次验算其实泄漏了一个关键事实:矩阵的每一列就是对应基向量的像,所以「算 TT 在某个向量上的值」就等于「拿那个向量的坐标去组合矩阵的列」。第三节会把它写成正式结论。

例 2:微分映射

设 D∈L(P3(R),P2(R))D\in\mathcal{L}\big(\mathcal{P}_3(\mathbb{R}),\mathcal{P}_2(\mathbb{R})\big) 是求导映射:Dp=p′Dp=p'。这里 P3(R)\mathcal{P}_3(\mathbb{R}) 指次数不超过 33 的实系数多项式全体,P2(R)\mathcal{P}_2(\mathbb{R}) 同理。

取 P3(R)\mathcal{P}_3(\mathbb{R}) 的标准基 1,x,x2,x31,x,x^2,x^3,P2(R)\mathcal{P}_2(\mathbb{R}) 的标准基 1,x,x21,x,x^2。逐个求像并写成后者的组合:

D(1)=0⋅1+0⋅x+0⋅x2D(1)=0\cdot 1+0\cdot x+0\cdot x^2

D(x)=1⋅1+0⋅x+0⋅x2D(x)=1\cdot 1+0\cdot x+0\cdot x^2

D(x2)=0⋅1+2⋅x+0⋅x2D(x^2)=0\cdot 1+2\cdot x+0\cdot x^2

D(x3)=0⋅1+0⋅x+3⋅x2D(x^3)=0\cdot 1+0\cdot x+3\cdot x^2

四列并起来,得到 3×43\times 4 矩阵:

M(D)=(010000200003)\mathcal{M}(D)=\begin{pmatrix}0&1&0&0\\0&0&2&0\\0&0&0&3\end{pmatrix}

看这个矩阵的形状:1,2,31,2,3 依次向右上错一位。求导在这种基下就是"沿斜线搬家",这比背公式更能说明它是线性映射。

两个尺寸规律

情形 矩阵大小
TT 从 nn 维空间到 mm 维空间 m×nm\times n
TT 从 Fn\mathbb{F}^n 到 Fm\mathbb{F}^m(两端默认标准基) m×nm\times n
一句话:行数 = 到达,列数 = 出发

只要这句话在手,就不会把 3×23\times 2 写成 2×32\times 3。
反过来自查:列数必须等于定义域的维数,否则连「有几列」都对不上定义。

反过来:矩阵也能还原映射

给定 TT 与两组基得到矩阵;反过来,给定一个 m×nm\times n 矩阵与两组基,也能唯一确定一个线性映射:先规定 TvkTv_k 为「第 kk 列的系数配 w1,…,wmw_1,\dots,w_m」组合出的那个向量,再按线性把定义扩展到整个 VV。

这就是矩阵值得被当成独立对象研究的原因:在固定基下,矩阵与线性映射一一对应。


三、几个必须自己算一遍的结论

3.1 加法与标量乘法:先问映射,再定矩阵

两个问题,问法要一致。

问题一:M(S+T)\mathcal{M}(S+T) 应该等于什么?先把 (S+T)vk(S+T)v_k 按定义拆开:

(S+T)vk=Svk+Tvk=∑j=1mAj,kwj+∑j=1mBj,kwj=∑j=1m(Aj,k+Bj,k)wj(S+T)v_k=Sv_k+Tv_k=\sum_{j=1}^{m}A_{j,k}w_j+\sum_{j=1}^{m}B_{j,k}w_j=\sum_{j=1}^{m}\big(A_{j,k}+B_{j,k}\big)w_j

其中 A=M(S)A=\mathcal{M}(S)、B=M(T)B=\mathcal{M}(T)。最后一步把系数相加,凭什么可以?因为 w1,…,wmw_1,\dots,w_m 是基,WW 中每个向量的坐标是唯一的。既然 (S+T)vk(S+T)v_k 的第 jj 个系数只能等于 Aj,k+Bj,kA_{j,k}+B_{j,k},矩阵加法就只能是逐元素相加:

(A1,1⋯A1,n⋮⋮Am,1⋯Am,n)+(C1,1⋯C1,n⋮⋮Cm,1⋯Cm,n)=(A1,1+C1,1⋯A1,n+C1,n⋮⋮Am,1+Cm,1⋯Am,n+Cm,n)\begin{pmatrix}A_{1,1}&\cdots&A_{1,n}\\\vdots&&\vdots\\A_{m,1}&\cdots&A_{m,n}\end{pmatrix}+\begin{pmatrix}C_{1,1}&\cdots&C_{1,n}\\\vdots&&\vdots\\C_{m,1}&\cdots&C_{m,n}\end{pmatrix}=\begin{pmatrix}A_{1,1}+C_{1,1}&\cdots&A_{1,n}+C_{1,n}\\\vdots&&\vdots\\A_{m,1}+C_{m,1}&\cdots&A_{m,n}+C_{m,n}\end{pmatrix}

问题二:M(λT)\mathcal{M}(\lambda T) 应该等于什么?同样:(λT)vk=λ(Tvk)=∑j(λAj,k)wj(\lambda T)v_k=\lambda(Tv_k)=\sum_j(\lambda A_{j,k})w_j,所以标量乘法只能是每个元素乘 λ\lambda。

两条结论合起来:

M(S+T)=M(S)+M(T),M(λT)=λM(T)\mathcal{M}(S+T)=\mathcal{M}(S)+\mathcal{M}(T),\qquad \mathcal{M}(\lambda T)=\lambda\mathcal{M}(T)

请注意这套方法论

我们没有「规定」矩阵加法,而是先问映射层面该发生什么,再倒推出矩阵层面唯一可行的定义。
这不是巧合,是整讲的统一套路——3.3 推导矩阵乘法时会把它用到极致。
矩阵的一切运算,都是为了让映射的运算能被记录下来。

手算一例:

2(31−15)+(4216)=(62−210)+(4216)=(104−116)2\begin{pmatrix}3&1\\-1&5\end{pmatrix}+\begin{pmatrix}4&2\\1&6\end{pmatrix}=\begin{pmatrix}6&2\\-2&10\end{pmatrix}+\begin{pmatrix}4&2\\1&6\end{pmatrix}=\begin{pmatrix}10&4\\-1&16\end{pmatrix}

3.2 Fm,n\mathbb{F}^{m,n}:矩阵自己也构成向量空间

记 Fm,n\mathbb{F}^{m,n} 为元素全在 F\mathbb{F} 中的所有 m×nm\times n 矩阵组成的集合(m,nm,n 为正整数)。配上刚才的加法与标量乘法,它满足向量空间的全部性质——这不是巧合,而是因为「逐元素运算」相当于把 mnmn 个位置各自变成一份 F\mathbb{F},互不干扰。

它的加法零元就是零矩阵:所有元素都等于 00 的那个 m×nm\times n 矩阵。

维数是多少?看「只有一个位置是 11、其余都是 00」的那些矩阵。以 2×22\times 2 为例,共 4 个:

E1,1=(1000),E1,2=(0100),E2,1=(0010),E2,2=(0001)E_{1,1}=\begin{pmatrix}1&0\\0&0\end{pmatrix},\quad E_{1,2}=\begin{pmatrix}0&1\\0&0\end{pmatrix},\quad E_{2,1}=\begin{pmatrix}0&0\\1&0\end{pmatrix},\quad E_{2,2}=\begin{pmatrix}0&0\\0&1\end{pmatrix}

任何 2×22\times 2 矩阵都能唯一地写成它们的组合:

(abcd)=aE1,1+bE1,2+cE2,1+dE2,2\begin{pmatrix}a&b\\c&d\end{pmatrix}=aE_{1,1}+bE_{1,2}+cE_{2,1}+dE_{2,2}

组合系数就是元素本身,所以写法唯一、四个矩阵线性无关——它们构成 F2,2\mathbb{F}^{2,2} 的一组基,dim⁡F2,2=4\dim\mathbb{F}^{2,2}=4。推广到一般:

dim⁡Fm,n=mn\dim\mathbb{F}^{m,n}=mn

理由一句话:mnmn 个位置,每个位置提供一个独立的自由度。

「矩阵也是向量」是字面意思

在这套理论里,Fm,n\mathbb{F}^{m,n} 就是一个 mnmn 维向量空间,于是「矩阵线性无关」「矩阵的基」「线性映射空间的维数」这些话全都有意义。
后面讲可逆与同构时要用到的 dim⁡L(V,W)=(dim⁡V)(dim⁡W)\dim\mathcal{L}(V,W)=(\dim V)(\dim W),本质就是把线性映射与矩阵对上号。

3.3 矩阵乘法:唯一能让 M(ST)=M(S)M(T)\mathcal{M}(ST)=\mathcal{M}(S)\mathcal{M}(T) 成立的定义

这是本讲的核心,请慢慢读。

动机。 取 T:U→VT:U\to V、S:V→WS:V\to W,并固定三组基:UU 的 u1,…,upu_1,\dots,u_p,VV 的 v1,…,vnv_1,\dots,v_n,WW 的 w1,…,wmw_1,\dots,w_m。记

B=M(T)(n×p),A=M(S)(m×n)B=\mathcal{M}(T)\quad(n\times p),\qquad A=\mathcal{M}(S)\quad(m\times n)

复合映射 ST:U→WST:U\to W 是线性的,它当然也有矩阵。问题:M(ST)\mathcal{M}(ST) 长什么样?

注意此刻「两个矩阵相乘」还没有定义,所以不能直接问「ABAB 等不等于 M(ST)\mathcal{M}(ST)」。正确的问法是:先把 M(ST)\mathcal{M}(ST) 老老实实算出来,再照着它的样子去定义矩阵乘法。顺序不能颠倒。

算。 复合映射由它对基向量的作用定死,所以逐个 uku_k 算:

(ST)uk=S(Tuk)(ST)u_k=S(Tu_k)

第一步,把 TukTu_k 用 VV 的基展开——这里用上的正是 M(T)\mathcal{M}(T) 的第 kk 列:

Tuk=∑r=1nBr,kvrTu_k=\sum_{r=1}^{n}B_{r,k}v_r

第二步,用 SS 的线性把 SS 推进求和号:

S(Tuk)=S(∑r=1nBr,kvr)=∑r=1nBr,k SvrS(Tu_k)=S\left(\sum_{r=1}^{n}B_{r,k}v_r\right)=\sum_{r=1}^{n}B_{r,k}\,Sv_r

第三步,把每个 SvrSv_r 用 WW 的基展开——这里用上的正是 M(S)\mathcal{M}(S) 的第 rr 列:

Svr=∑j=1mAj,rwjSv_r=\sum_{j=1}^{m}A_{j,r}w_j

代回去:

S(Tuk)=∑r=1nBr,k∑j=1mAj,rwjS(Tu_k)=\sum_{r=1}^{n}B_{r,k}\sum_{j=1}^{m}A_{j,r}w_j

第四步,交换求和顺序,把 wjw_j 提到外面:

S(Tuk)=∑j=1m(∑r=1nAj,rBr,k)wjS(Tu_k)=\sum_{j=1}^{m}\left(\sum_{r=1}^{n}A_{j,r}B_{r,k}\right)w_j

读结果。 这个式子说的是:(ST)uk(ST)u_k 关于 w1,…,wmw_1,\dots,w_m 的第 jj 个坐标,等于 ∑r=1nAj,rBr,k\sum_{r=1}^{n}A_{j,r}B_{r,k}。而按矩阵的定义,M(ST)\mathcal{M}(ST) 是 m×pm\times p 矩阵,它的第 jj 行第 kk 列元素正是这个数。

于是我们别无选择:要让矩阵真的记录住复合映射,两矩阵之积只能定义成

(AB)j,k=∑r=1nAj,rBr,k(AB)_{j,k}=\sum_{r=1}^{n}A_{j,r}B_{r,k}

使用条件:AA 是 m×nm\times n、BB 是 n×pn\times p。中间那个 nn 必须对上——第一个矩阵的列数等于第二个矩阵的行数。

为什么必须对上

中间那个 nn 就是空间 VV 的维数:BB 的输出落在 VV 里(写成 v1,…,vnv_1,\dots,v_n 的组合),AA 的输入也要求来自 VV(把各个 vrv_r 送出去)。
两边用的是同一个 VV 的同一组基,所以必须相等;不相等就说明这两个映射根本接不起来,乘积当然没有定义。

这个定义古怪在哪里,又为什么其实不古怪。 若改成「对应位置相乘」Aj,kBj,kA_{j,k}B_{j,k},表面上自然得多,但它记录不了复合:那样定义的话,M(ST)\mathcal{M}(ST) 的第 jj 行第 kk 列只会牵扯到 Aj,kA_{j,k} 与 Bj,kB_{j,k},而复合映射第 jj 个输出坐标根本用不到 BB 的第 jj 行——它需要的是中间空间 VV 的全部坐标。所以下标 rr 必须被求和消掉。

求和消 rr,不是风格选择,是复合映射的结构决定的。

3.4 手算:3×23\times 2 乘 2×42\times 4

(123456)(6543210−1)=(1074126191254231209)\begin{pmatrix}1&2\\3&4\\5&6\end{pmatrix}\begin{pmatrix}6&5&4&3\\2&1&0&-1\end{pmatrix}=\begin{pmatrix}10&7&4&1\\26&19&12&5\\42&31&20&9\end{pmatrix}

自己动手核两处:

  • 结果的第 1 行第 1 列 =1⋅6+2⋅2=10=1\cdot 6+2\cdot 2=10;
  • 结果的第 2 行第 1 列 =3⋅6+4⋅2=26=3\cdot 6+4\cdot 2=26。

行数 33 跟着左边走,列数 44 跟着右边走,中间那个 22 被吃掉了。(这个 2626 一会儿还有用。)

3.5 同一个乘积的四种读法

它们说的是同一件事,但各自擅长回答不同的问题。

读法一:行乘列。 这就是定义本身。先约定记号:Aj,⋅A_{j,\cdot} 表示 AA 的第 jj 行(看作一个 1×n1\times n 矩阵),A⋅,kA_{\cdot,k} 表示 AA 的第 kk 列(看作一个 m×1m\times 1 矩阵)。于是

(AB)j,k=Aj,⋅B⋅,k=Aj,1B1,k+⋯+Aj,nBn,k(AB)_{j,k}=A_{j,\cdot}B_{\cdot,k}=A_{j,1}B_{1,k}+\cdots+A_{j,n}B_{n,k}

即「把 AA 的第 jj 行横过来、BB 的第 kk 列竖起来,对应位置相乘再相加」。手算时用这条最快。

顺带一个通行约定:1×11\times 1 矩阵常与它里面那个数等同起来。例如

(34)(62)=3⋅6+4⋅2=26\begin{pmatrix}3&4\end{pmatrix}\begin{pmatrix}6\\2\end{pmatrix}=3\cdot 6+4\cdot 2=26

习惯上就把右边那个 1×11\times 1 矩阵写成 2626。3.4 里第二行第一列那个 2626,正是左边矩阵的第 2 行 (34)\begin{pmatrix}3&4\end{pmatrix} 乘以右边矩阵的第 1 列 (62)\begin{pmatrix}6\\2\end{pmatrix}。

读法二:每一列 = 右边那一列的像。 对每个 kk:

(AB)⋅,k=A B⋅,k(AB)_{\cdot,k}=A\,B_{\cdot,k}

ABAB 的第 kk 列,等于「用 AA 去乘 BB 的第 kk 列」。这条最好记,也最有几何味道。

读法三:每一列 = AA 各列的线性组合。 把 n×1n\times 1 矩阵 bb 的元素记作 b1,…,bnb_1,\dots,b_n,则

Ab=b1A⋅,1+⋯+bnA⋅,nAb=b_1A_{\cdot,1}+\cdots+b_nA_{\cdot,n}

AbAb 是 AA 各列的线性组合,系数来自 bb。 手算一例:

(123456)(51)=(71931)=5(135)+1(246)\begin{pmatrix}1&2\\3&4\\5&6\end{pmatrix}\begin{pmatrix}5\\1\end{pmatrix}=\begin{pmatrix}7\\19\\31\end{pmatrix}=5\begin{pmatrix}1\\3\\5\end{pmatrix}+1\begin{pmatrix}2\\4\\6\end{pmatrix}

把读法二与读法三串起来,得到一句极有用的话:

ABAB 的每一列,都是 AA 各列的线性组合,系数由 BB 的对应列给出。

读法四:每一行 = BB 各行的线性组合。 对称地,系数来自 AA 的第 jj 行:

Aj,⋅B=Aj,1B1,⋅+⋯+Aj,nBn,⋅A_{j,\cdot}B=A_{j,1}B_{1,\cdot}+\cdots+A_{j,n}B_{n,\cdot}

读法二、三管列,读法四管行。 想证明与「行」或「列」有关的性质时,这两套读法比硬展开逐元素省力得多。

3.6 三条性质,以及它们各自的原因

(1)结合律成立:

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

前提是三个矩阵大小能接上(AA 的列数 == BB 的行数,BB 的列数 == CC 的行数)。

原因不在堆 ∑\sum,而在映射上。要串起三个映射,这里改用三个字母,依次是 R:U→VR:U\to V、T:V→WT:V\to W、S:W→XS:W\to X(含义与前文相同,只是字母换了一遍)。取与它们相配的基,记 A=M(S)A=\mathcal{M}(S)、B=M(T)B=\mathcal{M}(T)、C=M(R)C=\mathcal{M}(R)。由「乘积矩阵记录复合映射」:

(AB)C=M(S)M(T)M(R)=M(ST)M(R)=M((ST)R)(AB)C=\mathcal{M}(S)\mathcal{M}(T)\mathcal{M}(R)=\mathcal{M}(ST)\mathcal{M}(R)=\mathcal{M}\big((ST)R\big)

A(BC)=M(S)M(TR)=M(S(TR))A(BC)=\mathcal{M}(S)\mathcal{M}(TR)=\mathcal{M}\big(S(TR)\big)

而映射的复合天然满足 (ST)R=S(TR)(ST)R=S(TR)——两边都把 uu 送到 S(T(Ru))S(T(Ru)),逐字一样。所以两个矩阵相等。

这个证明值得回味

全程只用了一件事:矩阵乘法记录映射复合。一个元素都没展开。
数学家里有人说过大意如此的话:抛开矩阵,一个原本用矩阵做的证明可以缩短一半。
这里的体验恰好相反——先在映射层面找到理由,矩阵层面的等式就是白送的。

(2)交换律不成立:ABAB 与 BABA 一般不等,有时甚至只有一个有定义。

原因同样在映射层面:复合映射不交换。举个一眼看穿的例子,取两个 R2→R2\mathbb{R}^2\to\mathbb{R}^2 的映射:

  • PP:向 xx 轴投影,M(P)=(1000)\mathcal{M}(P)=\begin{pmatrix}1&0\\0&0\end{pmatrix};
  • RR:逆时针转 90∘90^\circ,M(R)=(0−110)\mathcal{M}(R)=\begin{pmatrix}0&-1\\1&0\end{pmatrix}。

先旋转再投影,与先投影再旋转,结果完全不同:

M(P)M(R)=(0−100),M(R)M(P)=(0010)\mathcal{M}(P)\mathcal{M}(R)=\begin{pmatrix}0&-1\\0&0\end{pmatrix},\qquad \mathcal{M}(R)\mathcal{M}(P)=\begin{pmatrix}0&0\\1&0\end{pmatrix}

几何上也一目了然:M(R)M(P)\mathcal{M}(R)\mathcal{M}(P) 把 (1,0)(1,0) 送到 (0,1)(0,1),而 M(P)M(R)\mathcal{M}(P)\mathcal{M}(R) 把 (1,0)(1,0) 送到原点(先转到 (0,1)(0,1),再投影到 xx 轴就没了)。

所以「矩阵乘法不交换」根本不是矩阵的毛病,而是「先做一件事、再做另一件事」本来就不可交换。

(3)分配律成立:

A(B+C)=AB+AC,(D+E)F=DF+EFA(B+C)=AB+AC,\qquad (D+E)F=DF+EF

原因还是映射:S(T+R)=ST+SRS(T+R)=ST+SR,因为 SS 是线性的,S(Tu+Ru)=S(Tu)+S(Ru)S(Tu+Ru)=S(Tu)+S(Ru)。把它翻译成矩阵就是第一条;第二条同理。

大小要对得上

分配律不是无条件的。A(B+C)A(B+C) 有意义,前提是 B,CB,C 与 AA 的大小配套;
而 AB+ACAB+AC 有意义则是自动的(两个乘积大小相同)。
写这类式子前先数一遍行列,能省掉大量「明明会算却做错」的情况。

3.7 一句话总结矩阵乘法

矩阵乘法 = 用右边矩阵提供系数,用左边矩阵提供向量,做一批线性组合。

  • 右边矩阵的每一列是一份系数,去组合左边矩阵的各列(读法二 + 三);
  • 左边矩阵的每一行是一份系数,去组合右边矩阵的各行(读法四)。

而「为什么是这个样子」,答案永远只有一个:它是复合映射 STST 的坐标记录。

3.8 秩:一个数,两条现成推论

前面七条都在回答「矩阵怎么摆、怎么乘」。从这里起换一个问题:加法与乘法前后,矩阵携带的信息量变了多少? 量它的数是秩。

设 AA 是 m×nm\times n 矩阵,把它看成映射 TA:Fn,1→Fm,1T_A:\mathbb{F}^{n,1}\to\mathbb{F}^{m,1},x↦Axx\mapsto Ax。由读法三,TAT_A 的值域正是 AA 各列张成的子空间,于是定义

rank⁡A:=dim⁡range⁡TA=dim⁡⟨A⋅,1,…,A⋅,n⟩\operatorname{rank}A:=\dim\operatorname{range}T_A=\dim\langle A_{\cdot,1},\dots,A_{\cdot,n}\rangle

行方向也有一个「行秩」,它与列秩恒相等(证明见 12 讲),所以两者统称秩。

秩不是新机器,是 08 讲那把尺子的另一端

把 08 讲的线性映射基本定理用在 TAT_A 上:

n=rank⁡A+dim⁡null⁡TAn=\operatorname{rank}A+\dim\operatorname{null}T_A

nn 是列数。背成「列数 = 秩 + 零化度」。下面每一条不等式都是它的推论。

顺带两条:

rank⁡A≤min⁡{m,n},rank⁡A=0  ⟺  A=0\operatorname{rank}A\le\min\{m,n\},\qquad \operatorname{rank}A=0\iff A=0

range⁡TA⊆Fm,1\operatorname{range}T_A\subseteq\mathbb{F}^{m,1} 给出 ≤m\le m,nn 个列向量张成给出 ≤n\le n;零矩阵的值域只有零向量。

3.9 两条基本不等式

本节约定:A,BA,B 同型(都是 m×nm\times n),以便做加法;涉及乘法时 AA 是 m×nm\times n、BB 是 n×pn\times p(于是 ABAB 是 m×pm\times p)。

(1)加法至多把秩相加。

rank⁡(A+B)≤rank⁡A+rank⁡B\operatorname{rank}(A+B)\le\operatorname{rank}A+\operatorname{rank}B

证明. 对任意 xx 有 (A+B)x=Ax+Bx(A+B)x=Ax+Bx,右边是「AA 的列的组合加上 BB 的列的组合」,所以

range⁡TA+B⊆range⁡TA+range⁡TB\operatorname{range}T_{A+B}\subseteq\operatorname{range}T_A+\operatorname{range}T_B

(右边的加号指子空间的和)。取维数,用 06 讲的和维数公式:

dim⁡range⁡TA+B≤dim⁡(range⁡TA+range⁡TB)=rank⁡A+rank⁡B−dim⁡(range⁡TA∩range⁡TB)≤rank⁡A+rank⁡B\begin{aligned}\dim\operatorname{range}T_{A+B}&\le\dim\big(\operatorname{range}T_A+\operatorname{range}T_B\big)\\&=\operatorname{rank}A+\operatorname{rank}B-\dim\big(\operatorname{range}T_A\cap\operatorname{range}T_B\big)\\&\le\operatorname{rank}A+\operatorname{rank}B\end{aligned}

■\blacksquare

证明顺手给出了取等条件,但它比初看要苛刻:取等当且仅当 range⁡TA+B=range⁡TA⊕range⁡TB\operatorname{range}T_{A+B}=\operatorname{range}T_A\oplus\operatorname{range}T_B。这里要强调的是等式成立的对象:不是「range⁡TA+range⁡TB\operatorname{range}T_A+\operatorname{range}T_B 是直和」,而是「A+BA+B 的值域恰好等于那个和」。只要求「两个值域交为零」不够——反例 A=(1100)A=\begin{pmatrix}1&1\\0&0\end{pmatrix}、B=(0011)B=\begin{pmatrix}0&0\\1&1\end{pmatrix},值域分别张成 (1,0)(1,0) 与 (0,1)(0,1),交集为零,但 A+BA+B 是秩 11 的全 11 矩阵,右边却是 22。所以还要「和恰好填满 A+BA+B 的值域」。

(2)乘法只会让秩变小。

rank⁡(AB)≤min⁡{rank⁡A, rank⁡B}\operatorname{rank}(AB)\le\min\{\operatorname{rank}A,\ \operatorname{rank}B\}

证明. 左半:ABx=A(Bx)ABx=A(Bx),故 range⁡TAB⊆range⁡TA\operatorname{range}T_{AB}\subseteq\operatorname{range}T_A,取维数得 rank⁡(AB)≤rank⁡A\operatorname{rank}(AB)\le\operatorname{rank}A。

右半:若 Bx=0Bx=0 则 ABx=0ABx=0,故 null⁡TB⊆null⁡TAB\operatorname{null}T_B\subseteq\operatorname{null}T_{AB},取维数得 dim⁡null⁡TAB≥dim⁡null⁡TB\dim\operatorname{null}T_{AB}\ge\dim\operatorname{null}T_B。再用一次「列数 = 秩 + 零化度」(BB 与 ABAB 的列数都是 pp):

p−rank⁡(AB)≥p−rank⁡B ⟹ rank⁡(AB)≤rank⁡Bp-\operatorname{rank}(AB)\ge p-\operatorname{rank}B\ \Longrightarrow\ \operatorname{rank}(AB)\le\operatorname{rank}B

■\blacksquare

两个上界都可能取到,也都可能很松,3.14 会各举一次。几何图像要记住:AA 只会把值域压小,BB 只会把零空间撑大。

3.10 Sylvester 秩不等式:给乘法一个下界

上面只说乘法不会把秩变大,没说能小到多少。Sylvester 不等式补上下界。设 AA 是 m×nm\times n、BB 是 n×pn\times p,则

rank⁡(AB)≥rank⁡A+rank⁡B−n\operatorname{rank}(AB)\ge\operatorname{rank}A+\operatorname{rank}B-n

证明. 只盯住 BB 的值域,把 AA 限制在它上面:

φ:range⁡TB→Fm,1,φ(y)=Ay\varphi:\operatorname{range}T_B\to\mathbb{F}^{m,1},\qquad \varphi(y)=Ay

φ\varphi 的值域正是 range⁡TAB\operatorname{range}T_{AB}:φ(Bx)=ABx\varphi(Bx)=ABx 给出 range⁡TAB⊆range⁡φ\operatorname{range}T_{AB}\subseteq\operatorname{range}\varphi;反过来 y=Bxy=Bx 时 φ(y)=ABx\varphi(y)=ABx,给出反向包含。两向包含,两者相等。

φ\varphi 的零空间是 range⁡TB∩null⁡TA\operatorname{range}T_B\cap\operatorname{null}T_A——这是全证明的关键:AA 的零空间一般只有一部分落在 BB 的值域里。

对 φ\varphi 用线性映射基本定理(它的定义域是 range⁡TB\operatorname{range}T_B,维数为 rank⁡B\operatorname{rank}B):

rank⁡B=dim⁡(range⁡TB∩null⁡TA)+rank⁡(AB)\operatorname{rank}B=\dim\big(\operatorname{range}T_B\cap\operatorname{null}T_A\big)+\operatorname{rank}(AB)

又 range⁡TB∩null⁡TA⊆null⁡TA\operatorname{range}T_B\cap\operatorname{null}T_A\subseteq\operatorname{null}T_A,取维数得

dim⁡(range⁡TB∩null⁡TA)≤dim⁡null⁡TA=n−rank⁡A\dim\big(\operatorname{range}T_B\cap\operatorname{null}T_A\big)\le\dim\operatorname{null}T_A=n-\operatorname{rank}A

代回上式:

rank⁡(AB)=rank⁡B−dim⁡(range⁡TB∩null⁡TA)≥rank⁡B−(n−rank⁡A)=rank⁡A+rank⁡B−n\operatorname{rank}(AB)=\operatorname{rank}B-\dim\big(\operatorname{range}T_B\cap\operatorname{null}T_A\big)\ge\operatorname{rank}B-(n-\operatorname{rank}A)=\operatorname{rank}A+\operatorname{rank}B-n

■\blacksquare

这个证明要带走的一句话

rank⁡(AB)\operatorname{rank}(AB) 恰等于 rank⁡B\operatorname{rank}B 减去「被 AA 杀掉的那部分 BB 的值域」的维数。
Sylvester 只是把这部分粗估成「不超过 null⁡TA\operatorname{null}T_A」的结果。

推论(零积的秩判据). 若 AB=0AB=0,则 rank⁡A+rank⁡B≤n\operatorname{rank}A+\operatorname{rank}B\le n。把 rank⁡(AB)=0\operatorname{rank}(AB)=0 代进去即可。它也解释了第五节误区 3 那对反例为何必然存在:两颗非零的 nn 阶矩阵要乘出零矩阵,秩必须小到加起来不超过 nn。

边界情形. 若 rank⁡A+rank⁡B≤n\operatorname{rank}A+\operatorname{rank}B\le n,右边 ≤0\le0,而秩非负,于是这条不等式不提供任何信息。Sylvester 只在 rank⁡A+rank⁡B>n\operatorname{rank}A+\operatorname{rank}B>n 时才咬人。

3.11 Frobenius 秩不等式:夹在中间的那个矩阵

设 AA 是 m×nm\times n、BB 是 n×pn\times p、CC 是 p×qp\times q,则

rank⁡(ABC)≥rank⁡(AB)+rank⁡(BC)−rank⁡B\operatorname{rank}(ABC)\ge\operatorname{rank}(AB)+\operatorname{rank}(BC)-\operatorname{rank}B

证明. 把 3.10 的「限制到值域上算零空间」用两次。第一次在 range⁡TB\operatorname{range}T_B 上做,如 3.10 所得:

rank⁡(AB)=rank⁡B−dim⁡(range⁡TB∩null⁡TA)\operatorname{rank}(AB)=\operatorname{rank}B-\dim\big(\operatorname{range}T_B\cap\operatorname{null}T_A\big)

第二次,把 AA 限制在更小的 range⁡TBC\operatorname{range}T_{BC} 上,同样的推理给出

rank⁡(ABC)=rank⁡(BC)−dim⁡(range⁡TBC∩null⁡TA)\operatorname{rank}(ABC)=\operatorname{rank}(BC)-\dim\big(\operatorname{range}T_{BC}\cap\operatorname{null}T_A\big)

因为 BCx=B(Cx)BCx=B(Cx),有 range⁡TBC⊆range⁡TB\operatorname{range}T_{BC}\subseteq\operatorname{range}T_B,所以

range⁡TBC∩null⁡TA ⊆ range⁡TB∩null⁡TA\operatorname{range}T_{BC}\cap\operatorname{null}T_A\ \subseteq\ \operatorname{range}T_B\cap\operatorname{null}T_A

取维数,把第一式的等价形式 dim⁡(range⁡TB∩null⁡TA)=rank⁡B−rank⁡(AB)\dim(\operatorname{range}T_B\cap\operatorname{null}T_A)=\operatorname{rank}B-\operatorname{rank}(AB) 代入第二式:

rank⁡(ABC)=rank⁡(BC)−dim⁡(range⁡TBC∩null⁡TA)≥rank⁡(BC)−dim⁡(range⁡TB∩null⁡TA)=rank⁡(BC)−(rank⁡B−rank⁡(AB))\begin{aligned}\operatorname{rank}(ABC)&=\operatorname{rank}(BC)-\dim\big(\operatorname{range}T_{BC}\cap\operatorname{null}T_A\big)\\&\ge\operatorname{rank}(BC)-\dim\big(\operatorname{range}T_B\cap\operatorname{null}T_A\big)\\&=\operatorname{rank}(BC)-\big(\operatorname{rank}B-\operatorname{rank}(AB)\big)\end{aligned}

移项即得所求。■\blacksquare

三条不等式各管一头

rank⁡(AB)≤min⁡{rank⁡A,rank⁡B}\operatorname{rank}(AB)\le\min\{\operatorname{rank}A,\operatorname{rank}B\} 管上界,最常用;
Sylvester 管「中间空间维数不够时乘积必降秩」;
Frobenius 管「两端各乘一次,中间的 BB 仍要收税」。
取 B=InB=I_n,Frobenius 化为 rank⁡(AC)≥rank⁡A+rank⁡C−n\operatorname{rank}(AC)\ge\operatorname{rank}A+\operatorname{rank}C-n,正是 Sylvester——前者是后者的推广。

3.12 什么时候取等

上面几条不等式的取等条件都能从证明里直接读出,不必另背。

不等式 取等条件
rank⁡(A+B)≤rank⁡A+rank⁡B\operatorname{rank}(A+B)\le\operatorname{rank}A+\operatorname{rank}B range⁡TA+B=range⁡TA⊕range⁡TB\operatorname{range}T_{A+B}=\operatorname{range}T_A\oplus\operatorname{range}T_B(仅交集为零不够,见 3.9)
Sylvester null⁡TA⊆range⁡TB\operatorname{null}T_A\subseteq\operatorname{range}T_B

乘法还有两条精确等式(不是不等式),值得单独立一条:

单射因子可以约掉,满射因子可以去掉。 若 AA 单射(列满秩),则 rank⁡(AB)=rank⁡B\operatorname{rank}(AB)=\operatorname{rank}B;若 BB 满射,则 rank⁡(AB)=rank⁡A\operatorname{rank}(AB)=\operatorname{rank}A。特别地,AA 可逆时两条都成立。

证明只有一行:AA 单射时 null⁡TA={0}\operatorname{null}T_A=\{0\},而 null⁡TAB=null⁡TB\operatorname{null}T_{AB}=\operatorname{null}T_B(Bx=0  ⟺  A(Bx)=0Bx=0\iff A(Bx)=0,因为 AA 把非零向量送到非零向量),两边套「列数 = 秩 + 零化度」。另一半对称:BB 满射时 range⁡TAB=A(range⁡TB)=A(Fn,1)=range⁡TA\operatorname{range}T_{AB}=A(\operatorname{range}T_B)=A(\mathbb{F}^{n,1})=\operatorname{range}T_A。

Sylvester 的取等条件更值得咀嚼:它说的不是「秩够大」,而是「AA 杀掉的那些方向,BB 全能造出来」。只有这时,BB 的值域才会被 AA 整整砍掉 dim⁡null⁡TA\dim\operatorname{null}T_A 那么多,下界才真的顶到。

3.13 用秩不等式做两件事

(1)判断 AX=BAX=B 何时有解。 把 BB 拼到 AA 右边,记 [A B][A\ B]。判据是(A1 讲给过同一条):

AX=B 有解  ⟺  rank⁡A=rank⁡[A B]AX=B\ \text{有解}\iff\operatorname{rank}A=\operatorname{rank}[A\ B]

秩不等式解释了这判据为什么顺。[A B][A\ B] 只比 AA 多了 BB 的若干列,而每加一列秩至多加一,故

rank⁡A≤rank⁡[A B]≤rank⁡A+rank⁡B\operatorname{rank}A\le\operatorname{rank}[A\ B]\le\operatorname{rank}A+\operatorname{rank}B

左边那个 ≤\le 永远不会反向:AA 是 [A B][A\ B] 的子矩阵,值域是子空间。于是两个秩只有两种命运:相等,说明新加的列没带来新方向,全落在 AA 的值域里,有解;变大,说明 BB 有一列逃出了 AA 的值域,无解。「无解」的量化含义就是「秩被抬高了」。

(2)判断 rank⁡(Ak)\operatorname{rank}(A^k) 何时稳定。 由 3.9(2),

rank⁡A≥rank⁡(A2)≥⋯≥rank⁡(Ak)≥⋯≥0\operatorname{rank}A\ge\operatorname{rank}(A^2)\ge\cdots\ge\operatorname{rank}(A^k)\ge\cdots\ge0

这是单调不增的非负整数序列,至多 nn 步就停住。但「停一步」是不是「永远停」?是,理由只在零空间上。

设 rank⁡(Ak+1)=rank⁡(Ak)\operatorname{rank}(A^{k+1})=\operatorname{rank}(A^k)。由「列数 = 秩 + 零化度」,这等价于 dim⁡null⁡TAk+1=dim⁡null⁡TAk\dim\operatorname{null}T_{A^{k+1}}=\dim\operatorname{null}T_{A^k};而 null⁡TAk⊆null⁡TAk+1\operatorname{null}T_{A^k}\subseteq\operatorname{null}T_{A^{k+1}} 自动成立(Akx=0⇒Ak+1x=0A^kx=0\Rightarrow A^{k+1}x=0),故两个零空间相等。

现在取 x∈null⁡TAk+2x\in\operatorname{null}T_{A^{k+2}},即 Ak+1(Ax)=0A^{k+1}(Ax)=0。这说明 Ax∈null⁡TAk+1=null⁡TAkAx\in\operatorname{null}T_{A^{k+1}}=\operatorname{null}T_{A^k},即 Ak+1x=0A^{k+1}x=0,也就是 x∈null⁡TAk+1x\in\operatorname{null}T_{A^{k+1}}。于是 null⁡TAk+2⊆null⁡TAk+1\operatorname{null}T_{A^{k+2}}\subseteq\operatorname{null}T_{A^{k+1}},反向包含自动,两者相等,rank⁡(Ak+2)=rank⁡(Ak+1)\operatorname{rank}(A^{k+2})=\operatorname{rank}(A^{k+1})。归纳下去:一旦相等,后面全相等。

这条会在别处再出现

「AkA^k 的秩从第几步起不变」在第 33 讲讨论 Jordan 形时是核心数据:对每个特征值 λ\lambda,rank⁡(A−λI)k\operatorname{rank}(A-\lambda I)^k 稳定的步数就是最大 Jordan 块的尺寸。

3.14 一个自己验算的完整例子

取

A=(101011),B=(111001),C=(1000)A=\begin{pmatrix}1&0&1\\0&1&1\end{pmatrix},\qquad B=\begin{pmatrix}1&1\\1&0\\0&1\end{pmatrix},\qquad C=\begin{pmatrix}1&0\\0&0\end{pmatrix}

先算三个秩。AA 的两行不成比例,秩 22;BB 的两列 (1,1,0)(1,1,0) 与 (1,0,1)(1,0,1) 不成比例,秩 22;CC 是「只保第一个坐标」的投影,秩 11。

再算乘积(按读法一逐格算):

AB=(1211),BC=(101000),ABC=(1010)AB=\begin{pmatrix}1&2\\1&1\end{pmatrix},\qquad BC=\begin{pmatrix}1&0\\1&0\\0&0\end{pmatrix},\qquad ABC=\begin{pmatrix}1&0\\1&0\end{pmatrix}

核两处:ABAB 第 1 行取 AA 第 1 行 (1,0,1)(1,0,1),与 BB 第 1 列 (1,1,0)(1,1,0) 作内积得 1⋅1+0⋅1+1⋅0=11\cdot1+0\cdot1+1\cdot0=1,与 BB 第 2 列 (1,0,1)(1,0,1) 得 1⋅1+0⋅0+1⋅1=21\cdot1+0\cdot0+1\cdot1=2;第 2 行 (0,1,1)(0,1,1) 同样给出 (1,1)(1,1)。det⁡(AB)=1⋅1−2⋅1=−1≠0\det(AB)=1\cdot1-2\cdot1=-1\neq0,秩 22。BCBC 只有第一列非零,秩 11。ABC=(AB)CABC=(AB)C,而 CC 只保第一列,所以 ABCABC 就是 ABAB 的第 1 列,秩 11。

查不等式:

不等式 左边 右边 判定
rank⁡(AB)≤min⁡{rank⁡A,rank⁡B}\operatorname{rank}(AB)\le\min\{\operatorname{rank}A,\operatorname{rank}B\} 22 min⁡{2,2}=2\min\{2,2\}=2 取等
Sylvester:rank⁡(AB)≥rank⁡A+rank⁡B−3\operatorname{rank}(AB)\ge\operatorname{rank}A+\operatorname{rank}B-3 22 2+2−3=12+2-3=1 严格
Frobenius:rank⁡(ABC)≥rank⁡(AB)+rank⁡(BC)−rank⁡B\operatorname{rank}(ABC)\ge\operatorname{rank}(AB)+\operatorname{rank}(BC)-\operatorname{rank}B 11 2+1−2=12+1-2=1 取等

Sylvester 为什么严格?按 3.12 的判据,只需看 null⁡TA\operatorname{null}T_A 是否落在 range⁡TB\operatorname{range}T_B 里。这里 AA 是 2×32\times3,null⁡TA\operatorname{null}T_A 是一维的,由 x1+x3=0x_1+x_3=0、x2+x3=0x_2+x_3=0 解出,基是 (1,1,−1)(1,1,-1)。若它在 range⁡TB\operatorname{range}T_B 里,就存在 a,ba,b 使

a(110)+b(101)=(11−1)a\begin{pmatrix}1\\1\\0\end{pmatrix}+b\begin{pmatrix}1\\0\\1\end{pmatrix}=\begin{pmatrix}1\\1\\-1\end{pmatrix}

第三个坐标强迫 b=−1b=-1,第二个坐标强迫 a=1a=1,但第一个坐标要求 a+b=1a+b=1,而 1+(−1)=0≠11+(-1)=0\neq1,矛盾。故 null⁡TA⊈range⁡TB\operatorname{null}T_A\not\subseteq\operatorname{range}T_B,Sylvester 严格——判据对上了。

最后补两次核对,把「上界可以很松」与「单射可约」也验掉:

  • 取 N=(0100)N=\begin{pmatrix}0&1\\0&0\end{pmatrix},rank⁡N=1\operatorname{rank}N=1,N2=0N^2=0,rank⁡(N2)=0<1=min⁡{1,1}\operatorname{rank}(N^2)=0<1=\min\{1,1\}。3.9(2) 的上界确实可以取不到。
  • 取 L=(101101)L=\begin{pmatrix}1&0\\1&1\\0&1\end{pmatrix}(3×23\times2,秩 22 等于列数,故单射)。LC=(101000)LC=\begin{pmatrix}1&0\\1&0\\0&0\end{pmatrix},秩 1=rank⁡C1=\operatorname{rank}C,3.12 的「单射因子可约掉」成立。

四、几何直观 / 记忆钩子

钩子 1:列是「基向量的像」

M(T) 的第 k 列=Tvk 的坐标\mathcal{M}(T)\ \text{的第}\ k\ \text{列}=Tv_k\ \text{的坐标}

于是「设计」一个矩阵就是「设计基向量的像」,「读懂」一个矩阵就是「读懂每一列把哪个基向量送到了哪里」。标准基下这句话最直白:AA 的第 kk 列 == AA 作用在第 kk 个标准基向量上的结果。

钩子 2:乘法从右往左做,映射也从右往左读

M(ST)=M(S)M(T)\mathcal{M}(ST)=\mathcal{M}(S)\mathcal{M}(T)

读法:等号右边先出现的 M(S)\mathcal{M}(S) 管最后做的事。因为 STST 的意思是「先 TT 后 SS」,而这个「先」对应乘积里靠右的那一个。

不是「顺序反了」

两边其实是同一套约定:复合与乘法都是从右往左作用。
只要坚持「离输入近的写右边」,等式两边就永远一致,不会颠倒。

钩子 3:尺寸链条

(m×n)⋅(n×p)=(m×p)(m\times n)\cdot(n\times p)=(m\times p)

中间的 nn 必须一致且会被吃掉;剩下的两头留下——左边提供行数,右边提供列数。

钩子 4:AbAb 就是「拿 bb 里的数当配方,把 AA 的列调出来混合」

Ab=b1A⋅,1+⋯+bnA⋅,nAb=b_1A_{\cdot,1}+\cdots+b_nA_{\cdot,n}

所有「矩阵乘向量」的题都通用。它也是后面讨论「方程组 Ax=bAx=b 有没有解」的出发点:有解,就是说 bb 能写成 AA 各列的组合。

钩子 5:单位矩阵 = 「什么都不做」

在 Fn\mathbb{F}^n 上取标准基,把每个向量映到自己的映射(恒等映射)的矩阵是

In=(10⋱01)I_n=\begin{pmatrix}1&&0\\&\ddots&\\0&&1\end{pmatrix}

对角线全是 11。只要大小配得上,就有 ImA=AI_mA=A 与 AIn=AAI_n=A:恒等映射复合谁都不改变谁。能把自己「取消掉」的矩阵(可逆矩阵)就是从这里长出来的,那是 10 讲的主题。


五、常见误区

误区 1:把「行乘列」当成一条要背的规定

背下来只能应付标准基下的计算题。题目一换基(或出现非标准基),不知道「列是什么」就摆不对矩阵。
先记住 M(T)\mathcal{M}(T) 的定义,再记行乘列的算法:前者能推出后者,反之不能。

误区 2:顺序弄反

正确写法:M(ST)=M(S)M(T)\mathcal{M}(ST)=\mathcal{M}(S)\mathcal{M}(T)。
常见错法:写成 M(T)M(S)\mathcal{M}(T)\mathcal{M}(S),或把 BABA 当 ABAB。
自检两条:① STST 表示「先 TT 后 SS」,所以 TT 的矩阵写在右边;
② 数一遍行列,m×nm\times n 与 n×pn\times p 的顺序错了,多数情况当场就乘不起来。

误区 3:以为 AB=0AB=0 能推出 A=0A=0 或 B=0B=0

数有「乘积为零必有一因子为零」,矩阵没有这条。反例:

A=(1010),B=(0001),AB=(0000)A=\begin{pmatrix}1&0\\1&0\end{pmatrix},\qquad B=\begin{pmatrix}0&0\\0&1\end{pmatrix},\qquad AB=\begin{pmatrix}0&0\\0&0\end{pmatrix}

A≠0A\neq0、B≠0B\neq0,乘积却是零矩阵。根源还是映射:先投影到 xx 轴、再投影到 yy 轴,两步都是非零映射,合起来把一切都压成 00。
推论:矩阵没有消去律,看到 AB=ACAB=AC 不能约掉 AA。

误区 4:把矩阵乘法当成「对应元素相乘」

(AB)j,k(AB)_{j,k} 不是 Aj,kBj,kA_{j,k}B_{j,k}。拿 3.4 的例子一眼否掉:
结果的第 1 行第 1 列是 1010,而「对应元素相乘」会给出 1⋅6=61\cdot 6=6。
逐元素相乘记录不了复合映射,这正是它被弃用的原因。

误区 5:以为 M(T)\mathcal{M}(T) 只由 TT 决定

它由三样东西共同决定:TT、VV 的基、WW 的基。换基,同一个 TT 的矩阵就变。
例如恒等映射 I:F2→F2I:\mathbb{F}^2\to\mathbb{F}^2,若定义域取基 v1=(1,1)v_1=(1,1)、v2=(1,−1)v_2=(1,-1),到达空间取标准基 e1,e2e_1,e_2,则

Iv1=(1,1)=1e1+1e2,Iv2=(1,−1)=1e1−1e2Iv_1=(1,1)=1e_1+1e_2,\qquad Iv_2=(1,-1)=1e_1-1e_2

于是 M(I)=(111−1)\mathcal{M}(I)=\begin{pmatrix}1&1\\1&-1\end{pmatrix};而两组基都取标准基时,M(I)=I2\mathcal{M}(I)=I_2。
同一个映射,两个完全不同的矩阵。 所以:矩阵不是映射本身,而是「映射 ++ 两组基」的坐标记录。

误区 6:不谈大小就谈相等与相加

m×nm\times n 与 n×mn\times m 是两个不同的集合,A+BA+B 只在大小相同时才有定义。
而 ABAB 与 BABA 即使都有定义,也通常大小不同(一个 m×mm\times m、一个 n×nn\times n),比较之前先看大小。
只有当 A,BA,B 同为 nn 阶方阵时,ABAB 与 BABA 才都落在 Fn,n\mathbb{F}^{n,n} 里,谈相不相等才有意义。

误区 7:把 1×11\times 1 矩阵与数完全等同

在「行乘列」的语境里把 (26)\begin{pmatrix}26\end{pmatrix} 写成 2626 很方便,这是通行约定。
但它是省略,不是恒等式:1×11\times 1 矩阵仍有它的矩阵身份。
平时按约定省,讨论「大小」「能不能乘」时记得写回来。


六、拓展(可跳过)

6.1 转置:行列互换

把矩阵的行与列互换,得到转置:若 AA 是 m×nm\times n,则 ATA^{\mathsf{T}} 是 n×mn\times m,元素满足

(AT)k,j=Aj,k\big(A^{\mathsf{T}}\big)_{k,j}=A_{j,k}

它有两条与加法、标量乘法相容的性质,以及一条最容易记错的:

(A+B)T=AT+BT,(λA)T=λAT,(AC)T=CTAT(A+B)^{\mathsf{T}}=A^{\mathsf{T}}+B^{\mathsf{T}},\qquad (\lambda A)^{\mathsf{T}}=\lambda A^{\mathsf{T}},\qquad (AC)^{\mathsf{T}}=C^{\mathsf{T}}A^{\mathsf{T}}

注意最后一条也「倒了个序」。原因仍是复合:转置把「行乘列」换成了「列乘行」,方向要对调才等得上。

6.2 分块

矩阵可以切成几块,乘法按块进行,规则与普通乘法一致(只要各块大小配套)。这既是手算大矩阵的省力办法,也是后面证明行列分解之类结论时的标准工具。

6.3 算一次要花多少力气

AA 是 m×nm\times n、BB 是 n×pn\times p。结果有 mpmp 个元素,每个元素要 nn 次乘法与 n−1n-1 次加法,所以朴素算法需要 mnpmnp 次乘法、mp(n−1)mp(n-1) 次加法。

这个数字解释了工程上为何如此在意矩阵乘法的实现:把大矩阵分块、利用缓存、交给专用硬件(BLAS、GPU),争的就是这个 mnpmnp。

6.4 关于秩的三点补注

3.8–3.14 已经把秩的不等式讲完了,这里补三个它没提的旁注,都可跳过。

(1)Frobenius 的另一条证法。 若 B=B1B2B=B_1B_2,其中 B1B_1 列满秩、B2B_2 行满秩(秩分解,见 12 讲),则

ABC=(AB1)(B2C),ABC=(AB_1)(B_2C),

而 B1B_1 列满秩保证 rank⁡(AB1)=rank⁡(AB)\operatorname{rank}(AB_1)=\operatorname{rank}(AB)、B2B_2 行满秩保证 rank⁡(B2C)=rank⁡(BC)\operatorname{rank}(B_2C)=\operatorname{rank}(BC)。对这一对矩阵 (AB1)(AB_1) 与 (B2C)(B_2C) 用一次 Sylvester(内维恰为 r=rank⁡Br=\operatorname{rank}B):

rank⁡(ABC) ≥ rank⁡(AB1)+rank⁡(B2C)−r=rank⁡(AB)+rank⁡(BC)−rank⁡B.\operatorname{rank}(ABC)\ \ge\ \operatorname{rank}(AB_1)+\operatorname{rank}(B_2C)-r=\operatorname{rank}(AB)+\operatorname{rank}(BC)-\operatorname{rank}B .

这里有个容易写错的点

不要写成「对 A,B1A,B_1 用一次、对 B2,CB_2,C 用一次,两个结果拼起来」——
那两次用的内维分别是 nn 与 pp,得到的只是 rank⁡(AB)\operatorname{rank}(AB) 与 rank⁡(BC)\operatorname{rank}(BC) 各自的下界,
合起来推不出 rank⁡(ABC)\operatorname{rank}(ABC) 的任何界。
正确的做法是把乘积重新结合成两项,再对这两项用一次。

(2)稳定秩的谱解释。 3.13 证明了 rank⁡(Ak)\operatorname{rank}(A^k) 一旦相等就永远相等,但没说那个稳定值等于几。答案在 31 讲与 33 讲:它等于 AA 的可对角化部分的秩,即非零特征值对应的广义特征空间维数之和。幂零部分对稳定值的贡献是零——它迟早把自己抹干净。

(3)别名与另一副坐标。 「rank⁡A=rank⁡[A∣B]\operatorname{rank}A=\operatorname{rank}[A\mid B] 则有解」这条,在方程组语境里叫 Kronecker–Capelli 定理;写成 rank⁡A=rank⁡(A∣b)\operatorname{rank}A=\operatorname{rank}(A\mid b) 就是 A1 讲那条判据。另外,秩也等于非零奇异值的个数(见 29 讲)——那是同一条维数公式在另一副坐标下的读数。


七、自测(先做,再看答案)

1. 设 T∈L(F2,F3)T\in\mathcal{L}(\mathbb{F}^2,\mathbb{F}^3) 满足 T(x,y)=(2x−y, x+4y, 3x)T(x,y)=(2x-y,\ x+4y,\ 3x)。写出 TT 关于标准基的矩阵,并用「列的线性组合」求出 T(3,−1)T(3,-1)。

2. 设 A=(1234)A=\begin{pmatrix}1&2\\3&4\end{pmatrix}、B=(0110)B=\begin{pmatrix}0&1\\1&0\end{pmatrix}。求 ABAB 与 BABA,说明它们是否相等,并给出「为什么会这样」的一句话理由。

3. 给出两个非零的 2×22\times 2 矩阵 A,BA,B 使 AB=0AB=0。这说明矩阵缺少了什么性质?

4. 用「矩阵记录映射复合」这一条证明结合律 (AB)C=A(BC)(AB)C=A(BC)——不要逐元素展开,说清每一步用的是什么。

5. 设 I:F2→F2I:\mathbb{F}^2\to\mathbb{F}^2 是恒等映射。定义域取基 v1=(1,1)v_1=(1,1)、v2=(1,−1)v_2=(1,-1),到达空间取标准基 e1,e2e_1,e_2,求 M(I)\mathcal{M}(I);再把到达空间的基也换成 v1,v2v_1,v_2(定义域基不变),重求一次,并说明两次结果不同说明了什么。

6. 设 AA 是 3×53\times5、BB 是 5×35\times3,且 AB=I3AB=I_3。求 rank⁡B\operatorname{rank}B,并说明为什么 BA≠I5BA\neq I_5。(提示:乘法不等式的上界用两次,注意 BABA 是几阶方阵。)

7. 设 A=(1224)A=\begin{pmatrix}1&2\\2&4\end{pmatrix}、B=(2−2−11)B=\begin{pmatrix}2&-2\\-1&1\end{pmatrix}。算 rank⁡A\operatorname{rank}A、rank⁡B\operatorname{rank}B、rank⁡(A+B)\operatorname{rank}(A+B),并判断加法不等式的取等条件是否满足。

答案(点开)

1. T(1,0)=(2,1,3)T(1,0)=(2,1,3)、T(0,1)=(−1,4,0)T(0,1)=(-1,4,0),所以

M(T)=(2−11430)\mathcal{M}(T)=\begin{pmatrix}2&-1\\1&4\\3&0\end{pmatrix}

又 (3,−1)=3(1,0)+(−1)(0,1)(3,-1)=3(1,0)+(-1)(0,1),故 T(3,−1)=3(2,1,3)−(−1,4,0)=(6,3,9)−(−1,4,0)=(7,−1,9)T(3,-1)=3(2,1,3)-(-1,4,0)=(6,3,9)-(-1,4,0)=(7,-1,9)。
直接代原式核对:(2⋅3−(−1), 3+4⋅(−1), 9)=(7,−1,9)(2\cdot3-(-1),\ 3+4\cdot(-1),\ 9)=(7,-1,9) ✓。

2. AB=(2143)AB=\begin{pmatrix}2&1\\4&3\end{pmatrix},BA=(3412)BA=\begin{pmatrix}3&4\\1&2\end{pmatrix},两者不等。
一句话理由:BB 交换两个坐标、AA 是另一个变换,复合映射不交换,所以两个乘积不相等。
(另外注意:这次 ABAB 与 BABA 大小相同,才有「比较」这回事。)

3. 取 A=(1010)A=\begin{pmatrix}1&0\\1&0\end{pmatrix}、B=(0001)B=\begin{pmatrix}0&0\\0&1\end{pmatrix},则 AB=(0000)AB=\begin{pmatrix}0&0\\0&0\end{pmatrix},而 A,BA,B 都不是零矩阵。
这说明矩阵没有「乘积为零必有一因子为零」这条性质,也就没有消去律。

4. 设 R:U→VR:U\to V、T:V→WT:V\to W、S:W→XS:W\to X,取相配的基,记 A=M(S)A=\mathcal{M}(S)、B=M(T)B=\mathcal{M}(T)、C=M(R)C=\mathcal{M}(R)。
由「乘积矩阵记录复合映射」得 M(S)M(T)=M(ST)\mathcal{M}(S)\mathcal{M}(T)=\mathcal{M}(ST) 与 M(T)M(R)=M(TR)\mathcal{M}(T)\mathcal{M}(R)=\mathcal{M}(TR)。于是

(AB)C=M(ST)M(R)=M((ST)R),A(BC)=M(S)M(TR)=M(S(TR))(AB)C=\mathcal{M}(ST)\mathcal{M}(R)=\mathcal{M}\big((ST)R\big),\qquad A(BC)=\mathcal{M}(S)\mathcal{M}(TR)=\mathcal{M}\big(S(TR)\big)

而对任意 u∈Uu\in U,((ST)R)u=S(T(Ru))=(S(TR))u\big((ST)R\big)u=S\big(T(Ru)\big)=\big(S(TR)\big)u,故两个映射相等,矩阵相等。
需要注意的只有大小:三段映射首尾相接,保证所有乘积都有定义。

5. 第一问:Iv1=v1=1e1+1e2Iv_1=v_1=1e_1+1e_2,Iv2=v2=1e1−1e2Iv_2=v_2=1e_1-1e_2,所以

M(I)=(111−1)\mathcal{M}(I)=\begin{pmatrix}1&1\\1&-1\end{pmatrix}

第二问:Iv1=1⋅v1+0⋅v2Iv_1=1\cdot v_1+0\cdot v_2,Iv2=0⋅v1+1⋅v2Iv_2=0\cdot v_1+1\cdot v_2,所以 M(I)=(1001)=I2\mathcal{M}(I)=\begin{pmatrix}1&0\\0&1\end{pmatrix}=I_2。
两次结果不同,说明矩阵依赖基的选取:同一个映射在两组基下给出不同的矩阵。

6. 由 AB=I3AB=I_3 与 rank⁡(AB)≤min⁡{rank⁡A,rank⁡B}\operatorname{rank}(AB)\le\min\{\operatorname{rank}A,\operatorname{rank}B\} 得 rank⁡A≥3\operatorname{rank}A\ge3、rank⁡B≥3\operatorname{rank}B\ge3;而 AA 只有 33 行、BB 只有 33 列,故 rank⁡A≤3\operatorname{rank}A\le3、rank⁡B≤3\operatorname{rank}B\le3。于是两者都恰好等于 33(都满秩)。
但 BABA 是 55 阶方阵,而 rank⁡(BA)≤min⁡{rank⁡B,rank⁡A}=3<5\operatorname{rank}(BA)\le\min\{\operatorname{rank}B,\operatorname{rank}A\}=3<5,永不可逆,所以 BA≠I5BA\neq I_5。
一句话:AB=IAB=I 只保证 AA 行满秩、BB 列满秩,两个方向的「逆」在方阵阶数不同时根本不可能同时存在。

7. AA 的两行成比例(第 2 行 =2×=2\times第 1 行),rank⁡A=1\operatorname{rank}A=1;BB 的两列 (2,−1)(2,-1) 与 (−2,1)(-2,1) 互为相反数,rank⁡B=1\operatorname{rank}B=1。而

A+B=(3015),det⁡(A+B)=15≠0A+B=\begin{pmatrix}3&0\\1&5\end{pmatrix},\qquad \det(A+B)=15\neq0

所以 rank⁡(A+B)=2=rank⁡A+rank⁡B\operatorname{rank}(A+B)=2=\operatorname{rank}A+\operatorname{rank}B,等号取到。
按 3.9 的判据验一遍:range⁡TA=span⁡{(1,2)}\operatorname{range}T_A=\operatorname{span}\{(1,2)\},range⁡TB=span⁡{(2,−1)}\operatorname{range}T_B=\operatorname{span}\{(2,-1)\},两者交集只有零,且和是整个 R2\mathbb{R}^2(两个方向不共线),正是直和 range⁡TA+B=range⁡TA⊕range⁡TB\operatorname{range}T_{A+B}=\operatorname{range}T_A\oplus\operatorname{range}T_B。
对照 3.9 那个「交集为零但不等号严格」的反例,可以看到交集为零只是必要条件,不是充分条件。


八、复习卡

项 内容
矩阵 F\mathbb{F} 中元素排成的 mm 行 nn 列矩形阵列
Aj,kA_{j,k} 第 jj 行第 kk 列的元素;先下标记行
M(T)\mathcal{M}(T) 的定义 Tvk=A1,kw1+⋯+Am,kwmTv_k=A_{1,k}w_1+\cdots+A_{m,k}w_m
第 kk 列是什么 TvkTv_k 关于 WW 的基的坐标
尺寸 T:V→WT:V\to W,dim⁡V=n\dim V=n、dim⁡W=m\dim W=m,则 M(T)\mathcal{M}(T) 是 m×nm\times n
依赖三样东西 TT、VV 的基、WW 的基
矩阵加法 同大小逐元素相加;M(S+T)=M(S)+M(T)\mathcal{M}(S+T)=\mathcal{M}(S)+\mathcal{M}(T)
标量乘法 每个元素乘 λ\lambda;M(λT)=λM(T)\mathcal{M}(\lambda T)=\lambda\mathcal{M}(T)
Fm,n\mathbb{F}^{m,n} 全部 m×nm\times n 矩阵,构成向量空间,dim⁡Fm,n=mn\dim\mathbb{F}^{m,n}=mn
零元 零矩阵(元素全为 00)
矩阵乘法 (AB)j,k=∑r=1nAj,rBr,k(AB)_{j,k}=\sum_{r=1}^{n}A_{j,r}B_{r,k};AA 为 m×nm\times n、BB 为 n×pn\times p
使用条件 AA 的列数 == BB 的行数
为什么这样定义 唯一能让 M(ST)=M(S)M(T)\mathcal{M}(ST)=\mathcal{M}(S)\mathcal{M}(T) 成立的定义
读法一(行乘列) (AB)j,k=Aj,⋅B⋅,k(AB)_{j,k}=A_{j,\cdot}B_{\cdot,k}
读法二(列) (AB)⋅,k=AB⋅,k(AB)_{\cdot,k}=AB_{\cdot,k}
读法三(列组合) Ab=b1A⋅,1+⋯+bnA⋅,nAb=b_1A_{\cdot,1}+\cdots+b_nA_{\cdot,n}
读法四(行组合) ABAB 的第 jj 行是 BB 各行的组合,系数来自 AA 的第 jj 行
结合律 成立;原因是映射复合的结合律
交换律 不成立;原因是映射复合不交换
分配律 A(B+C)=AB+ACA(B+C)=AB+AC、(D+E)F=DF+EF(D+E)F=DF+EF
单位矩阵 InI_n(对角线为 11);ImA=AI_mA=A、AIn=AAI_n=A
零因子 AB=0AB=0 推不出 A=0A=0 或 B=0B=0;无消去律
秩 rank⁡A=dim⁡range⁡TA\operatorname{rank}A=\dim\operatorname{range}T_A(= 列秩 = 行秩)
秩–零化度 列数 =rank⁡A+dim⁡null⁡TA=\operatorname{rank}A+\dim\operatorname{null}T_A(08 讲基本定理的矩阵版)
秩的上界 rank⁡A≤min⁡{m,n}\operatorname{rank}A\le\min\{m,n\};rank⁡A=0  ⟺  A=0\operatorname{rank}A=0\iff A=0
加法 rank⁡(A+B)≤rank⁡A+rank⁡B\operatorname{rank}(A+B)\le\operatorname{rank}A+\operatorname{rank}B
乘法(上界) rank⁡(AB)≤min⁡{rank⁡A,rank⁡B}\operatorname{rank}(AB)\le\min\{\operatorname{rank}A,\operatorname{rank}B\}
Sylvester rank⁡(AB)≥rank⁡A+rank⁡B−n\operatorname{rank}(AB)\ge\operatorname{rank}A+\operatorname{rank}B-n(AA 的列数 =n=n)
Frobenius rank⁡(ABC)≥rank⁡(AB)+rank⁡(BC)−rank⁡B\operatorname{rank}(ABC)\ge\operatorname{rank}(AB)+\operatorname{rank}(BC)-\operatorname{rank}B
零积 AB=0⇒rank⁡A+rank⁡B≤nAB=0\Rightarrow\operatorname{rank}A+\operatorname{rank}B\le n
单射可约 AA 列满秩 ⇒rank⁡(AB)=rank⁡B\Rightarrow\operatorname{rank}(AB)=\operatorname{rank}B;BB 行满秩 ⇒rank⁡(AB)=rank⁡A\Rightarrow\operatorname{rank}(AB)=\operatorname{rank}A
AX=BAX=B 有解 rank⁡A=rank⁡[A B]\operatorname{rank}A=\operatorname{rank}[A\ B](Kronecker–Capelli)
AkA^k 的秩 单调不增;一旦 rank⁡(Ak+1)=rank⁡(Ak)\operatorname{rank}(A^{k+1})=\operatorname{rank}(A^k),后面全相等

九、出处与延伸(可选,不影响阅读)

  • 本讲对应:《线性代数应该这样学》(第四版,Sheldon Axler 著,吴俊达、何阳 译)第 3 章 3C 节「矩阵」,PDF 页码 p72–82。其中:定义 3.29(矩阵、Aj,kA_{j,k})、例 3.30、定义 3.31(线性映射的矩阵 M(T)\mathcal{M}(T))、例 3.32(F2→F3\mathbb{F}^2\to\mathbb{F}^3)、例 3.33(微分映射)、定义 3.34(矩阵加法)、3.35(和的矩阵)、定义 3.36(矩阵的标量乘法)、例 3.37、3.38(标量积的矩阵)、记号 3.39(Fm,n\mathbb{F}^{m,n})、3.40(dim⁡Fm,n=mn\dim\mathbb{F}^{m,n}=mn)、定义 3.41(矩阵乘法)、例 3.42、3.43(M(ST)=M(S)M(T)\mathcal{M}(ST)=\mathcal{M}(S)\mathcal{M}(T))、记号 3.44(Aj,⋅A_{j,\cdot}、A⋅,kA_{\cdot,k})、例 3.45、3.46(积的元素等于行乘以列)、3.48(积的列)、例 3.49、3.50(列的线性组合)、3.51(将矩阵乘法视为列或行的线性组合)。
  • 同节后半、本讲未展开的内容:3.52(列秩、行秩)、例 3.53、定义 3.54(转置 AtA^{t})、例 3.55、3.56(行列分解)、3.57(列秩等于行秩)、定义 3.58(秩)。它们在原文里与本节相连,但在本课被排到后面的讲次(转置、秩、矩阵分解相关各讲)。
  • 自测题对照:第 1、5 题为本讲自编(第 5 题的换基对照用来检验「矩阵依赖基」这一条);第 2 题对应习题 10(举出 AB≠BAAB\neq BA 的例子);第 3 题是常见的零因子反例,原文未列为习题;第 4 题对应习题 12(证明结合律,其注中引了 Emil Artin 关于「抛开矩阵可把证明缩短一半」的说法)。
  • 同节习题里还值得自己做一遍的:习题 3(验证 M(S+T)\mathcal{M}(S+T) 与 M(λT)\mathcal{M}(\lambda T))、习题 8–9(乘积的行版本与列版本,即本文读法四与读法三的行形式)、习题 13(A3A^3 的元素公式)、习题 14–15(转置的线性性与 (AC)t=CtAt(AC)^{t}=C^{t}A^{t})、习题 16(秩为 11 的矩阵可写成 Aj,k=cjdkA_{j,k}=c_jd_k)、习题 17(TT 是单射与 M(T)\mathcal{M}(T) 的列线性无关等价)。
  • 3.8–3.14(秩的不等式)的出处:这一块不属于 3C,主源是两本。**《行列式入门》**附录 C.41「线性方程组与秩」(印刷页码 p409–417 / PDF p425–433):秩的定义是「最大非零子式的阶」(定义 C.165,印刷 p413);定理 C.166「rank⁡[A,AC]=rank⁡A\operatorname{rank}[A,AC]=\operatorname{rank}A」(印刷 p414);C.167「rank⁡(A)=rank⁡(AT)\operatorname{rank}(A)=\operatorname{rank}(A^{\mathsf T})」(印刷 p414);C.168「rank⁡(AC)≤rank⁡A\operatorname{rank}(AC)\le\operatorname{rank}A」(印刷 p414);C.169「rank⁡(AC)≤rank⁡A\operatorname{rank}(AC)\le\operatorname{rank}A 且 ≤rank⁡C\le\operatorname{rank}C」(印刷 p415)——这正是 3.9(2) 的两半,原文第二个不等式的证法是转置加第一个不等式,本文改用了零空间路线。可逆因子保持秩(C.170,印刷 p415)。方程组有解判据在 C.188(印刷 p432)。
  • 一处没有找到的(重要):《行列式入门》里没有 Sylvester 秩不等式,也没有 Frobenius 秩不等式。全书出现的「Sylvester」都是指 Sylvester 阵与结式(C.43 节,印刷 p455 起 / PDF p471 起),与秩的不等式无关——按关键词搜「Sylvester」会被这个词误导到那一节去。3.10、3.11 的表述参照 GTM135 中译《高等线性代数》 的习题:rank⁡(τ+σ)≤rank⁡τ+rank⁡σ\operatorname{rank}(\tau+\sigma)\le\operatorname{rank}\tau+\operatorname{rank}\sigma、rank⁡(στ)≤min⁡{rank⁡τ,rank⁡σ}\operatorname{rank}(\sigma\tau)\le\min\{\operatorname{rank}\tau,\operatorname{rank}\sigma\}、可逆因子不改变秩,见该书第 2 章习题 2.9–2.13(印刷 p71–72,页码据 extract 页脚核实);秩加零化度定理见印刷 p53–54。Sylvester 与 Frobenius 本身是标准结论,本文的零空间证法按 08 讲的基本定理写全,未依赖某一种特定表述。
  • 秩的定性结论(列秩 = 行秩):见 12 讲 3.11,那里的证明用对偶映射走了一遍;本文 3.8 只引用结论不重复证明。行列式的路子在 37 讲。
  • 一条易混的别名:「秩加零化度定理」= rank–nullity theorem,08 讲叫「线性映射基本定理」,两者是同一条。Sylvester 秩不等式不要与「Sylvester 惯性律」(二次型,35 讲)混为一谈,后者是另一个 Sylvester。
  • 术语别名:「矩阵」= matrix;元素也常写作 ajka_{jk}、AjkA_{jk};M(T)\mathcal{M}(T) 在其他教材里常写作 [T][T]、[T]BC[T]_{\mathcal{B}}^{\mathcal{C}}(把两组基写进上标/下标);「矩阵乘法」= matrix multiplication;转置 = transpose(原文记号 AtA^{t},本课统一记 ATA^{\mathsf{T}});线性映射也常叫「线性变换」。
  • 一处记号差异:多数教材都约定「矩阵的列对应定义域的基向量」,但上标/下标里哪一组基写在前面各家不同。读到别处的 [T]BC[T]_{\mathcal{B}}^{\mathcal{C}} 时,先确认它把哪组基对应到列,再动手算。
  • 计算量:m×nm\times n 与 n×pn\times p 相乘,朴素算法需要 mnpmnp 次乘法与 mp(n−1)mp(n-1) 次加法。这是数值线性代数与硬件优化长期关注的运算。
  • 计算视角的对照:把矩阵当纯计算对象处理的入门读物(例如《行列式入门》里讲「阵」的部分),可以与本讲的映射视角互补:一个回答「手怎么动」,一个回答「它到底是什么、为什么要这样算」。
  • 权威查证:Bronstein《数学手册》俄文第 10 版(1962)与英文第 6 版(2015)均收录矩阵运算的相关条目,可检索 "matrix multiplication / Matrizenmultiplikation / умножение матриц" 复核定义与性质。
术语提醒

「矩阵」与「线性映射」在固定基下一一对应,但不是同一个东西:同一个映射换一组基就换一个矩阵。
把这句话记住,下一讲讨论可逆与同构时会顺很多。

关于 Sylvester 与 Frobenius 两条不等式的出处(如实说明)

这两条在本地资料里没有成条出现:《行列式入门》全书 21 处「Sylvester」命中全部落在
附录 C.43「Sylvester 阵与结式」(那是多项式结式,与秩无关,搜关键词容易误入);
GTM135 中译的秩结论集中在第 2 章习题 2.9–2.13,也没有这两条的名字。
所以 3.10、3.11 的陈述与证明是按标准证法自行写出的,不是照抄某本书。

为核对陈述无误,另外查了两处公开文献(数学上是标准结果):

  • Sylvester:rank⁡(AB)≥rank⁡A+rank⁡B−n\operatorname{rank}(AB)\ge\operatorname{rank}A+\operatorname{rank}B-n,取等   ⟺  N(A)⊆R(B)\iff N(A)\subseteq R(B)
  • Frobenius:rank⁡(ABC)+rank⁡B≥rank⁡(AB)+rank⁡(BC)\operatorname{rank}(ABC)+\operatorname{rank}B\ge\operatorname{rank}(AB)+\operatorname{rank}(BC),
    取等   ⟺  \iff 存在 X,YX,Y 使 B=BCX+YABB=BCX+YAB(Tian–Styan 条件)

两条都与本讲 3.12 给出的取等判据一致。