秩 (线性代数)

在线性代数中，一个矩阵 $A$ 的列秩是列向量生成的最大线性无关组的向量个数。类似地，行秩是矩阵$A$ 的线性无关的横行的个数。矩阵的列秩和行秩总是相等的，因此它们可以简单地称作矩阵 $A$ 的秩（Rank）。通常表示为 $\mathrm{r}(A)$，$\mathrm{rank}(A)$ 或$\mathrm{rk}(A)$。

## 可替代定义

### 用行列式定义

设 $A$ 为 $m \times n$ 矩阵。若 $A$ 至少有一个 $r$ 阶非零子式，而其所有 $r+1$ 阶子式全为零，即矩阵的最高阶非零子式的阶数为r。则称 $r$ 为 $A$ 的秩。

### 用向量组的秩定义

对于 $m$ 维线性空间 $V$ 中的一个向量组 $F=\{\alpha _1 ,\alpha _2,...,\alpha _s\}$，若$F\supseteq S=\{\alpha _1 ,\alpha _2,...,\alpha _r\}$ 中的 $r$ 个向量线性无关，且若 $r<s$，$\forall \alpha _{r+1}\in F-S$，$S\cup \{\alpha _{r+1}\}$ 中 $r+1$ 个向量都线性相关，则称 $\{\alpha _1 ,\alpha _2,...,\alpha _r\}$ 为 $\{\alpha _1 ,\alpha _2,...,\alpha _s\}$ 的极大线性无关组，$r$ 为 $\{\alpha _1 ,\alpha _2,...,\alpha _s\}$ 的秩。可以证明 $F$ 的秩等于向量组 $F$ 生成的子空间的维数。

矩阵 $A$ 的列秩定义为 $A$ 的列向量组的秩，也即矩阵的列空间的维数。类似地，矩阵的行秩定义为 $A$ 的行向量组的秩，即矩阵的行空间的维数。

### 用线性映射定义

考虑线性映射：

$$f_A : F^n \to F^m$$

$$x \mapsto A \cdot x$$

对于每个矩阵 $A$，$f_A$ 都是一个线性映射，同时，对每个 $F^n \to F^m$ 的线性映射 $f$，都存在矩阵 $A$使得 $f=f_A$。也就是说，映射

$$\Phi : \mathcal{M}_n (\mathbb{K}) \to \mathcal{L}(F^n,F^m)$$

$$A \mapsto f_A$$

是一个同构映射。所以一个矩阵 $A$ 的秩还可定义为 $f_A$ 的像的维度（像与核的讨论参见线性映射）。矩阵 $A$ 称为 $f_A$ 的变换矩阵。这个定义的好处是适用于任何线性映射而不需要指定矩阵，因为每个线性映射有且仅有一个矩阵与其对应。秩还可以定义为 $n-f$ 的核的维度；秩-零化度定理证明它等于 $f$ 的像的维度。

## 行秩列秩相等性

矩阵的行秩与列秩相等，是线性代数基本定理的重要组成部分。其基本证明思路是，矩阵可以看作线性映射的变换矩阵，列秩为像空间的维度，行秩为非零原像空间的维度，因此列秩与行秩相等，即像空间的维度与非零原像空间的维度相等（这里的非零原像空间是指约去了零空间后的商空间：原像空间）。这从矩阵的奇异值分解就可以看出来。

给出这一结果的两种证明。第一个证明是简短的，仅用到向量的线性组合的基本性质。第二个证明利用了正交性。第一个证明利用了列空间的基, 第二个证明利用了行向量空间的基。第一个证明适用于定义在标量域上的矩阵，第二个证明适用于内积空间。二者都适用于实或复的欧氏空间，也都易于修改去证明当A是线性变换的情形。

### 证明一

令 $A$ 是一个 $m \times n$ 的矩阵，其列秩为 $r$ . 因此矩阵 $A$ 的列空间的维度是 $r$ . 令 $c_1,c_2,\ldots,c_r$ 是 $A$ 的列空间的一组基，构成 $m \times r$ 矩阵 $C$的列向量 $C = [c_1,c_2,\ldots,c_r]$，并使得 $A$ 的每个列向量是 $C$的$r$ 个列向量的线性组合. 由矩阵乘法的定义，存在一个 $r \times n$ 矩阵 $R$, 使得 $A = CR$. ($A$ 的 $(i,j)$ 元素是 $c_i$ 与 $R$ 的第 $j$ 个行向量的点积.)

现在，由于 $A = CR$, $A$ 的每个行向量是 $R$ 的行向量的线性组合，这意味着 $A$ 的行向量空间被包含于 $R$ 的行向量空间之中. 因此 $A$ 的行秩 ≤ $R$的行秩. 但$R$仅有$r$行, 所以$R$的行秩 ≤ $r$ = $A$的列秩. 这就证明了$A$的行秩 ≤ $A$的列秩.

把上述证明过程中的“行”与“列”交换，利用对偶性质同样可证$A$的列秩 ≤ $A$的行秩。更简单的方法是考虑$A$的转置矩阵$A^\mathrm{T}$，则$A$的列秩 = $A^\mathrm{T}$的行秩 ≤ $A^\mathrm{T}$的列秩 = $A$的行秩. 这证明了$A$的列秩等于$A$的行秩. 证毕.

### 证明二

令$A$是$m \times n$矩阵，其行秩是$r$. 因此$A$的行向量空间的维度是$r$，设$x_1, x_2,\ldots, x_r$是$A$的行向量空间的一组基. 如果把这组基当作原像列向量看待，则向量集$Ax_1, Ax_2,\ldots, Ax_r$是线性独立的。这是因为对一组标量系数$c_1,c_2,\ldots,c_r$，如果:

$$c_1 Ax_1 + c_2 Ax_2 + \cdots c_r Ax_r = A(c_1x_1 + c_2x_2 + \cdots + c_rx_r) = Av = 0,$$

其中$v = c_1x_1 + c_2x_2 + \ldots,c_r x_r$. 则可以推出有两个事实: (a) $v$是$A$行向量空间的线性组合, 即$v$属于$A$的行向量空间；(b) 由于$Av$ = 0, $v$正交于$A$的所有行向量，从而正交于$A$的行向量空间的所有向量. 事实(a)与(b)结合起来，则$v$正交于自身，这意味着$v$ = 0. 由$v$的定义:

$$c_1x_1 + c_2x_2 + \ldots,c_r x_r = 0.$$

再由$x_i$是$A$的行向量空间的一组线性独立的基，可知$c_1 = c_2 = \cdots = c_r = 0$. $Ax_1, Ax_2,\ldots, Ax_r$因而是线性独立的.

$Ax_i$是$A$的列空间中的向量. 因此$Ax_1, Ax_2,\ldots, Ax_r$是$A$的列空间中$r$个线性独立的向量. 所以$A$的列向量空间的维数($A$的列秩)必然不小于$r$. 这证明了$A$的行秩r ≤ $A$的列秩. 把这一结果应用于$A$的转置矩阵可以得到: $A$的列秩 = $A^\mathrm{T}$的行秩 ≤ $A^\mathrm{T}$列秩 = $A$的行秩. 这证明了$A$的列秩等于$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的秩的小者。即：
- $$\operatorname{rank}(AB) \leq \min(\operatorname{rank}\ A, \operatorname{rank}\ B).$$
- 推广到若干个矩阵的情况，就是：
- $$\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））。若干个矩阵的情况证明类似。
- 作为"<"情况的一个例子，考虑积
- $$\begin{bmatrix} <pre> 0 & 0 \\ 1 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 0 \\ 0 & 1 \\ \end{bmatrix}$$
- 两个因子都有秩1，而这个积有秩0。
- 可以看出，等号成立当且仅当其中一个矩阵（比如说A）对应的线性映射不减少空间的维度，即是单射，这时A是满秩的。于是有以下性质：
- 如果B是秩n的n × k矩阵，则
- $$\operatorname{rank}(AB) = \operatorname{rank}(A).$$
- 如果C是秩m的l × m矩阵，则
- $$\operatorname{rank}(CA) = \operatorname{rank}(A).$$
- A的秩等于r，当且仅当存在一个可逆m × m矩阵X和一个可逆的n × n矩阵Y使得
- $$XAY = <pre> \begin{bmatrix} I_r & 0 \\ 0 & 0 \\ \end{bmatrix}$$
- 这里的Ir指示r × r 单位矩阵。
- 证明可以通过高斯消去法构造性地给出。
- 西尔维斯特不等式: 如果 A 是一个 m × n 的矩阵且 B 是 n × k 的, 则
- $\operatorname{rank}(A) + \operatorname{rank}(B) - n \leq \operatorname{rank}(A B).$证明: 对不等式$\dim \operatorname{ker}(AB) \le \dim \operatorname{ker}(A) + \dim \operatorname{ker}(B)$使用秩－零化度定理
- 这是下一个不等式的特例.
- 这个不等式是由Frobenius提出的: 如果 AB, ABC 和 BC 有定义, 则
- $$\operatorname{rank}(AB) + \operatorname{rank}(BC) \le \operatorname{rank}(B) + \operatorname{rank}(ABC).$$
- 子加性：当矩阵$A$和$B$的形状相同时，有$\operatorname{rank}(A + B) \leq \operatorname{rank}(A) + \operatorname{rank}(B)$ . 因此，一个秩为k的矩阵能够表示成k个秩为1的矩阵的加和，但不能是k-1个或更少。
- 矩阵的秩加上矩阵的零化度等于矩阵的纵列数（这就是秩-零化度定理）。
- 如果 A 是实数上的矩阵，那么 A 的秩和它对应格拉姆矩阵的秩相等。于是，对于实矩阵
- $\operatorname{rank}(A^T A) = \operatorname{rank}(A A^T) = \operatorname{rank}(A) = \operatorname{rank}(A^T)$.
- 该性质可以通过它们的零空间证明. 格拉姆矩阵的零空间由所有满足 $A^T A x = 0$的向量$x$组成。如果上式成立, 那么下式也成立： $0 = x^T A^T A x = |A x|^2$，于是，$A x = 0$，即$A^T A$与$A$的零空间相同.
- 如果 A 是复数上的矩阵且 A* 表示 A 的共轭转置(i.e., A 的伴随), 则
- $$\operatorname{rank}(A) = \operatorname{rank}(\overline{A}) = \operatorname{rank}(A^T) = \operatorname{rank}(A^*) = \operatorname{rank}(A^*A).$$

### 向量组的线性相关性

将$m$个$n$维列向量排列成$n \times m$的矩阵A，这个对应矩阵的秩即为原向量组的秩。

原向量组线性相关的充分必要条件为：

$$r(A) < m$$

如果

$$r(A) = m$$

则向量组线性无关。另外，不存在

$$r(A) > m$$

特殊的，若向量的个数$m$大于向量的维数$n$，则根据：

$$r(A) \le n < m$$

这个向量组必然线性相关。

## 计算

计算矩阵A的秩的最容易的方式是高斯消去法，即利用矩阵的初等变换生成一个行阶梯形矩阵，由于矩阵的初等变换不改变矩阵的秩，因此A的行阶梯形矩阵有同A一样的秩。经过初等变换的矩阵的非零行的数目就是原矩阵的秩。

例如考虑4 × 4矩阵

$$A = <pre> \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 = <pre> \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）的。

在控制论中，矩阵的秩可以用来确定线性系统是否为可控制的，或可观察的。

## 参考文献

- 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 and System of Equations