この計算機でできること
このツールは、n×nの実正方行列 A の逆行列を計算します。逆行列 \(A^{-1}\) とは、\(A \times A^{-1}\) が単位行列 \(I\) に等しくなる、ただ一つの行列のことです。すべての行列に逆行列が存在するわけではありません。逆行列を持つのは、行列式が 0 でない正方行列(正則行列)に限られます。入力した行列が特異行列(非正則)の場合は、意味のない数値を返す代わりに、その旨をはっきりとお知らせします。
使い方
まずプルダウンから行列のサイズ \(n\) を選びます。これに応じて入力欄が n 行 n 列のグリッドに切り替わります。行列 A のすべてのセルに実数を入力してください。次に、結果に表示したい有効数字の桁数を選ぶと、逆行列・行列式・計算に用いた手法が表示されます。なお有効数字の設定は表示上の丸めにのみ影響し、内部計算には影響しません。計算は常に倍精度(double precision)で実行されます。
計算手法の解説
本計算機は、部分ピボット選択付きのLU分解を用いています。まず行列を \(PA = LU\) の形に分解します。ここで \(P\) は置換行列で、対角に最大のピボットが来るように行を入れ替える役割を持ちます(これにより数値的安定性が高まり、極端に小さな数で割る事態を避けられます)。\(L\) は対角成分がすべて 1 の下三角行列、\(U\) は上三角行列です。次に、単位行列の各列 \(e_k\) に対して、前進代入で \(L y = P e_k\) を解き、後退代入で \(U x = y\) を解きます。得られた \(x\) が \(A^{-1}\) の第 \(k\) 列となります。行列式は、U の対角成分の積に行置換の符号を掛けたものとして求まります。$$A^{-1} = \frac{1}{\det(A)}\,\operatorname{adj}(A), \qquad PA = LU \;\Rightarrow\; A^{-1} = U^{-1} L^{-1} P$$ $$\begin{gathered} P\,A = L\,U \quad\Longrightarrow\quad A^{-1} = U^{-1} L^{-1} P \\[1.5em] \det(A) = (-1)^{s}\prod_{k=1}^{n} U_{kk} \\[1.2em] \text{where}\quad \left\{ \begin{aligned} A &= \big[\,\text{n x n entries } a_{ij}\,\big] \\ s &= \text{number of row swaps (partial pivoting)} \\ A^{-1}_{\;\cdot,c} &: \; L\,y = P e_c,\;\; U x = y \end{aligned} \right. \end{gathered}$$
計算例
\(A = [[4, 3], [6, 3]]\) を考えます。行列式は \(4\times 3 - 3\times 6 = 12 - 18 = -6\) で、0 ではないため A は正則です。2×2行列の公式を使うと、$$A^{-1} = \frac{1}{\det} \times [[3, -3], [-6, 4]] = [[-0.5, 0.5], [1, -0.6666666667]]$$ となります。A にこの逆行列を掛けると単位行列に戻り、答えが正しいことが確認できます。
よくある質問
行列が特異(非正則)の場合はどうなりますか? 行列式が(ごく小さな許容誤差の範囲で)0 のときは逆行列が存在しないため、「特異/逆行列なし(singular / not invertible)」というメッセージを表示します。
なぜ余因子(余行列)の公式ではなくLU分解を使うのですか? 部分ピボット付きLU分解は、大きな行列に対して、計算コストが階乗的に増える余因子展開よりもはるかに数値的に安定しており、効率的だからです。
有効数字の設定は計算結果そのものを変えますか? いいえ。計算は常に高精度(フル精度)で行われ、設定は表示する有効桁数を変えるだけです。