Excel関数 逆引き集 | 逆行列 → MINVERSE

Excel
スポンサーリンク

概要

MINVERSE 関数は、「行列の逆行列」を求める関数です。
数学でいうところの

A1

を Excel 上で計算してくれるイメージです。

逆行列は、「元の行列と掛けると単位行列になる行列」です。

A×A1=I

連立一次方程式をまとめて解いたり、行列を使ったモデル計算をしたりするときに使います。


MINVERSE 関数の基本

書式と意味

=MINVERSE(array)

array:逆行列を求めたい「正方行列」の範囲(2×2、3×3 など)

ポイントは次の 2 つです。

  • 正方行列(行数=列数)でないといけない
  • 逆行列が存在しない行列(行列式が 0 の行列)に対してはエラーになる

MINVERSE は、指定した範囲と同じサイズの「逆行列」を返します。


逆行列のイメージ

「掛けると元に戻す」役割

逆行列は、ざっくり言うと「掛けると元に戻すための行列」です。

例えば、行列 A を使ってベクトル x から y を作ったとします。

y=Ax

このとき、逆行列 (A^{-1}) があれば、

x=A1y

と、元の 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 行列

A=(1234)

の逆行列は、

A1=1(1423)(4231)=12(4231)

となります。
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 などの小さい値になることはあります)。

連立一次方程式を解く

例えば、次のような連立方程式を考えます。

{a11x1+a12x2=b1a21x1+a22x2=b2

これを行列で書くと、

Ax=b

となります。
ここで、A の逆行列があれば、

x=A1b

で解が求まります。

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 行列

(abcd)

の逆行列を手計算で求めるときの公式を書いてみてください。
そのうえで、「この計算を毎回手でやる代わりに MINVERSE を使うメリット」を、自分の言葉で説明してみてください。

タイトルとURLをコピーしました