什麼是矩陣的秩?
矩陣 \(A\) 的秩(rank)是指它所包含的最大線性獨立行向量數目,而這個數值恆等於最大線性獨立列向量的數目。從幾何角度來看,它就是由 \(A\) 的各列(或各行)所張成空間的維度。秩是線性代數中的通用概念,不會因國家或習慣不同而改變。順帶一提,在日文中這個概念稱為「階數(kaisuu)」,意義完全相同。
如何使用本計算器
先設定列數(\(m\))與行數(\(n\)),接著在文字框中逐列輸入矩陣元素。同一列的數值之間以逗號或空格分隔,不同列之間則以換行或分號分隔。「顯示精度」下拉選單只會影響運算過程中數值的顯示位數,對一般輸入而言並不會改變數學上的秩。按下計算後,工具會回報矩陣的秩、矩陣的形狀,以及該矩陣是否為滿秩。
公式與計算方法
本計算器採用部分主元(partial pivoting)的高斯消去法,將 \(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)$$$$\begin{gathered} \text{rank}(A) = \#\{\text{nonzero pivots in REF}(A)\} \\[1.5em] \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. \end{gathered}$$
範例演算
以 \(A = [[1, 2, 3], [2, 4, 6], [1, 0, 1]]\) 為例。第 2 列恰好是第 1 列的 2 倍,因此這兩列彼此線性相依。消去之後僅剩兩列非零的主元列,得到 \(\text{rank} = 2\)。相對地,\(3\times 3\) 的單位矩陣會產生三個主元,秩為 3;而任何全零矩陣的秩都是 0。
常見問題
秩有可能超過列數或行數嗎?不會。秩永遠不會大於 \(\min(m,\, n)\)。
滿秩(full rank)是什麼意思?當矩陣的秩等於 \(\min(m,\, n)\) 時,即稱為滿秩。對方陣而言,這代表它可逆,且行列式不為零。
為什麼要選最大的主元?部分主元法可避免被極小的數值相除,藉此把浮點運算的捨入誤差壓到最低,使秩的計算更為可靠。