逆行列計算機

正方行列
結果

正方行列Aの逆は、A・A⁻¹ = Iとなる行列A⁻¹を指す。10×10以下の正方行列を入力すると、計算機はその行列に単位行列を加算し、部分ピボティング付きガウス・ヨルダン消去法を実行してA⁻¹を算出するとともに、実行したすべての行操作結果も返します。行列が特異(行列式=0)の場合、処理は中止され、消去過程で失敗した箇所が示されます。

逆行列の計算方法

  1. 1

    正方行列を入力してください

    行と列の数が同じです。2×2から10×10までです。

  2. 2

    ツールが可逆性を確認します

    まず det(A) を計算します。値が 0 の場合、この行列は特異であり逆行列が存在しません。

  3. 3

    単位行列で拡大する

    ブロック [A | I] を組み、ガウス・ヨルダン法に使用できる状態にします。

  4. 4

    行簡約して [I | A⁻¹] にする

    各行操作はログに記録され、右側のブロックが逆行列となります。

  5. 5

    確認する

    このツールは A・A⁻¹ を掛け合わせて結果を表示します。数値精度の範囲内では、この結果は単位行列となるはずです。

逆行列が存在する条件

正方行列 A が逆行列を持つのは、det(A) ≠ 0 が成り立つとき、かつそのときに限ります。同値な条件は次のとおりです。

  • 列が線形独立である。
  • 行が線形独立である。
  • 零空間が自明である(ゼロベクトルのみ)。
  • A がフルランクである(ランク = n)。
  • 線形方程式 Ax = b が任意の b に対して一意の解を持つ。

2×2 の公式

A = [[a, b], [c, d]] について:

A^−1 = (1 / (ad − bc)) · [[d, −b], [−c, a]]

対角成分を入れ替え、非対角成分の符号を反転し、行列式で割ります。

ガウス・ヨルダン法の全体像

開始:[A | I]

終了:[I | A^−1]

A を I に変換する行操作を I に適用すると、I は A⁻¹ に変わります。

部分ピボット選択が重要な理由

部分ピボット選択を行わないと、アルゴリズムは現在の行の対角成分をピボットに選びます。その成分が 0 または極めて小さいと、除算が破綻します。部分ピボット選択では絶対値が最大のピボットを持つ行を入れ替えるため、計算が数値的に安定します。

結果の検証

A · A⁻¹ を計算します。ほぼ単位行列が得られるはずです(わずかな数値誤差の範囲内)。対角成分が明らかに 1 からずれていたり、その他の成分が 0 からずれていたりする場合、その行列は特異行列に近く、数値的な逆行列は信頼できません。理論上は存在しますが、計算結果は多くの桁で誤っている可能性があります。

2×2 の計算例

A = [[4, 7], [2, 6]]

  • det(A) = 4·6 − 7·2 = 24 − 14 = 10(非ゼロなので可逆)。
  • 入れ替えて符号を反転:[[6, −7], [−2, 4]]
  • 10 で割る:A^−1 = [[0.6, −0.7], [−0.2, 0.4]]
  • 検証:A · A^−1 = [[1, 0], [0, 1]]。✓

ヒント

  • 厳密な有理数演算を使う。 小さい行列(2×2、3×3)ではきれいな分数を得るために厳密な有理数演算を使ってください。浮動小数点は単純な整数入力でも丸め誤差を生じます。
  • Ax = b を解くために逆行列を求めない。 本番コードでは、代わりに拡大係数行列 [A | b] を行簡約してください。逆行列を求めてから掛けるより速く、安定しています。
  • 条件数。 cond(A) が大きい場合(倍精度でおおむね >10^10)、逆行列は存在しても数値的には信頼できません。

よくある質問

「特異」とは行列式が 0 であることを意味し、列が線形従属である場合に生じます。すなわち、ある列が別の列の倍数であるか、あるいは他の 2 つの列の和である場合です。ゼロでない要素が存在しても、列が独立であるとは限りません。

いいえ。非正方行列には擬逆行列(ムーア・ペンローズの擬逆)が存在しますが、これらは任意の行列に対して定義されるものの真の逆行列ではありません。必要な場合は専用の擬逆計算ツールをご利用ください。

適切なサイズまでの整数入力の場合、はい、結果は有理数として保持されます。浮動小数または無理数値の場合は、計算機がダブル精度に切り替えます。

ブラウザで最大10×10のサイズを問題なく表示できます。それ以上のサイズ場合は、BLASと連携した数値ライブラリを使用してください。

ダブル精度算術における四捨五入。要素値は1の代わりに1.000000000000002となる場合があります。条件不良な行列では、ドリフトがさらに大きくなる可能性があります。正確な逆行列が必要な場合は、小規模な行列に対して「正確有理モード」を使用してください。

関連ツール

このツールは他の言語でも利用できます