秩 (线性代数)

在线性代数中，一个矩阵 A {\displaystyle A} 的列秩是列向量生成的最大线性无关组的向量个数。类似地，行秩是矩阵 A {\displaystyle A} 的线性无关的横行的个数。矩阵的列秩和行秩总是相等的，因此它们可以简单地称作矩阵 A {\displaystyle A} 的秩（Rank）。通常表示为 r ( A ) {\displaystyle \mathrm {r} (A)} ， r a n k ( A ) {\displaystyle \mathrm {rank} (A)} 或 r k ( A ) {\displaystyle \mathrm {rk} (A)} 。 设 A {\displaystyle A} 为 m × n {\displaystyle m\times n} 矩阵。若 A {\displaystyle A} 至少有一个 r {\displaystyle r} 阶非零子式，而其所有 r + 1 {\displaystyle r+1} 阶子式全为零，即矩阵的最高阶非零子式的阶数为r。则称 r {\displaystyle r} 为 A {\displaystyle A} 的秩。 对于 m {\displaystyle m} 维线性空间 V {\displaystyle V} 中的一个向量组 F = { α 1 , α 2 , . . . , α s } {\displaystyle F=\{\alpha _{1},\alpha _{2},...,\alpha _{s}\}} ，若 F ⊇ S = { α 1 , α 2 , . . . , α r } {\displaystyle F\supseteq S=\{\alpha _{1},\alpha _{2},...,\alpha _{r}\}} 中的 r {\displaystyle r} 个向量线性无关，且若 r < s {\displaystyle r<s} ， ∀ α r + 1 ∈ F − S {\displaystyle \forall \alpha _{r+1}\in F-S} ， S ∪ { α r + 1 } {\displaystyle S\cup \{\alpha _{r+1}\}} 中 r + 1 {\displaystyle r+1} 个向量都线性相关，则称 { α 1 , α 2 , . . . , α r } {\displaystyle \{\alpha _{1},\alpha _{2},...,\alpha _{r}\}} 为 { α 1 , α 2 , . . . , α s } {\displaystyle \{\alpha _{1},\alpha _{2},...,\alpha _{s}\}} 的极大线性无关组， r {\displaystyle r} 为 { α 1 , α 2 , . . . , α s } {\displaystyle \{\alpha _{1},\alpha _{2},...,\alpha _{s}\}} 的秩。可以证明 F {\displaystyle F} 的秩等于向量组 F {\displaystyle F} 生成的子空间的维数。 矩阵 A {\displaystyle A} 的列秩定义为 A {\displaystyle A} 的列向量组的秩，也即矩阵的列空间的维数。类似地，矩阵的行秩定义为 A {\displaystyle A} 的行向量组的秩，即矩阵的行空间的维数。 考虑线性映射： f A : F n → F m {\displaystyle f_{A}:F^{n}\to F^{m}} x ↦ A ⋅ x {\displaystyle x\mapsto A\cdot x} 对于每个矩阵 A {\displaystyle A} ， f A {\displaystyle f_{A}} 都是一个线性映射，同时，对每个 F n → F m {\displaystyle F^{n}\to F^{m}} 的 线性映射 f {\displaystyle f} ，都存在矩阵 A {\displaystyle A} 使得 f = f A {\displaystyle f=f_{A}} 。也就是说，映射 Φ : M n ( K ) → L ( F n , F m ) {\displaystyle \Phi :{\mathcal {M}}_{n}(\mathbb {K} )\to {\mathcal {L}}(F^{n},F^{m})} A ↦ f A {\displaystyle A\mapsto f_{A}} 是一个同构映射。所以一个矩阵 A {\displaystyle A} 的秩还可定义为 f A {\displaystyle f_{A}} 的像的维度（像与核的讨论参见线性映射）。矩阵 A {\displaystyle A} 称为 f A {\displaystyle f_{A}} 的变换矩阵。这个定义的好处是适用于任何线性映射而不需要指定矩阵，因为每个线性映射有且仅有一个矩阵与其对应。秩还可以定义为 n − f {\displaystyle n-f} 的核的维度；秩-零化度定理声称它等于 f {\displaystyle f} 的像的维度。 矩阵的行秩与列秩相等，是线性代数基本定理的重要组成部分。其基本证明思路是，矩阵可以看作线性映射的变换矩阵，列秩为像空间的维度，行秩为非零原像空间的维度，因此列秩与行秩相等，即像空间的维度与非零原像空间的维度相等（这里的非零原像空间是指约去了零空间后的商空间：原像空间）。这从矩阵的奇异值分解就可以看出来。 给出这一结果的两种证明. 第一个证明是简短的，仅用到向量的线性组合的基本性质. 第二个证明利用了正交性. 第一个证明利用了列空间的基, 第二个证明利用了行向量空间的基. 第一个证明适用于定义在标量域上的矩阵，第二个证明适用于内积空间。二者都适用于实或复的欧氏空间，也都易于修改去证明当A是线性变换的情形. 令 A {\displaystyle A} 是一个 m × n {\displaystyle m\times n} 的矩阵，其列秩为 r {\displaystyle r} . 因此矩阵 A {\displaystyle A} 的列空间的维度是 r {\displaystyle r} . 令 c 1 , c 2 , … , c r {\displaystyle c_{1},c_{2},\ldots ,c_{r}} 是 A {\displaystyle A} 的列空间的一组基，构成 m × r {\displaystyle m\times r} 矩阵 C {\displaystyle C} 的列向量 C = [ c 1 , c 2 , … , c r ] {\displaystyle C=[c_{1},c_{2},\ldots ,c_{r}]} ，并使得 A {\displaystyle A} 的每个列向量是 C {\displaystyle C} 的 r {\displaystyle r} 个列向量的线性组合. 由矩阵乘法的定义，存在一个 r × n {\displaystyle r\times n} 矩阵 R {\displaystyle R} , 使得 A = C R {\displaystyle A=CR} . ( A {\displaystyle A} 的 ( i , j ) {\displaystyle (i,j)} 元素是 c i {\displaystyle c_{i}} 与 R {\displaystyle R} 的第 j {\displaystyle j} 个行向量的点积.) 现在，由于 A = C R {\displaystyle A=CR} , A {\displaystyle A} 的每个行向量是 R {\displaystyle R} 的行向量的线性组合，这意味着 A {\displaystyle A} 的行向量空间被包含于 R {\displaystyle R} 的行向量空间之中. 因此 A {\displaystyle A} 的行秩 ≤ R {\displaystyle R} 的行秩. 但 R {\displaystyle R} 仅有 r {\displaystyle r} 行, 所以 R {\displaystyle R} 的行秩 ≤ r {\displaystyle r} = A {\displaystyle A} 的列秩. 这就证明了 A {\displaystyle A} 的行秩 ≤ A {\displaystyle A} 的列秩. 把上述证明过程中的“行”与“列”交换，利用对偶性质同样可证 A {\displaystyle A} 的列秩 ≤ A {\displaystyle A} 的行秩。更简单的方法是考虑 A {\displaystyle A} 的转置矩阵 A T {\displaystyle A^{\mathrm {T} }} ，则 A {\displaystyle A} 的列秩 = A T {\displaystyle A^{\mathrm {T} }} 的行秩 ≤ A T {\displaystyle A^{\mathrm {T} }} 的列秩 = A {\displaystyle A} 的行秩. 这证明了 A {\displaystyle A} 的列秩等于 A {\displaystyle A} 的行秩. 证毕. 令 A {\displaystyle A} 是 m × n {\displaystyle m\times n} 矩阵，其行秩是 r {\displaystyle r} . 因此 A {\displaystyle A} 的行向量空间的维度是 r {\displaystyle r} ，设 x 1 , x 2 , … , x r {\displaystyle x_{1},x_{2},\ldots ,x_{r}} 是 A {\displaystyle A} 的行向量空间的一组基. 如果把这组基当作原像列向量看待，则向量集 A x 1 , A x 2 , … , A x r {\displaystyle Ax_{1},Ax_{2},\ldots ,Ax_{r}} 是线性独立的。 这是因为对一组标量系数 c 1 , c 2 , … , c r {\displaystyle c_{1},c_{2},\ldots ,c_{r}} ，如果: c 1 A x 1 + c 2 A x 2 + ⋯ c r A x r = A ( c 1 x 1 + c 2 x 2 + ⋯ + c r x r ) = A v = 0 , {\displaystyle c_{1}Ax_{1}+c_{2}Ax_{2}+\cdots c_{r}Ax_{r}=A(c_{1}x_{1}+c_{2}x_{2}+\cdots +c_{r}x_{r})=Av=0,} 其中 v = c 1 x 1 + c 2 x 2 + … , c r x r {\displaystyle v=c_{1}x_{1}+c_{2}x_{2}+\ldots ,c_{r}x_{r}} . 则可以推出有两个事实: (a) v {\displaystyle v} 是 A {\displaystyle A} 行向量空间的线性组合, 即 v {\displaystyle v} 属于 A {\displaystyle A} 的行向量空间；(b) 由于 A v {\displaystyle Av} = 0, v {\displaystyle v} 正交于 A {\displaystyle A} 的所有行向量，从而正交于 A {\displaystyle A} 的行向量空间的所有向量. 事实(a)与(b)结合起来，则 v {\displaystyle v} 正交于自身，这意味着 v {\displaystyle v} = 0. 由 v {\displaystyle v} 的定义: c 1 x 1 + c 2 x 2 + … , c r x r = 0. {\displaystyle c_{1}x_{1}+c_{2}x_{2}+\ldots ,c_{r}x_{r}=0.} 再由 x i {\displaystyle x_{i}} 是 A {\displaystyle A} 的行向量空间的一组线性独立的基，可知 c 1 = c 2 = ⋯ = c r = 0 {\displaystyle c_{1}=c_{2}=\cdots =c_{r}=0} . A x 1 , A x 2 , … , A x r {\displaystyle Ax_{1},Ax_{2},\ldots ,Ax_{r}} 因而是线性独立的. A x i {\displaystyle Ax_{i}} 是 A {\displaystyle A} 的列空间中的向量. 因此 A x 1 , A x 2 , … , A x r {\displaystyle Ax_{1},Ax_{2},\ldots ,Ax_{r}} 是 A {\displaystyle A} 的列空间中 r {\displaystyle r} 个线性独立的向量. 所以 A {\displaystyle A} 的列向量空间的维数( A {\displaystyle A} 的列秩)必然不小于 r {\displaystyle r} . 这证明了 A {\displaystyle A} 的行秩r ≤ A {\displaystyle A} 的列秩. 把这一结果应用于 A {\displaystyle A} 的转置矩阵可以得到: A {\displaystyle A} 的列秩 = A T {\displaystyle A^{\mathrm {T} }} 的行秩 ≤ A T {\displaystyle A^{\mathrm {T} }} 列秩 = A {\displaystyle A} 的行秩. 这证明了 A {\displaystyle A} 的列秩等于 A {\displaystyle A} 的行秩，证毕. 最后, 还可以证明rk(A) = rk(A*), 其中A*是A的共轭转置或称施密特转置. 当A的元素都是实数, 这一结果变为rk(A) = rk(AT). 然而对于复系数矩阵，rk(A) = rk(A*)并不等价于行秩等于列秩, 需要用到上述两个证明. 令A是一个m×n矩阵. 定义rk(A)为A的列秩，A*为A的共轭转置或称施密特转置. 首先可知A*Ax = 0当且仅当Ax = 0. A*Ax = 0 ⇒ x*A*Ax = 0 ⇒ (Ax)*(Ax) = 0 ⇒ ‖Ax‖2 = 0 ⇒ Ax = 0, 其中‖·‖是欧氏范数. 这说明A的零空间与A*A的零空间相同. 由秩－零化度定理, 可得rk(A) = rk(A*A). A*A的每一个列向量是A*的列向量的线性组合. 所以A*A的列空间是A*的列空间的子空间. 从而rk(A*A) ≤ rk(A*). 即: rk(A) = rk(A*A) ≤ rk(A*). 应用这一结果于A*可获得不等式: 由于(A*)* = A, 可写作rk(A*) ≤ rk((A*)*) = rk(A). 这证明了rk(A) = rk(A*). 证毕. 我们假定A是在域F上的m × n矩阵并描述了上述线性映射。 m × n矩阵的秩不大于m且不大于n的一个非负整数，表示為 rk(A) ≤ min(m, n)。有尽可能大的秩的矩阵被称为有满秩；类似的，否则矩阵是秩不足（或称为“欠秩”）的。 只有零矩阵有秩0 A的秩最大为min(m,n) f是单射，当且仅当A有秩n（在这种情况下，我们称A有“列满秩”）。 f是满射，当且仅当A有秩m（在这种情况下，我们称A有“行满秩”）。 在方块矩阵A (就是m = n)的情况下，则A是可逆的，当且仅当A有秩n（也就是A有满秩）。 如果B是任何n × k矩阵，则AB的秩最大为A的秩和B的秩的小者。即： rank ⁡ ( A B ) ≤ min ( rank ⁡   A , rank ⁡   B ) . {\displaystyle \operatorname {rank} (AB)\leq \min(\operatorname {rank} \ A,\operatorname {rank} \ B).} 推广到若干个矩阵的情况，就是： rank ⁡ ( A 1 A 2 ⋯ A n ) ≤ min ( rank ⁡   A 1 , rank ⁡   A 2 , ⋯ , rank ⁡   A n ) . {\displaystyle \operatorname {rank} (A_{1}A_{2}\cdots A_{n})\leq \min(\operatorname {rank} \ A_{1},\operatorname {rank} \ A_{2},\cdots ,\operatorname {rank} \ A_{n}).} 证明： 考虑矩阵的秩的线性映射的定义，令A、B对应的线性映射分别为f和g，则AB表示复合映射f·g，它的象Im f·g是g的像Im g在映射f作用下的象。然而Im g是整个空间的一部分，因此它在映射f作用下的象也是整个空间在映射f作用下的象的一部分。也就是说映射Im f·g是Im f的一部分。对矩阵就是：秩（AB）≤秩（A）。 对于另一个不等式：秩（AB）≤秩（B），考虑Im g的一组基：（e1，e2，...，en），容易证明（f(e1)，f(e2)，...，f(en)）生成了空间Im f·g，于是Im f·g的维度小于等于Im g的维度。对矩阵就是：秩（AB）≤秩（B）。 因此有：秩（AB）≤min(秩（A），秩（B））。若干个矩阵的情况证明类似。 作为"<"情况的一个例子，考虑积 [ 0 0 1 0 ] [ 0 0 0 1 ] {\displaystyle {\begin{bmatrix}0&0\\1&0\\\end{bmatrix}}{\begin{bmatrix}0&0\\0&1\\\end{bmatrix}}} 两个因子都有秩1，而这个积有秩0。 可以看出，等号成立当且仅当其中一个矩阵（比如说A）对应的线性映射不减少空间的维度，即是单射，这时A是满秩的。于是有以下性质： 如果B是秩n的n × k矩阵，则 rank ⁡ ( A B ) = rank ⁡ ( A ) . {\displaystyle \operatorname {rank} (AB)=\operatorname {rank} (A).} 如果C是秩m的l × m矩阵，则 rank ⁡ ( C A ) = rank ⁡ ( A ) . {\displaystyle \operatorname {rank} (CA)=\operatorname {rank} (A).} A的秩等于r，当且仅当存在一个可逆m × m矩阵X和一个可逆的n × n矩阵Y使得 X A Y = [ I r 0 0 0 ] {\displaystyle XAY={\begin{bmatrix}I_{r}&0\\0&0\\\end{bmatrix}}} 这裡的Ir指示r × r 单位矩阵。 证明可以通过高斯消去法构造性地给出。 西尔维斯特不等式: 如果 A 是一个 m × n 的矩阵且 B 是 n × k 的, 则 rank ⁡ ( A ) + rank ⁡ ( B ) − n ≤ rank ⁡ ( A B ) . {\displaystyle \operatorname {rank} (A)+\operatorname {rank} (B)-n\leq \operatorname {rank} (AB).} 这是下一个不等式的特例. 这个不等式是由Frobenius提出的: 如果 AB, ABC 和 BC 有定义, 则 rank ⁡ ( A B ) + rank ⁡ ( B C ) ≤ rank ⁡ ( B ) + rank ⁡ ( A B C ) . {\displaystyle \operatorname {rank} (AB)+\operatorname {rank} (BC)\leq \operatorname {rank} (B)+\operatorname {rank} (ABC).} 子加性：当矩阵 A {\displaystyle A} 和 B {\displaystyle B} 的形状相同时，有 rank ⁡ ( A + B ) ≤ rank ⁡ ( A ) + rank ⁡ ( B ) {\displaystyle \operatorname {rank} (A+B)\leq \operatorname {rank} (A)+\operatorname {rank} (B)} . 因此，一个秩为k的矩阵能够表示成k个秩为1的矩阵的加和，但不能是k-1个或更少。 矩阵的秩加上矩阵的零化度等于矩阵的纵列数（这就是秩-零化度定理）。 如果 A 是实数上的矩阵，那么 A 的秩和它对应格拉姆矩阵的秩相等。于是，对于实矩阵 rank ⁡ ( A T A ) = rank ⁡ ( A A T ) = rank ⁡ ( A ) = rank ⁡ ( A T ) {\displaystyle \operatorname {rank} (A^{T}A)=\operatorname {rank} (AA^{T})=\operatorname {rank} (A)=\operatorname {rank} (A^{T})} . 该性质可以通过它们的零空间证明. 格拉姆矩阵的零空间由所有满足 A T A x = 0 {\displaystyle A^{T}Ax=0} 的向量 x {\displaystyle x} 组成。如果上式成立, 那么下式也成立： 0 = x T A T A x = | A x | 2 {\displaystyle 0=x^{T}A^{T}Ax=|Ax|^{2}} ，于是， A x = 0 {\displaystyle Ax=0} ，即 A T A {\displaystyle A^{T}A} 与 A {\displaystyle A} 的零空间相同. 如果 A 是复数上的矩阵且 A* 表示 A 的共轭转置(i.e., A 的伴随), 则 rank ⁡ ( A ) = rank ⁡ ( A ¯ ) = rank ⁡ ( A T ) = rank ⁡ ( A ∗ ) = rank ⁡ ( A ∗ A ) . {\displaystyle \operatorname {rank} (A)=\operatorname {rank} ({\overline {A}})=\operatorname {rank} (A^{T})=\operatorname {rank} (A^{*})=\operatorname {rank} (A^{*}A).} 将 m {\displaystyle m} 个 n {\displaystyle n} 维列向量排列成 n × m {\displaystyle n\times m} 的矩阵A，这个对应矩阵的秩即为原向量组的秩。 原向量组线性相关的充分必要条件为： r ( A ) < m {\displaystyle r(A)<m} 如果 r ( A ) = m {\displaystyle r(A)=m} 则向量组线性无关。另外，不存在 r ( A ) > m {\displaystyle r(A)>m} 特殊的，若向量的个数 m {\displaystyle m} 大于向量的维数 n {\displaystyle n} ，则根据： r ( A ) ≤ n < m {\displaystyle r(A)\leq n<m} 这个向量组必然线性相关。 计算矩阵A的秩的最容易的方式是高斯消去法，即利用矩阵的初等变换生成一个行阶梯形矩阵，由于矩阵的初等变换不改变矩阵的秩，因此A的行阶梯形矩阵有同A一样的秩。经过初等变换的矩阵的非零行的数目就是原矩阵的秩。 例如考虑4 × 4矩阵 A = [ 2 4 1 3 − 1 − 2 1 0 0 0 2 2 3 6 2 5 ] {\displaystyle A={\begin{bmatrix}2&4&1&3\\-1&-2&1&0\\0&0&2&2\\3&6&2&5\\\end{bmatrix}}} 我们看到第2纵列是第1纵列的两倍，而第4纵列等于第1和第3纵列的总和。第1和第3纵列是线性无关的，所以A的秩是2。这可以用高斯算法验证。它生成下列A的行阶梯形矩阵: A = [ 1 2 0 1 0 0 1 1 0 0 0 0 0 0 0 0 ] {\displaystyle A={\begin{bmatrix}1&2&0&1\\0&0&1&1\\0&0&0&0\\0&0&0&0\\\end{bmatrix}}} 它有两个非零的横行。 在应用在计算机上的浮点数的时候，基本高斯消去（LU分解）可能是不稳定的，应当使用秩启示（revealing）分解。一个有效的替代者是奇异值分解（SVD），但还有更少代价的选择，比如有支点（pivoting）的QR分解，它也比高斯消去在数值上更强壮。秩的数值判定要求对一个值比如来自SVD的一个奇异值是否为零的依据，实际选择依赖于矩阵和应用二者。 计算矩阵的秩的一个有用应用是计算线性方程组解的数目。如果系数矩阵的秩等于增广矩阵的秩，则该方程组有解。在这种情况下，如果它的秩等于方程的数目那么该方程组有唯一的一个精确解。如果增广矩阵的秩大于系数矩阵的秩，则方程组是不一致（Inconsistent）的。 在控制论中，矩阵的秩可以用来确定线性系统是否为可控制的，或可观察的。 证明: 对不等式 dim ⁡ ker ⁡ ( A B ) ≤ dim ⁡ ker ⁡ ( A ) + dim ⁡ ker ⁡ ( B ) {\displaystyle \dim \operatorname {ker} (AB)\leq \dim \operatorname {ker} (A)+\dim \operatorname {ker} (B)} 使用秩－零化度定理 证明：商空间之间的映射C: ker(ABC) / ker(BC) → ker(AB) / ker(B)有定义且为单射。因此我们得到了关于核维数关系的不等式dim ker(ABC)-dim ker(BC) ≤ dim ker(AB) - dim ker(B), 利用秩-零化度定理即可得到结论（即dim ker(ABC)-dim ker(BC)=rank(BC)-rank(ABC), 右边同理）。或者也可以这么证明：假如M是一个子线性空间，A是线性映射，那么dim(A(M)) ≤ dim(M) (*); 记映射BC（注意先进行C映射后进行B映射）的像为im(BC), 映射B的像为im(B), 则im(BC)⊆im(B), 取im(B)中im(BC)的正交补（不一定要正交，构成直和关系即可，这里取正交补只是为了方便）记为D, 则dim(D) = rk(B) – rk(BC); 而由线性映射的规律知im(AB) = AD + im(ABC), 但不一定再是直和，即dim(AD) + rk(ABC) ≥ rk(AB), 利用不等式(*)可得dim(D)[=rk(B) – rk(BC)] + rk(ABC) ≥ rk(AB), 从而得证。 Mackiw, G. (1995). A Note on the Equality of the Column and Row Rank of a Matrix. Mathematics Magazine, Vol. 68, No. 4 Mirsky, Leonid. An introduction to linear algebra. Dover Publications. 1955. ISBN 978-0-486-66434-7.  Horn, Roger A. and Johnson, Charles R. Matrix Analysis. Cambridge University Press, 1985. ISBN 978-0-521-38632-6. Kaw, Autar K. Two Chapters from the book Introduction to Matrix Algebra: 1. Vectors [1] and System of Equations [2] 向量组的秩