逆行列とは?誰でも理解できるようにわかりやすく解説

逆行列とは、簡単に言うと、ある行列で線形変換した空間を元に戻す行列であり、その働きから行列における割り算のようなものと説明されることもあります。

線形代数において中心的かつ重要な概念であり、逆行列がなければできないような計算や処理も多々あります。

当ページでは、この逆行列について知っておくべきポイントのすべてを、誰にでもわかるように解説していきます。

ぜひ参考にして頂ければと思います。

目次

1. 逆行列の定義

いきなりですが、以下の短いアニメーションをご覧頂ください。このアニメーションでは最初に行列 \(A\) で線形変換を行い、次にその逆行列 \(A^{-1}\) で線形変換を行っています。これをご覧頂くと、逆行列とは何かを深く理解するための大きな助けとなります。

続いて、以下のアニメーションもご覧ください。\(3×3\) 行列 \(A\) で線形変換した後に、その逆行列 \(A^{-1}\) で線形変換を行っています。

このように行列 \(A\) で線形変換した後に、その逆行列 \(A^{-1}\) で線形変換をしたら空間は元に戻ります。これが逆行列です。

こうして逆行列を視覚的に理解しておけば、その定義もすんなりと理解できます。その定義とは、「行列 \(A\) とその逆行列 \(A^{-1}\) の積は単位行列 \(I\) になる」です。

これを式で表したものが以下です。

逆行列の定義

\[
A\times A^{-1} = A^{-1}\times A = I
\]

ポイント
逆行列 \(A^{-1}\) とは、行列 \(A\) で線形変換した空間を、元の空間に戻す行列のことです。これを式で表したものが、\(A\times A^{-1} = A^{-1}\times A = I\) です。

2. 逆行列の意義

それでは逆行列にはどのような意義があるのでしょうか。

以下のように行列 \(A\) にベクトル \(\vec{x}\) を入力したら \(\vec{y}\) が出力されます(行列とベクトルの積 \(A\vec{x}\) は \(\vec{y}\) になる)。

行列 \(A\) にベクトル \(\vec{x}\) を入力して \(\vec{y}\) を出力

\[A\vec{x}=\vec{y}\]

しかし往々にして、 \(\vec{y}\) から \(\vec{x}\) を求めたいという場合も出てきます。そういうときこそ、まさに逆行列の出番です。この場合、\(\vec{x}\) は次の計算で求めることができます。

逆行列 \(A^{-1}\) にベクトル \(\vec{y}\) を入力して \(\vec{x}\) を出力

\[A^{-1}\vec{y}=\vec{x}\]

つまり、行列 \(A\) の逆行列 \(A^{-1}\) とベクトル \(\vec{y}\) の積は、\(\vec{x}\) になるということです。

これを視覚的に表したものが以下のアニメーションです。

ベクトル \(\vec{x}\) を行列 \(A\) に入力するという操作は、言ってみれば、原因 \(x\) から結果 \(y\) を予測するということです。つまり、行列 \(A\) は結果を予測するための関数だと考えることができます。これに対して、逆行列 \(A^{-1}\) は、結果 \(y\) が先に与えられていて原因 \(x\) を推定したいというような場合のための関数なのです。

ちなみに、原因 \(x\) から結果 \(y\) を予測するような問題を「順問題」、結果 \(y\) から原因 \(x\) を推定するような問題を「逆問題」と呼んだりします。

ポイント

以下の式が逆行列の意義をそのまま表している重要なものです。

\[A\vec{x}=\vec{y} \leftrightarrow A^{-1}\vec{y}=\vec{x}\]

これは、原因 \(\vec{x}\) と関数 \(A\) が与えられている場合、結果 \(\vec{y}\) は、\(A\vec{x}=\vec{y}\) で予測できるということを表しています。一方で、結果 \(\vec{y}\) と関数 \(A^{-1}\) が与えられている場合、原因 \(\vec{x}\) は、\(A^{-1}\vec{y}=\vec{x}\) で推定することができます。つまり逆行列は、結果から原因を推定するための関数と考えることができます。

3. 逆行列の求め方

逆行列は以下の方法で求めることができます。

  • ① \(A\) と同じサイズの単位行列 \(I\) を右側に並べる。
  • ② 行列の基本変形を用いて \(A\) を単位行列 \(E\) に変換する。
  • ③ ②の結果、右側に出来た行列が\(A\)の逆行列\(A^{-1}\)である。

実際に、行列 \(A = \left[ \begin{array}{cc} 2 & 1 \\ 0 & 1 \end{array} \right]\) の逆行列を求めてみましょう。

まずは右側に単位行列を並べます。

\[\begin{eqnarray}
\left[ \begin{array}{cc|cc} 2 & 1 & 1 & 0 \\ 0 & 1 & 0 & 1 \end{array} \right]\
\end{eqnarray}\]

次に行列で連立方程式を解くのと同じように、行の基本変形を行って、左側を単位行列に変換していきます。

\[\begin{eqnarray}
\left[ \begin{array}{cc|cc} 2 & 1 & 1 & 0 \\ 0 & 1 & 0 & 1 \end{array} \right]
&\overset{\text{①}}{\Longrightarrow}&
\left[ \begin{array}{cc|cc} 2 & 0 & 1 & -1 \\ 0 & 1 & 0 & 1 \end{array} \right]
\hspace{3mm}
&①&1行目−2行目\\
&\overset{\text{②}}{\Longrightarrow}&
\left[ \begin{array}{cc|cc} 1 & 0 & 0.5 & -0.5 \\ 0 & 1 & 0 & 1 \end{array} \right]
\hspace{3mm}
&②&1行目 \times \dfrac{1}{2}\\
\end{eqnarray}\]

こうして左側を単位行列に変換したときに、右側にできる行列が \(A\) の逆行列 \(A^{-1}\)です。元の行列 \(A\) が何次行列だとしても、すべてこの方法で逆行列を求めることができます。

なぜ、この方法で求められるのかについては、線形代数を幾何学的に理解していれば、以下のアニメーションでピンとくるでしょう。

もしピンと来なかったとしても問題ありません。その場合は、以下の2つの記事に目を通して頂くと理解できるようになりますので、ぜひご覧ください。

4. 逆行列が存在しない場合

さて、ここまで解説してきたように逆行列とは、ある行列 \(A\) で線形変換した空間を元に戻す行列 \(A^{-1}\) のことです。そして、\(A\vec{x}=\vec{y}\) のとき \(A^{-1}\vec{y}=\vec{x}\) なので、これを使うと、結果 \(\vec{y}\) から原因 \(\vec{x}\) を推定するということが可能になります。

ただし、実はすべての行列に逆行列が存在するわけではありません。つまり、原因から結果を推測できても、結果から原因を推定できない場合があるということです。

そこで、ここでは、逆行列が存在するための条件と、その理解に役立つ概念を解説します。

4.1. 逆行列の存在条件

結論からお伝えすると、ある行列 \(A\) に逆行列 \(A^{-1}\) が存在するのは、その行列式 \(\mathrm{det}A\) の値が0以外の場合です(行列式については『行列式とは?意味と定義と求め方~行列式とは何か驚くほどよくわかる解説~』をご確認ください)。

まず行列式の値が0であるとは、どういうことでしょうか。まずは以下のアニメーションで視覚的に確認しましょう。

緑と赤の基底ベクトル \(\hat{\imath}, \hat{\jmath}\) のペアがもともと作っていた単位正方形の面積1が、線形変換によって0になってしまっています。逆行列とは空間を元に戻す行列です。しかし0には何を掛けても0なので、どのような行列を掛けたとしても、もう元の面積である1に戻すことはできません。

以上の理由から行列式の値が0になるような行列には逆行列は存在しません。

3次元以上の行列の場合も同じです。たとえば3次行列の行列式は3本の基底ベクトル \(\hat{\imath}, \hat{\jmath}, \hat{k}\) が作る立方体の体積の変化を表すものです。線形変換によって、この体積が0になった場合は、もう元の体積に戻すことはできません。

以下のアニメーションでご確認ください。

このように、逆行列が存在するのは、対象となる行列の行列式の値が0以外の場合なのです。

ポイント
逆行列が存在するのは、行列式の値が0以外の行列の場合です。行列式の値が0の行列には、逆行列は存在しません。

補足:線形独立と線形従属
別の表現をするなら、行列式の値が0以外であるということは、その行列の列ベクトル(または行ベクトル)を取ったときに、それらの列ベクトルがお互いに線形独立しているということです。一方で、行列式の値が0であるということは、列ベクトル(または行ベクトル)がお互いに線形従属しているということです。この点については、『ベクトルの一次独立とは?驚くほど理解できるアニメーション解説』で解説していますので、ぜひご覧になった上で考えてみてください。

4.2. 正則行列と非正則行列

なお、逆行列が存在する行列のことを「正則行列」と言います。一方で、逆行列が存在しない行列のことを「非正則行列」と言います。

これについては、『正則行列とは何かがアニメーションで驚くほどよくわかる解説』でも詳しく解説しているので、ぜひご覧になってみてください。

4.3. 行列の階数(ランク)とカーネル(核)

さらに深く行列を見ていくと、行列式の値が0の場合にも複数のパターンがあることがわかります。そのパターン把握に役立つのが、行列の階数(ランク)とカーネル(核またはゼロ空間)という概念です。

階数(ランク)は、その行列で線形変換をすると空間が何次元になるのかを示す値です。

カーネル(核・ゼロ空間)は、その行列で線形変換をしたときに、ゼロベクトルに収束する空間のことです。

これらについて詳しくは『行列の階数(ランク)とは何か?その意味と求め方をわかりやすく解説』で解説していますので、ぜひご確認ください。

5. 逆行列の性質

それでは最後に知っておきたい逆行列の性質を3つ解説します。

  • 行列の積の逆行列
  • 逆行列の逆行列
  • 転置行列の逆行列

それぞれ見ていきましょう。

5.1. 行列の積の逆行列

\(A\) と \(B\) がともに正則行列であるとき、その積 \(AB\) の逆行列 \(AB^{-1}\)は \(B^{-1}A^{-1}\) と等しくなります。

\[(AB)^{-1} = B^{-1}A^{-1}\]

例として以下の行列 \(A\) と \(B\) があるとします。

\[
A=
\left[ \begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array} \right],
\hspace{4mm}
B=
\left[ \begin{array}{cc} 2 & 0 \\ 1 & 1 \end{array} \right]
\]

この場合、これらの行列の積 \(AB\) とその逆行列\(AB^{-1}\) は以下のアニメーションで示している通りになります。

計算による確認
上のアニメーションの行列 \(AB\) やその逆行列 \((AB)^{-1}\) の数学的な計算方法を確認したい方は以下のボックスをクリックしてください。

計算を確認する

まずは行列 \(A\) と \(B\) の積 \(AB\) は次のように求めます。

\[\begin{eqnarray}
AB
&=&
\left[ \begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array} \right]
\left[ \begin{array}{cc} 2 & 0 \\ 1 & 1 \end{array} \right] \\
&=&
\left[ \begin{array}{cc}
0 \times 2 + 1 \times 1 & 0 \times 0 + 1 \times 1 \\
-1 \times 2 + 0 \times 1 & -1 \times 0 + 0 \times 0
\end{array} \right] \\
&=&
\left[ \begin{array}{cc}
1 & 1 \\
-2 & 0
\end{array} \right]
\end{eqnarray}\]

次に行列 \(AB\) の逆行列 \((AB)^{-1}\) は次のように求めます。

\[\begin{eqnarray}
\left[ \begin{array}{cc|cc}
1 & 1 & 1 & 0 \\
-2 & 0 & 0 & 1
\end{array} \right]
&\rightarrow&
\left[ \begin{array}{cc|cc}
1 & 1 & 1 & 0 \\
0 & 2 & 2 & 1
\end{array} \right] \\
&\rightarrow&
\left[ \begin{array}{cc|cc}
1 & 1 & 1 & 0 \\
0 & 1 & 1 & 0.5
\end{array} \right] \\
&\rightarrow&
\left[ \begin{array}{cc|cc}
1 & 0 & 0 & -0.5 \\
0 & 1 & 1 & 0.5
\end{array} \right] \\
\end{eqnarray}\]

このように行列 \(AB\) の逆行列 \((AB)^{-1}\)は最後の式の右項になります。行列と逆行列の積は常に単位行列になるので、これが逆行列であることは以下の式で確認することができます。

\[\begin{eqnarray}
(AB)^{-1}(AB)
&=&
\left[ \begin{array}{cc} 0 & -0.5 \\ 1 & 0.5 \end{array} \right]
\left[ \begin{array}{cc} 1 & 1 \\ -2 & 0 \end{array} \right] \\
&=&
\left[ \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right]
\end{eqnarray}\]

次に \(B^{-1}A^{-1}\) を確かめてみましょう。これは以下のアニメーションで示している通りです。

計算による確認
上のアニメーションの行列 \(A\)や \(B\) の逆行列と、その積 \(B^{-1}A^{-1}\) の数学的な計算方法を確認したい方は以下のボックスをクリックしてください。

計算を確認する

まず、\(A\) の逆行列 \(A^{-1}\) は次のように求めます。

\[\begin{eqnarray}
\left[ \begin{array}{cc|cc}
0 & 1 & 1 & 0 \\
-1 & 0 & 0 & 1
\end{array} \right]
&\rightarrow&
\left[ \begin{array}{cc|cc}
-1 & 0 & 0 & 1 \\
0 & 1 & 1 & 0
\end{array} \right] \\
&\rightarrow&
\left[ \begin{array}{cc|cc}
1 & 0 & 0 & -1 \\
0 & 1 & 1 & 0
\end{array} \right] \\
\end{eqnarray}\]

次に、\(B\) の逆行列 \(B^{-1}\) は次のように求めます。

\[\begin{eqnarray}
\left[ \begin{array}{cc|cc}
2 & 0 & 1 & 0 \\
1 & 1 & 0 & 1
\end{array} \right]
&\rightarrow&
\left[ \begin{array}{cc|cc}
1 & 0 & 0.5 & 0 \\
1& 1 & 0 & 1
\end{array} \right] \\
&\rightarrow&
\left[ \begin{array}{cc|cc}
1 & 0 & 0.5 & 0 \\
0 & 1 & -0.5 & 1
\end{array} \right] \\
\end{eqnarray}\]

そして、この二つの逆行列の積 \(B^{-1}A^{-1}\) は次のように求めます。

\[\begin{eqnarray}
B^{-1}A^{-1}
&=&
\left[ \begin{array}{cc} 0.5 & 0 \\ -0.5 & 1 \end{array} \right]
\left[ \begin{array}{cc} 0 & -1 \\ 1 & 0 \end{array} \right] \\
&=&
\left[ \begin{array}{cc}
0.5 \times 0 + 0 \times 1 & 0.5 \times -1 + 0 \times 0 \\
-0.5 \times 0 + 1 \times 1 & -0.5 \times -1 + 1 \times 0
\end{array} \right] \\
&=&
\left[ \begin{array}{cc} 0 & -0.5 \\1 & 0.5 \end{array} \right]
\end{eqnarray}\]

以上のことから、\((AB)^{-1}=B^{-1}A^{-1}\) であることがわかります。

\[
(AB)^{-1} = B^{-1}A^{-1}=\left[ \begin{array}{cc} 0 & -0.5 \\1 & 0.5 \end{array} \right]
\]

数学的な証明
\((AB)^{-1}=B^{-1}A^{-1}\) は、\(A\) と \(B\) が正則行列であれば、どのような行列に対しても成り立ちます。これが成り立つ数学的な証明は、以下のボックス内で解説しています。

数学的な証明を確認する

まず、単位行列を \(I\) とすると、逆行列の定義上、行列 \(A\) と \(B\) のそれぞれの逆行列に対する関係は以下の通りになります。

\[
A^{-1}A=AA^{-1}=I \\
B^{-1}B=BB^{-1}=I
\]

それでは次に \((B^{-1}A^{-1})(AB)\) の積を考えてみましょう。

もし \(AB\) の逆行列 \((AB)^{-1}\)が \(B^{-1}A^{-1}\) と等しいのなら、この積は結局、行列 \(AB\) とその逆行列 \(AB^{-1}\) を掛けていることになるため、その計算結果は単位行列 \(I\) になるはずです。

実際に計算してみると以下のようになります。

\[\begin{eqnarray}
B^{-1}(A^{-1}A)B & \rightarrow & B^{-1}IB \\
& \rightarrow & B^{-1}B \\
& \rightarrow & I
\end{eqnarray}\]

このように \((B^{-1}A^{-1})(AB)\) の積は単位行列 \(I\) になるのです。

念のため計算方法についても解説しておきます。まず行列の積は、並びが同じであれば、どこから計算しても解は同じになるという性質があります(参照:「行列の積(掛け算)とは何か?」)。そこで \(A^{-1}A\) から計算すると逆行列と行列の積は単位行列 \(I\) になるので、\(B^{-1}IB\) になります。次に、単位行列との積では値は何も変わらないので、この式は結局 \(B^{-1}B\)と同じことになります。そしてこれも逆行列と行列の積なので、最終的な計算結果は単位行列 \(I\) になります。

それでは \((AB)(B^{-1}A^{-1})\) はどうでしょうか。これも結局、以下のように単位行列 \(I\) になります。

\[\begin{eqnarray}
A(BB^{-1})A^{-1} & \rightarrow & AEA^{-1} \\
& \rightarrow & AA^{-1} \\
& \rightarrow & I
\end{eqnarray}\]

以上のことから、\(AB\) の逆行列 \((AB)^{-1}\) は \(B^{-1}A^{-1}\) と等しいことが証明されました。

5.2. 逆行列の逆行列

行列 \(A\) の逆行列 \(A^{-1}\) のさらに逆行列 \((A^{-1})^{-1}\) は元の行列 \(A\) と同じです。

\[(A^{-1})^{-1}=A\]

例として以下の行列 \(A\) とその逆行列 \(A^{-1}\) を見てみましょう。

\[
A=
\left[ \begin{array}{cc} -1 & 2 \\ -3 & 0 \end{array} \right],
\hspace{4mm}
B=
\left[ \begin{array}{cc} 0 & -1/3 \\ 0.5 & -1/3 \end{array} \right]
\]

この \(A\) と \(A^{-1}\) がお互いに逆行列の関係にあることは、以下のアニメーションで直感的に理解することができます。

数学的な証明
上のアニメーションで分かる通り、逆行列 \(A^{-1}\) の逆行列 \((A^{-1})^{-1}\) は明らかに元の行列 \(A\) です。この性質が、すべての逆行列に当てはまることの証明は以下のボックス内で行っています。

数学的な証明を確認する

まず、行列 \(A\) と逆行列 \(A^{-1}\) は以下の関係にあります。

\[
A^{-1}A = AA^{-1}=E
\]

この式の中の \(A\) を \((A^{-1})^{-1}\) に置き換えても、そのまま以下が成り立ちます。

\[
A^{-1}(A^{-1})^{-1} = (A^{-1})^{-1}A^{-1}=E
\]

このことから、\((A^{-1})^{-1}=A\) であることがわかります。

5.3. 転置行列の逆行列

転置行列の逆行列と、逆行列の転置行列は同じになります。

\[(A^T)^{-1}=(A^{-1})^T\]

例として以下の行列 \(A\) を用います。この行列を転置した \(A^T\) も示しておきます。

\[
A=
\left[ \begin{array}{cc} 2 & -2 \\ 3 & 1 \end{array} \right]
,\hspace{4mm}
A^T=
\left[ \begin{array}{cc} 2 & 3 \\ -2 & 1 \end{array} \right]
\]

この行列の逆行列を転置したもの \((A^{-1})^T\) と転置行列の逆行列 \((A^T)^{-1}\) は 同じものになります。少しでも理解の助けになるように、この点を以下のアニメーションで示しています。

このようにどちらも同じ値になります。

\[
(A^T)^{-1}=(A^{-1})^T=\left[ \begin{array}{cc}
0.125 & -0.375 \\
0.25 & 0.25 \end{array} \right]
\]

数学的な証明
それでは、なぜ転置行列の逆行列 \((A^T)^{-1}\) と逆行列を転置した行列 \((A^{-1})^T\) は同じになるのでしょうか?以下のボックス内でこれについての数学的な証明を解説しています。必要な方はクリックしてボックスを開いてからご覧ください。

数学的証明を確認する

行列 \(A\) が正則行列である場合、その逆行列 \(A^{-1}\) との間に以下の関係が成り立ちます(\(E\) を単位行列とする)。

\[
A^{-1}A=E \tag{1}
\]

\[
AA^{-1}=E \tag{2}
\]

さらに、正則行列 \(A\) と \(B\) がある場合、転置行列の性質上、以下の関係が成り立ちます。

\[
(AB)^T=B^{T}A^{T} \tag{3}
\]

まず \((3)\) 式を \((1)\) 式に対して適用すると、以下を導き出すことができます。

\[\begin{eqnarray}
E=A^{-1}A
\Longrightarrow
E^T&=&(A^{-1}A)^T \\
&=&
A^{T}(A^{-1})^{T}
\end{eqnarray}\]

次に \(3\) 式を \((2)\) 式に対して適用すると、以下を導き出すことができます。

\[\begin{eqnarray}
E=AA^{-1}
\Longrightarrow
E^T&=&(AA^{-1})^T \\
&=&
(A^{-1})^{T}A^{T}
\end{eqnarray}\]

これらをまとめると…

\[\begin{eqnarray}
(A^{-1})^{T}A^{T}=A^{T}(A^{-1})^T=E \tag{4}
\end{eqnarray}\]

となります。

この \((4)\) 式は \((A^{-1})^{T}\) と \(A^T\) が行列と逆行列の関係にあることを示しています。これによって \(A^T\) の逆行列 \((A^T)^{-1}\) は \((A^{-1})^{T}\) と等しいことが証明されました。

\[
(A^T)^{-1} = (A^{-1})^{T}
\]

6. まとめ

以上が逆行列です。あらためて重要ポイントをまとめておきましょう。

まず、逆行列 \(\vec{A}\) とは、ある行列 \(A\) で線形変換した空間を元に戻す行列のことです。

これにはどのような意義があるのでしょうか?

行列の重要な働きの一つに \(A\vec{x}=\vec{y}\) というように、関数(行列)\(A\) に原因因子である \(\vec{x}\) を入力して、結果である \(\vec{y}\) を得るというものがあります。これとは反対に、逆行列を使うと、結果 \(vec{y}\) から原因である \(\vec{x}\) を導き出すことができるのです。

これが逆行列です。

なお特徴として、逆行列は行列式の値が0以外の行列のみに存在します。行列式の値が0の行列には存在しません。

逆行列は線形代数において非常に重要な概念ですので、上で解説した求め方や性質・階数やカーネルなどの概念もあわせてしっかりと理解しておきましょう。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる