概要
MINVERSE 関数は、「行列の逆行列」を求める関数です。
数学でいうところの
を Excel 上で計算してくれるイメージです。
逆行列は、「元の行列と掛けると単位行列になる行列」です。
連立一次方程式をまとめて解いたり、行列を使ったモデル計算をしたりするときに使います。
MINVERSE 関数の基本
書式と意味
=MINVERSE(array)
array:逆行列を求めたい「正方行列」の範囲(2×2、3×3 など)
ポイントは次の 2 つです。
- 正方行列(行数=列数)でないといけない
- 逆行列が存在しない行列(行列式が 0 の行列)に対してはエラーになる
MINVERSE は、指定した範囲と同じサイズの「逆行列」を返します。
逆行列のイメージ
「掛けると元に戻す」役割
逆行列は、ざっくり言うと「掛けると元に戻すための行列」です。
例えば、行列 A を使ってベクトル x から y を作ったとします。
このとき、逆行列 (A^{-1}) があれば、
と、元の x を取り戻せます。
Excel では、
- A:MINVERSE で逆行列を求める
- x, y:MMULT で掛け算する
という流れで、行列を使った方程式を扱えます。
コード例(2×2 行列の逆行列)
2×2 行列の逆行列を求める
次のような 2×2 行列 A があるとします。
A1:B2 に行列 A を入力:
A1:1 B1:2
A2:3 B2:4
この 2×2 行列の逆行列 (A^{-1}) を求めたい場合、
結果を D1:E2 に出すとして、D1 に次の式を入力します。
=MINVERSE(A1:B2)
動的配列対応の Excel なら、そのまま Enter で D1:E2 に結果がスピルします。
古いバージョンでは、D1:E2 を選択 → 数式バーに式を入力 → Ctrl+Shift+Enter で配列数式として確定します。
数学的には、2×2 行列
の逆行列は、
となります。
MINVERSE は、この計算を内部で自動的に行ってくれます。
MINVERSE と MMULT の組み合わせ
逆行列が本当に正しいか確かめる
逆行列の定義は「掛けると単位行列になる」ことなので、
MINVERSE の結果が正しいかどうかは、MMULT で確かめられます。
先ほどの例で、A1:B2 に行列 A、D1:E2 に MINVERSE(A1:B2) の結果が入っているとします。
このとき、G1 に次の式を入れると、2×2 の単位行列が得られるはずです。
=MMULT(A1:B2, D1:E2)
結果は理論上、
1 0
0 1
という形になります(計算誤差で 0 が 1E-16 などの小さい値になることはあります)。
連立一次方程式を解く
例えば、次のような連立方程式を考えます。
これを行列で書くと、
となります。
ここで、A の逆行列があれば、
で解が求まります。
Excel では、
- A をセル範囲に入力
- b を縦ベクトルとしてセル範囲に入力
- MINVERSE で A の逆行列を求める
- MMULT で (A^{-1}) と b を掛ける
という流れで、連立方程式の解を一気に求められます。
MINVERSE を使うときの注意点
正方行列でないとエラー
MINVERSE の引数 array は、必ず「行数=列数」の正方行列である必要があります。
2×3 や 3×2 のような行列を渡すと #VALUE! エラーになります。
逆行列が存在しない場合(特異行列)
行列の行や列が「線形従属」になっている場合(行列式が 0 の場合)、逆行列は存在しません。
このような行列に MINVERSE を使うと、#NUM! エラーになります。
例えば、次のような 2×2 行列:
A1:1 B1:2
A2:2 B2:4
2 行目が 1 行目の 2 倍になっているので、行列式は 0 になり、逆行列は存在しません。
MINVERSE(A1:B2) は #NUM! になります。
例題
問題1
A1:B2 に次の行列 A が入っています。
A1:1 B1:2
A2:3 B2:4
この行列の逆行列を MINVERSE で求める式を書いてください。
また、結果の行列のサイズ(何行×何列)になるかも答えてください。
問題2
A1:C3 に 3×3 の正方行列が入っています。
この行列の逆行列を求める式を書いてください。
動的配列対応の Excel を前提として、どのセルに式を入力し、どの範囲に結果がスピルするかも説明してください。
問題3
A1:B2 に行列 A、D1:E2 に MINVERSE(A1:B2) の結果が入っているとします。
このとき、A×A⁻¹ が単位行列になることを確かめるための MMULT の式を書いてください。
また、その結果がどのような行列になるか説明してください。
問題4
A1:B2 に次の行列が入っています。
A1:1 B1:2
A2:2 B2:4
この行列に対して MINVERSE(A1:B2) を実行すると、どのような結果(エラーの種類)になるか、理由とともに答えてください。
問題5
MINVERSE を使わずに、2×2 行列
の逆行列を手計算で求めるときの公式を書いてみてください。
そのうえで、「この計算を毎回手でやる代わりに MINVERSE を使うメリット」を、自分の言葉で説明してみてください。
