矩阵 A A A 的列空间维数叫列秩,行空间维数叫行秩。行秩与列秩总是相等(都等于主元个数),这个共同的数称为矩阵的秩,记作 rank ( A ) \operatorname{rank}(A) rank ( A ) 。
rank A = dim Col A = dim Row A = 行阶梯形矩阵的主元个数 \begin{aligned}\operatorname{rank}A&=\dim\operatorname{Col}A\\&=\dim\operatorname{Row}A\\&=\text{行阶梯形矩阵的主元个数}\end{aligned} rank A = dim Col A = dim Row A = 行阶梯形矩阵的主元个数 例 · 有三列,不代表秩就是 3 A = [ 1 0 1 0 1 1 ] A = \begin{bmatrix}1 & 0 & 1 \\ 0 & 1 & 1\end{bmatrix} A = [ 1 0 0 1 1 1 ] 它已经是行阶梯形,主元在第 1、2 列,共 2 个;第三列等于前两列之和,没有增加独立方向。因此 rank ( A ) = 2 \operatorname{rank}(A) = 2 rank ( A ) = 2 ,行、列空间的维数都为 2。
m × n m\times n m × n 矩阵的秩不会超过行数或列数。以行为例,最多有 m m m 个线性无关的行向量,因此 rank ( A ) ≤ m \operatorname{rank}(A)\le m rank ( A ) ≤ m ;对列同理,有 rank ( A ) ≤ n \operatorname{rank}(A)\le n rank ( A ) ≤ n 。零矩阵的秩为 0。列满秩表示所有列线性无关,行满秩表示所有行线性无关。对于 n × n n\times n n × n 方阵,秩为 n n n 时称它为满秩方阵。
0 ≤ rank ( A ) ≤ min { m , n } , 列满秩: rank ( A ) = n , 行满秩: rank ( A ) = m , 满秩方阵: A ∈ R n × n , rank ( A ) = n . \begin{gathered}
0\le\operatorname{rank}(A)\le\min\{m,n\},\\[.5em]
\text{列满秩:}\ \operatorname{rank}(A)=n,\\[.3em]
\text{行满秩:}\ \operatorname{rank}(A)=m,\\[.3em]
\text{满秩方阵:}\ A\in\mathbb R^{n\times n},\ \operatorname{rank}(A)=n.
\end{gathered} 0 ≤ rank ( A ) ≤ min { m , n } , 列满秩: rank ( A ) = n , 行满秩: rank ( A ) = m , 满秩方阵: A ∈ R n × n , rank ( A ) = n . 满秩方阵消元时每一列都有主元,因而能通过初等行变换化成单位矩阵。初等变换可逆,所以满秩方阵也可逆;反过来,可逆方阵也一定满秩。
秩还有一种行列式刻画:非零矩阵的秩等于其非零子式的最大阶数。行列式将在第五章正式介绍;这里先说明子式的选取方式。选出相同数目的行与列,按原顺序保留交叉位置上的元素,就得到一个方形子矩阵;这个方阵的行列式是一个数,称为相应的子式。
预览例 · 选取第 2、4、5 行与第 1、3、4 列 M ∗ = [ 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 ] M_* =\begin{bmatrix}0&0&0&0\\1&0&0&0\\0&0&0&0\\0&0&1&0\\0&0&0&2\end{bmatrix} M ∗ = 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 保留第 2、4、5 行与第 1、3、4 列相交处的元素,得到三阶方阵 S S S 。它的行列式记为 det S \det S det S ,也可以用竖线表示:
S = [ 1 0 0 0 1 0 0 0 2 ] , det S = ∣ 1 0 0 0 1 0 0 0 2 ∣ = 1 ⋅ 1 ⋅ 2 = 2 ≠ 0. \begin{gathered}
S=\begin{bmatrix}1&0&0\\0&1&0\\0&0&2\end{bmatrix},\\[.5em]
\det S=\begin{vmatrix}1&0&0\\0&1&0\\0&0&2\end{vmatrix}=1\cdot1\cdot2=2\ne0.
\end{gathered} S = 1 0 0 0 1 0 0 0 2 , det S = 1 0 0 0 1 0 0 0 2 = 1 ⋅ 1 ⋅ 2 = 2 = 0. 这里仅使用了对角方阵的行列式等于对角元素乘积这一规则。M ∗ M_* M ∗ 的第 1、3、4 列线性无关,第 2 列为零,所以从列空间也能直接看出它的秩为 3。子式判据与一般的行列式计算将在后面的行列式章节展开。
再看矩阵乘积的秩。设 A A A 是 m × n m\times n m × n 矩阵,B B B 是 n × p n\times p n × p 矩阵。把整列或整行当成一个块写出来,可以直接看清乘积的各列、各行从哪里来:
按列分块 A = [ a 1 ⋯ a n ] , B = [ b 1 ⋯ b p ] , A B = [ A b 1 ⋯ A b p ] , A b j = b 1 j a 1 + ⋯ + b n j a n . \begin{gathered}
A=\begin{bmatrix}a_1&\cdots&a_n\end{bmatrix},\qquad
B=\begin{bmatrix}b_1&\cdots&b_p\end{bmatrix},\\[.5em]
AB=\begin{bmatrix}Ab_1&\cdots&Ab_p\end{bmatrix},\\[.4em]
Ab_j=b_{1j}a_1+\cdots+b_{nj}a_n.
\end{gathered} A = [ a 1 ⋯ a n ] , B = [ b 1 ⋯ b p ] , A B = [ A b 1 ⋯ A b p ] , A b j = b 1 j a 1 + ⋯ + b nj a n . 按行分块 A = [ r 1 ⋮ r m ] , B = [ s 1 ⋮ s n ] , A B = [ r 1 B ⋮ r m B ] , r i B = a i 1 s 1 + ⋯ + a i n s n . \begin{gathered}
A=\begin{bmatrix}r_1\\\vdots\\r_m\end{bmatrix},\qquad
B=\begin{bmatrix}s_1\\\vdots\\s_n\end{bmatrix},\\[.5em]
AB=\begin{bmatrix}r_1B\\\vdots\\r_mB\end{bmatrix},\\[.4em]
r_iB=a_{i1}s_1+\cdots+a_{in}s_n.
\end{gathered} A = r 1 ⋮ r m , B = s 1 ⋮ s n , A B = r 1 B ⋮ r m B , r i B = a i 1 s 1 + ⋯ + a in s n . 因此,A B AB A B 的每一列都属于 A A A 的列空间,每一行都属于 B B B 的行空间;乘积的秩不会超过任意一个因子的秩。
矩阵乘积的秩 · 上界 Col ( A B ) ⊆ Col ( A ) Row ( A B ) ⊆ Row ( B ) rank ( A B ) ≤ min ( rank ( A ) , rank ( B ) ) \begin{gathered}\operatorname{Col}(AB) \subseteq \operatorname{Col}(A) \\ \operatorname{Row}(AB) \subseteq \operatorname{Row}(B)\\[.5em] \operatorname{rank}(AB) \le \min (\operatorname{rank}(A), \operatorname{rank}(B))\end{gathered} Col ( A B ) ⊆ Col ( A ) Row ( A B ) ⊆ Row ( B ) rank ( A B ) ≤ min ( rank ( A ) , rank ( B )) 即使 A A A 、B B B 的秩相同,乘积 A B AB A B 的秩也可能更小。把它看成先做 B B B 、再做 A A A :B B B 已经输出的某些非零方向,可能又被 A A A 送到零向量。这些方向就在 A A A 诱导映射的核中,下面简记这个核为 ker A \ker A ker A 。
复合映射:中间的方向可能被下一步消去 经过 B B B B x ∈ Col ( B ) Bx\in\operatorname{Col}(B) B x ∈ Col ( B ) 其中可能有非零向量落在 ker A \ker A ker A 中。
再经过 A A A A B x ∈ Col ( A B ) ABx\in\operatorname{Col}(AB) A B x ∈ Col ( A B ) 被送到零的方向不再增加独立输出。
当 B x ≠ 0 Bx\ne0 B x = 0 而 A ( B x ) = 0 A(Bx)=0 A ( B x ) = 0 时,B B B 输出的这个方向在复合后被消去了。下面的投影例子中,整个纵轴都会被消去。
例 · 两个秩为 1 的矩阵,乘积的秩为 0 A = [ 1 0 0 0 ] B = [ 0 0 0 1 ] A B = [ 0 0 0 0 ] \begin{gathered}A = \begin{bmatrix}1 & 0 \\ 0 & 0\end{bmatrix}\\[.5em] B = \begin{bmatrix}0 & 0 \\ 0 & 1\end{bmatrix}\\[.5em] AB = \begin{bmatrix}0 & 0 \\ 0 & 0\end{bmatrix}\end{gathered} A = [ 1 0 0 0 ] B = [ 0 0 0 1 ] A B = [ 0 0 0 0 ] rank ( A ) = rank ( B ) = 1 \operatorname{rank}(A) = \operatorname{rank}(B) = 1 rank ( A ) = rank ( B ) = 1 ,但 rank ( A B ) = 0 \operatorname{rank}(AB) = 0 rank ( A B ) = 0 。B B B 把所有输入投影到纵轴,A A A 又把纵轴上的向量全部变成零向量。
乘积的秩还有一个下界,称为 Sylvester 秩不等式。这里的 n n n 是中间空间的维数,即 A A A 的列数、B B B 的行数。若表达式给出的下界小于 0,还要结合秩至少为 0。
矩阵乘积的秩 · 上下界 rank A + rank B − n ≤ rank ( A B ) max { 0 , rank A + rank B − n } ≤ rank ( A B ) ≤ min { rank A , rank B } \begin{gathered}\operatorname{rank}A+\operatorname{rank}B-n\le\operatorname{rank}(AB)\\[.5em]\max\{0,\operatorname{rank}A+\operatorname{rank}B-n\}\\\le\operatorname{rank}(AB)\\\le\min\{\operatorname{rank}A,\operatorname{rank}B\}\end{gathered} rank A + rank B − n ≤ rank ( A B ) max { 0 , rank A + rank B − n } ≤ rank ( A B ) ≤ min { rank A , rank B } 可以从核来理解这个下界。令 r A = rank ( A ) r_A=\operatorname{rank}(A) r A = rank ( A ) 、r B = rank ( B ) r_B=\operatorname{rank}(B) r B = rank ( B ) 。在 B B B 的像中,所有会被 A A A 送到零向量的向量组成空间 K K K ;它也就是同时属于 Col ( B ) \operatorname{Col}(B) Col ( B ) 和 ker A \ker A ker A 的部分。记它的维数为 d d d :
K = { y ∈ Col ( B ) : A y = 0 } = Col ( B ) ∩ ker A , d = dim K . K=\{y\in\operatorname{Col}(B):Ay=0\}=\operatorname{Col}(B)\cap\ker A,\qquad d=\dim K. K = { y ∈ Col ( B ) : A y = 0 } = Col ( B ) ∩ ker A , d = dim K . 先取 K K K 的一组基,再把它补成 Col ( B ) \operatorname{Col}(B) Col ( B ) 的一组基。前 d d d 个基向量经 A A A 后变成零,其余 r B − d r_B-d r B − d 个基向量的像线性无关,并张成 Col ( A B ) \operatorname{Col}(AB) Col ( A B ) 。所以乘积的秩恰好是留下的独立方向数:
rank ( A B ) = r B − d . \operatorname{rank}(AB)=r_B-d. rank ( A B ) = r B − d . Sylvester 下界:最多能消去多少个独立方向 B B B 的像空间r B = rank ( B ) r_B=\operatorname{rank}(B) r B = rank ( B ) 先取被消去部分的基,再补齐整个像空间的基。
落在核中 →
被 A A A 消去 这些方向全在核中,d ≤ n − r A d\le n-r_A d ≤ n − r A 。
形成输出 →
留下的独立输出 rank ( A B ) = r B − d \operatorname{rank}(AB)=r_B-d rank ( A B ) = r B − d 补齐的其余基向量经 A A A 后仍给出独立输出。
B B B 原有 r B r_B r B 个独立输出方向;A A A 的核最多容纳 n − r A n-r_A n − r A 个独立方向。因此至少留下 r B − ( n − r A ) r_B-(n-r_A) r B − ( n − r A ) 个。
从消元看,齐次方程 A y = 0 Ay=0 A y = 0 有 n n n 个未知量和 r A r_A r A 个主元,因此核有 n − r A n-r_A n − r A 个独立方向;4.3 会具体说明这个计数。K K K 包含在核中,所以 d ≤ n − r A d\le n-r_A d ≤ n − r A ,代入上式就得到 rank ( A B ) ≥ r A + r B − n \operatorname{rank}(AB)\ge r_A+r_B-n rank ( A B ) ≥ r A + r B − n 。
特别地,左乘或右乘大小相容的可逆方阵(即满秩方阵),不会改变原矩阵的秩。可以用下面两种方式理解。
第一种方式用初等变换。根据 1.8 的矩阵与初等操作的对应关系,将可逆方阵 P P P 消元为单位矩阵,得到 E k ⋯ E 1 P = I E_k\cdots E_1P=I E k ⋯ E 1 P = I ,于是 P = E 1 − 1 ⋯ E k − 1 P=E_1^{-1}\cdots E_k^{-1} P = E 1 − 1 ⋯ E k − 1 ;逆操作仍是初等操作,所以 P P P 是若干初等矩阵的乘积。左乘这样的方阵,就是连续做初等行变换,行空间的维数不变;右乘则对应初等列变换,列空间的维数不变。
第二种方式用乘积秩的上界。设 P P P 是 m m m 阶可逆方阵、Q Q Q 是 n n n 阶可逆方阵,A A A 是 m × n m\times n m × n 矩阵。先应用上界,再利用逆矩阵写出反向不等式:
rank ( P A ) ≤ rank ( A ) , A = P − 1 ( P A ) ⟹ rank ( A ) ≤ rank ( P A ) ; rank ( A Q ) ≤ rank ( A ) , A = ( A Q ) Q − 1 ⟹ rank ( A ) ≤ rank ( A Q ) . \begin{aligned}
\operatorname{rank}(PA)&\le\operatorname{rank}(A),\\
A=P^{-1}(PA)&\ \Longrightarrow\ \operatorname{rank}(A)\le\operatorname{rank}(PA);\\[.6em]
\operatorname{rank}(AQ)&\le\operatorname{rank}(A),\\
A=(AQ)Q^{-1}&\ \Longrightarrow\ \operatorname{rank}(A)\le\operatorname{rank}(AQ).
\end{aligned} rank ( P A ) A = P − 1 ( P A ) rank ( A Q ) A = ( A Q ) Q − 1 ≤ rank ( A ) , ⟹ rank ( A ) ≤ rank ( P A ) ; ≤ rank ( A ) , ⟹ rank ( A ) ≤ rank ( A Q ) . rank ( P A ) = rank ( A Q ) = rank ( P A Q ) = rank A ( P , Q 可逆,大小相容 ) \begin{aligned}\operatorname{rank}(PA)&=\operatorname{rank}(AQ)\\&=\operatorname{rank}(PAQ)\\&=\operatorname{rank}A\\&\quad(P,Q\text{ 可逆,大小相容})\end{aligned} rank ( P A ) = rank ( A Q ) = rank ( P A Q ) = rank A ( P , Q 可逆,大小相容 ) 例 · 可逆乘法保持秩 A = [ 1 2 2 4 ] P = [ 1 0 1 1 ] P A = [ 1 2 3 6 ] A P = [ 3 2 6 4 ] \begin{gathered}A = \begin{bmatrix}1 & 2 \\ 2 & 4\end{bmatrix}\\[.5em] P = \begin{bmatrix}1 & 0 \\ 1 & 1\end{bmatrix}\\[.5em] PA = \begin{bmatrix}1 & 2 \\ 3 & 6\end{bmatrix}\\[.5em] AP = \begin{bmatrix}3 & 2 \\ 6 & 4\end{bmatrix}\end{gathered} A = [ 1 2 2 4 ] P = [ 1 1 0 1 ] P A = [ 1 3 2 6 ] A P = [ 3 6 2 4 ]