什么是矩阵的秩?
矩阵 \(A\) 的秩是指它所包含的线性无关列向量的最大数量,这个数值始终等于其线性无关行向量的最大数量。从几何角度看,它就是由 \(A\) 的行(或列)所张成空间的维数。这是线性代数中的一个通用概念,不依赖于任何地区或约定。在日语中,同样的概念被称为「階数(かいすう)」。
如何使用本计算器
先设置行数(\(m\))和列数(\(n\)),然后在文本框中逐行输入矩阵的各个元素。同一行内的数值用逗号或空格分隔,不同行之间用换行或分号分隔。「显示精度」下拉菜单仅控制运算过程中数值的显示位数,对于一般输入并不会改变最终的数学秩。点击计算后,工具会给出矩阵的秩、矩阵的形状,以及该矩阵是否为满秩。
公式与算法
本计算器采用带部分主元选取的高斯消元法,将 \(A\) 化简为行阶梯形。算法从 rank = 0 开始,逐列扫描;在每一列中,它会选取绝对值最大的候选行(以保证数值稳定性),如果该值超过一个很小的容差,就把这一行作为主元行,将该列从其他所有行中消去,并使秩加一。如果某一列的候选元素全部接近于零,则该列不产生主元。最终统计出的主元个数即为矩阵的秩,它始终满足 \(0 \le \text{rank} \le \min(m,\, n)\)。
$$\text{rank}(A) = \dim\!\big(\text{span of pivot rows of }\text{Matrix }A\big) \le \min\!\left(m,\; n\right)$$
$$\text{rank}(A) = \#\{\text{nonzero pivots in REF}(A)\}$$
$$\text{where}\quad \left\{ \begin{aligned} A &= \text{Matrix entries} \;(m \times n) \\ \text{tol} &= 10^{-12}\cdot \max_{i,j}\lvert a_{ij}\rvert \\ \text{rank}(A) &\le \min(m,\, n) \end{aligned} \right.$$
计算示例
取 \(A = [[1, 2, 3], [2, 4, 6], [1, 0, 1]]\)。第 2 行恰好等于第 1 行的 2 倍,因此这两行线性相关。消元之后只剩下两个非零主元行,于是秩 = 2。相比之下,\(3\times 3\) 的单位矩阵会产生三个主元,秩为 3;而任意全零矩阵的秩则为 0。
常见问题
矩阵的秩会超过行数或列数吗?不会。秩永远不会大于 \(\min(m, n)\)。
满秩是什么意思?当矩阵的秩等于 \(\min(m, n)\) 时,称该矩阵为满秩。对于方阵而言,这意味着它可逆,且行列式不为零。
为什么要选取绝对值最大的主元?部分主元选取可以避免除以极小的数,从而把浮点舍入误差控制在很小的范围内,使秩的计算结果更加可靠。