MatrixCalc

簡約階段行列・掃き出し法・階数の計算機

任意の行列を簡約階段行列に変形し、R2 → R2 − 3·R1 の形で書かれた行基本変形をひとつずつ確認できます。連立方程式を解き、階数も求められます。

行列 A
: 3
: 3
行列 B
: 3
: 3
演算

下の手順を開くと完全な答えが表示されます。

結果
演算を選択するとここに結果が表示されます。エラーメッセージもここに表示されます。

ヒント: サイズを調整してください (最大 50×50)。A×B は Aの列数 = Bの行数が必要です。行列式/逆行列/トレース/べき乗は正方行列である必要があります。

React, Tailwind & shadcn/ui. No external math deps. — 日本語

行列を入力し、分解タブを開いて RREF(A) を押してください。計算過程の パネルがひとりでに開き、標準的な記法で各変形を並べます。そのままノートに書き写せますし、自分の答案が どこで食い違ったかも見つけられます。階段行列(A) を押せば普通の掃き出し法、rank(A) を押せば階数が得られます。三つとも同じアルゴリズムから出てくるもので、以下で 説明します。

三つの行基本変形

掃き出しは線形代数で最も役に立つアルゴリズムです。階数も、行列式も、逆行列も、連立方程式の解も、 すべてここから出てきます。土台となるのは三つの操作で、いずれももとの連立方程式の解集合を変えません。

  1. 2 行を入れ替える:R(i) ↔ R(j)
  2. ある行を 0 でないスカラー倍する:R(i) → k·R(i)
  3. ある行の定数倍を別の行に足す:R(i) → R(i) + k·R(j)

行を 0 倍することはこの一覧になく、許されてもいません。それは方程式を書き換えるのではなく壊してしまう からです。

階段行列

行列が階段行列であるとは、次を満たすことです。

  • すべてが 0 の行が最下部に並んでいる。
  • 各行の最初の 0 でない成分(主成分)が、一つ上の行の主成分より厳密に右にある。
  • 主成分の下がすべて 0 である。
21−1
032
005

簡約階段行列

簡約階段行列はさらに進みます。どの主成分も 1 であり、その列で 0 でない唯一の成分になります。そして 決定的なことに、どの行列にも簡約階段行列はちょうど一つしかありません。どんな順序で 変形したかに結果は左右されないのです。この一意性こそが、自分の計算を突き合わせる基準として信頼できる 理由です。

アルゴリズムの手順

  1. 左上から始めます。いまの列で絶対値が最大の成分を探します——これが部分ピボット選択で、丸め誤差を小さく保ちます。
  2. 列がすべて 0 なら、1 列右へ移ってやり直します。
  3. その行を主成分の位置へ入れ替えます。
  4. 主成分の行を主成分自身で割り、主成分を 1 にします。
  5. 主成分の行の定数倍をほかのすべての行から引き、その列の残りを 0 にします。
  6. 1 行下、1 列右へ移り、繰り返します。

手順 5 を主成分のの行だけに適用すれば掃き出し法と階段行列になります。上も片づければ ガウス・ジョルダン法と簡約階段行列になります。ガウス・ジョルダン法は計算量が増えますが、その代わり 後退代入なしで解が読めます。

例題

121
243
365
120
001
000

第 2 列には最後まで主成分が立たないので、その変数は自由変数です。そして零行は、第 3 の方程式が新しい 情報を持っていなかったことを裏づけています。この形から読み取ると、階数は 2 で、この係数行列を持つ 連立方程式は自由な媒介変数を一つ含む無限個の解を持ちます。

連立方程式を解く

連立方程式は拡大係数行列として入力します。方程式ごとに 1 行、未知数ごとに 1 列、 最後の列に定数項を置きます。3 元 1 次の連立方程式なら 3×4 の行列です。どの行基本変形も、定数項の列を 含めて行全体に適用されます。x + 2y − z = −4、2x + 3y − z = −11、−2x − 3z = 22 を例にとると、

12−1−4
23−1−11
−20−322
12−1−4
0−11−3
00−12

最後の行は −z = 2 と言っているので z = −2 です。上へ代入していくと y = 1、続いて x = −8 が得られます。 起こりうる三つの結末は、簡約形から読み取れます。

  • 解がただ一つ:係数行列のどの列にも主成分がある。
  • 解が無限個:主成分のない列がある——その変数は自由変数です。
  • 解なし0 0 0 | cc ≠ 0)という行が現れ、0 = c を主張している。

階数——残ったものを数える

行列の階数とは、線形独立な行の本数のことです。同じことですが、線形独立な列の本数でもあります。この 二つの数は常に一致し、それは名前がつくほど重要な事実です。行階数と列階数の一致定理と 呼ばれます。求めるには、行列を掃き出して 0 でない行を数えます。行基本変形が階数を変えることは決して ないので、この方法が成り立つのです。

123
456
579
123
0−3−6
000
階数 = 2

ここでは第 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 でない行を数える。行どうしの従属性は掃き出しが完了して初めて表に出ます。最後まで変形してから数えてください。

よくある質問

階段行列と簡約階段行列は何が違いますか。
階段行列は各主成分の下が 0 です。簡約階段行列はさらに主成分が 1 で、その上も 0 であることを求めます。一意なのは簡約階段行列のほうだけです。
掃き出し法とガウス・ジョルダン法は何が違いますか。
掃き出し法は階段行列で止め、最後に後退代入で解きます。ガウス・ジョルダン法は簡約階段行列まで進めるので解を直接読めますが、その分だけ計算量が増えます。
連立方程式はどう入力しますか。
拡大係数行列として入力します。方程式ごとに 1 行、未知数ごとに 1 列、最後の列に定数項を置きます。3 元 1 次の連立方程式なら 3×4 の行列になります。
結果に零行が出たら何を意味しますか。
その方程式がほかの方程式の組み合わせで、新しい情報を持たなかったということです。多くの場合、解は無限に存在します。
解が存在しないことはどう分かりますか。
左側がすべて 0 なのに定数項が 0 でない行があるかどうかで分かります。それは 0 = c を主張しており、矛盾しています。
簡約階段行列から階数は読めますか。
読めます。階数は簡約形における 0 でない行の本数です。計算機にはそれを行う専用の階数ボタンもあります。

ほかの計算機