行列のランク(階数)とは
行列 A のランク(階数)とは、その行列に含まれる一次独立な列ベクトルの最大本数のことで、これは一次独立な行ベクトルの最大本数とつねに一致します。幾何学的には、A の行(または列)が張る空間の次元を表します。これは線形代数における普遍的な概念であり、国や地域、慣習に依存しません。日本語では「行列のランク」または「階数(かいすう)」と呼ばれます。
計算機の使い方
まず行数 \(m\) と列数 \(n\) を設定し、テキストボックスに行列の成分を1行ずつ入力します。同じ行内の値はカンマまたはスペースで区切り、行どうしは改行またはセミコロンで区切ってください。表示精度(有効桁数)のプルダウンは計算過程の表示桁数を変えるだけで、通常の入力では数学的なランクの値そのものは変わりません。計算ボタンを押すと、ランクの値に加えて行列のサイズや、フルランクかどうかも表示されます。
公式と計算方法
本計算機は、部分ピボット選択を用いたガウスの消去法によって A を行階段形に変形します。ランクを 0 から始め、各列を順に調べます。各列では(数値的安定性のために)絶対値が最大となる候補行を選び、その値が微小な許容誤差を超えていれば、その行をピボットとして他のすべての行からその列を消去し、ランクを 1 増やします。ある列の候補がすべてほぼ 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倍に等しいため、この2つの行は一次従属です。消去を行うと非ゼロのピボット行は2本だけ残り、ランク = 2 となります。一方、\(3\times 3\) の単位行列ではピボットが3つ得られ、ランクは 3 です。また、すべての成分が 0 の零行列のランクは 0 です。
よくある質問
ランクが行数や列数を超えることはありますか? ありません。ランクは \(\min(m, n)\) より大きくなることはありません。
フルランクとは何ですか? ランクが \(\min(m, n)\) に等しいとき、その行列はフルランクであるといいます。正方行列の場合、これは行列が正則(逆行列をもつ)であり、行列式が 0 でないことを意味します。
なぜ絶対値が最大のピボットを使うのですか? 部分ピボット選択により、極端に小さな数で割る事態を避けられます。これによって浮動小数点演算の丸め誤差が小さく抑えられ、ランクの判定が信頼できるものになります。