行列を入力し、分解タブを開いて RREF(A) を押してください。計算過程の パネルがひとりでに開き、標準的な記法で各変形を並べます。そのままノートに書き写せますし、自分の答案が どこで食い違ったかも見つけられます。階段行列(A) を押せば普通の掃き出し法、rank(A) を押せば階数が得られます。三つとも同じアルゴリズムから出てくるもので、以下で 説明します。
三つの行基本変形
掃き出しは線形代数で最も役に立つアルゴリズムです。階数も、行列式も、逆行列も、連立方程式の解も、 すべてここから出てきます。土台となるのは三つの操作で、いずれももとの連立方程式の解集合を変えません。
- 2 行を入れ替える:
R(i) ↔ R(j) - ある行を 0 でないスカラー倍する:
R(i) → k·R(i) - ある行の定数倍を別の行に足す:
R(i) → R(i) + k·R(j)
行を 0 倍することはこの一覧になく、許されてもいません。それは方程式を書き換えるのではなく壊してしまう からです。
階段行列
行列が階段行列であるとは、次を満たすことです。
- すべてが 0 の行が最下部に並んでいる。
- 各行の最初の 0 でない成分(主成分)が、一つ上の行の主成分より厳密に右にある。
- 主成分の下がすべて 0 である。
| 2 | 1 | −1 |
| 0 | 3 | 2 |
| 0 | 0 | 5 |
簡約階段行列
簡約階段行列はさらに進みます。どの主成分も 1 であり、その列で 0 でない唯一の成分になります。そして 決定的なことに、どの行列にも簡約階段行列はちょうど一つしかありません。どんな順序で 変形したかに結果は左右されないのです。この一意性こそが、自分の計算を突き合わせる基準として信頼できる 理由です。
アルゴリズムの手順
- 左上から始めます。いまの列で絶対値が最大の成分を探します——これが部分ピボット選択で、丸め誤差を小さく保ちます。
- 列がすべて 0 なら、1 列右へ移ってやり直します。
- その行を主成分の位置へ入れ替えます。
- 主成分の行を主成分自身で割り、主成分を 1 にします。
- 主成分の行の定数倍をほかのすべての行から引き、その列の残りを 0 にします。
- 1 行下、1 列右へ移り、繰り返します。
手順 5 を主成分の下の行だけに適用すれば掃き出し法と階段行列になります。上も片づければ ガウス・ジョルダン法と簡約階段行列になります。ガウス・ジョルダン法は計算量が増えますが、その代わり 後退代入なしで解が読めます。
例題
| 1 | 2 | 1 |
| 2 | 4 | 3 |
| 3 | 6 | 5 |
| 1 | 2 | 0 |
| 0 | 0 | 1 |
| 0 | 0 | 0 |
第 2 列には最後まで主成分が立たないので、その変数は自由変数です。そして零行は、第 3 の方程式が新しい 情報を持っていなかったことを裏づけています。この形から読み取ると、階数は 2 で、この係数行列を持つ 連立方程式は自由な媒介変数を一つ含む無限個の解を持ちます。
連立方程式を解く
連立方程式は拡大係数行列として入力します。方程式ごとに 1 行、未知数ごとに 1 列、 最後の列に定数項を置きます。3 元 1 次の連立方程式なら 3×4 の行列です。どの行基本変形も、定数項の列を 含めて行全体に適用されます。x + 2y − z = −4、2x + 3y − z = −11、−2x − 3z = 22 を例にとると、
| 1 | 2 | −1 | −4 |
| 2 | 3 | −1 | −11 |
| −2 | 0 | −3 | 22 |
| 1 | 2 | −1 | −4 |
| 0 | −1 | 1 | −3 |
| 0 | 0 | −1 | 2 |
最後の行は −z = 2 と言っているので z = −2 です。上へ代入していくと y = 1、続いて x = −8 が得られます。 起こりうる三つの結末は、簡約形から読み取れます。
- 解がただ一つ:係数行列のどの列にも主成分がある。
- 解が無限個:主成分のない列がある——その変数は自由変数です。
- 解なし:
0 0 0 | c(c ≠ 0)という行が現れ、0 = c を主張している。
階数——残ったものを数える
行列の階数とは、線形独立な行の本数のことです。同じことですが、線形独立な列の本数でもあります。この 二つの数は常に一致し、それは名前がつくほど重要な事実です。行階数と列階数の一致定理と 呼ばれます。求めるには、行列を掃き出して 0 でない行を数えます。行基本変形が階数を変えることは決して ないので、この方法が成り立つのです。
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 5 | 7 | 9 |
| 1 | 2 | 3 |
| 0 | −3 | −6 |
| 0 | 0 | 0 |
ここでは第 3 行がちょうど第 1 行と第 2 行の和なので何も付け加えず、掃き出しによって 0 になります。 m×n の行列では 階数 ≤ min(m, n) であり、この上限に達する行列をフルランクと言います。正方行列では、フルランクであること、正則であること、行列式が 0 でないことの三つは、同じ性質の言い換えです。
階数はまた、連立方程式がそもそも解けるかどうかも決めます。ルーシェ・カペリの定理に よれば、Ax = b が解を持つのは rank(A) = rank([A | b]) のとき、かつその ときに限ります。この共通の階数が未知数の個数に等しければ解は一つに定まり、そうでなければ n − 階数 個の自由な媒介変数が残ります。対をなす等式が次元定理rank(A) + nullity(A) = n です。
よくある誤り
- 普通の階段行列で止める。各主成分の下だけを 0 にすれば階段行列です。簡約形は上も片づけます。
- 主成分を 1 にしないまま残す。簡約形は、各主成分の行をその主成分で割ることを要求します。
- 列を入れ替える。行の入れ替えは許されますが、列を入れ替えるとどの変数がどれかが変わってしまいます。
- 矛盾する行を見落とす。
0 0 0 | c(c ≠ 0)という行は、連立方程式に解がまったくないことを意味します。 - 零行を見て解なしと判断する。すべてが 0 の行は余分な方程式なので、解は無限にあります。解なしを意味するのは c が 0 でない
0 = cの場合だけです。 - 終わる前に 0 でない行を数える。行どうしの従属性は掃き出しが完了して初めて表に出ます。最後まで変形してから数えてください。