矩阵的秩
矩阵与线性空间
对于一个 \(n \times m\) 的矩阵,我们把每一行看作一个 \(m\) 维向量,称这些向量为这个矩阵的 行向量。
同理,我们把每一列看作一个 \(n\) 维向量,称这些向量为这个矩阵的列向量。
以行向量作为生成子集的线性空间的维度称为这个矩阵的 行秩。类似地,我们有 列秩 的定义。
Theorem
对于任意一个矩阵,其行秩与列秩相等。
Proof
考虑对矩阵 \(A\) 进行初等行变换。
初等行变换分为三种:
- 交换矩阵不同的两行;
- 把矩阵的某一行乘上一个非 0 系数加到另一行上;
- 对某一行乘上一个非 0 系数。
其中第 2,3 种变换对应了行向量的向量加法与标量乘法。
这意味着无论如何对矩阵做初等行变换,行向量表出的线性空间保持不变。
类似于高斯消元,利用初等行变换将原矩阵转化为对角矩阵。
全为 0 的行表示 0 向量,无法表出除 0 向量以外的任意向量,且非 0 行组成的向量集合线性无关。
于是我们得到,矩阵的行秩就是对角矩阵的非 0 行个数。
可以发现,对于这个对角矩阵进行初等列变换,得到列秩也等于非 0 行个数。
接下来需要证明对一个矩阵进行初等行变换之后,列向量表出的线性空间的维度不变。
设 \(m\) 维向量集合 \(S=\{ a_1,a_2,a_3,...,a_n \}\) 与 \(m\) 维向量 \(b\)。
\(S\) 能够表出 \(b\),当且仅当存在一组 \(k_1,k_2,...k_n\),满足:
我们把这个方程组写为增广矩阵形式:
对这个矩阵进行初等行变换,不会对 \(k\) 是否存在产生影响。
设 \(S\) 变为 \(S'\),\(b\) 变为 \(b'\),\(T,T'\) 分别为 \(S,S'\) 表出的线性空间。
对于任意的 \(b\),若能被 \(S\) 表出,则对应的 \(b'\) 也一定能够被 \(S'\) 表出。故 \(T,T'\) 为一组双射。
不失一般性,删去 \(S\) 中若干个元素,使得 \(S\) 变为 \(T\) 的基底,重新产生对应的 \(S',T'\)。设 \(T'\) 的基底为 \(P\)。
假设 \(|S|<|P|\),则 \(|S'|<|P|\)。由基底的极小性,\(S'\) 不可能成为 \(T'\) 的生成子集,这与 \(T'\) 定义矛盾。故得到 \(|S|\geq |P|\)。
由初等行变换的可逆性,逆向地考虑,同理可得 \(|S| \leq |P|\)。
于是有 \(|S|=|P|\)。初等行变换不会影响列向量的维度。命题得证。
回到原来的对角矩阵,它的列秩就等于原矩阵的列秩。
我们最终得到,对于任意的矩阵,行秩和列秩分别对应了对角矩阵的行秩与列秩,二者相等。