逆行列の求め方

ちょっと技術的な内容かな? まぁ試験には必ず出るようなことだし。

[
前の記事へ]  [物理数学の目次へ]  [次の記事へ]


逆行列の公式

 逆行列を導く方法を考えてみよう。まず既知の行列を\( A \)とする。\( A \)の逆行列\( A^{-1} \)は未知なので、ここでは\( X \)と表現してみよう。すると、\( AX = E \)という条件を満たす行列\( X \)を求めればいいということになる。

 とりあえず雰囲気をつかむために 3 次の正方行列を例にして話をしよう。このやり方が一般の\( n \)次の場合にも通用することはいずれすぐに分かってもらえるだろう。今の状況を具体的に書き表すと次のような具合だ。

\[ \begin{align*} \left( \begin{array}{rrr} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right) \left( \begin{array}{rrr} x\sub{11} & x\sub{12} & x\sub{13} \\[4pt] x\sub{21} & x\sub{22} & x\sub{23} \\[4pt] x\sub{31} & x\sub{32} & x\sub{33} \end{array} \right) \ =\ \left( \begin{array}{rrr} 1 & 0 & 0 \\[4pt] 0 & 1 & 0 \\[4pt] 0 & 0 & 1 \end{array} \right) \tag{1} \end{align*} \]
 行列の積の計算ルールを考えると、この (1) 式の計算は次の三つに分けて計算することができる。
\[ \begin{align*} \left( \begin{array}{rrr} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right) \left( \begin{array}{r:r:r} x\sub{11} & x\sub{12} & x\sub{13} \\[4pt] x\sub{21} & x\sub{22} & x\sub{23} \\[4pt] x\sub{31} & x\sub{32} & x\sub{33} \end{array} \right) \ =\ \left( \begin{array}{r:r:r} 1 & 0 & 0 \\[4pt] 0 & 1 & 0 \\[4pt] 0 & 0 & 1 \end{array} \right) \end{align*} \]
 どういうことかというと、次のように三つの式に分けて書くことができるというわけだ。
\[ \begin{align*} \left( \begin{array}{rrr} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right) \left( \begin{array}{rrr} x\sub{11} \\[4pt] x\sub{21} \\[4pt] x\sub{31} \end{array} \right) \ &=\ \left( \begin{array}{rrr} 1 \\[4pt] 0 \\[4pt] 0 \end{array} \right) \tag{2} \\[4pt] \left( \begin{array}{rrr} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right) \left( \begin{array}{rrr} x\sub{12} \\[4pt] x\sub{22} \\[4pt] x\sub{32} \end{array} \right) \ &=\ \left( \begin{array}{rrr} 0 \\[4pt] 1 \\[4pt] 0 \end{array} \right) \tag{3} \\[4pt] \left( \begin{array}{rrr} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right) \left( \begin{array}{r} x\sub{13} \\[4pt] x\sub{23} \\[4pt] x\sub{33} \end{array} \right) \ &=\ \left( \begin{array}{r} 0 \\[4pt] 0 \\[4pt] 1 \end{array} \right) \tag{4} \\ \end{align*} \]
 例えばこの (2) 式というのは次のような意味である。
\[ \begin{align*} a\sub{11} x\sub{11} \ +\ a\sub{12} x\sub{21} \ +\ a\sub{13} x\sub{31} \ &=\ 1 \\ a\sub{21} x\sub{11} \ +\ a\sub{22} x\sub{21} \ +\ a\sub{23} x\sub{31} \ &=\ 0 \\ a\sub{31} x\sub{11} \ +\ a\sub{32} x\sub{21} \ +\ a\sub{33} x\sub{31} \ &=\ 0 \end{align*} \]
 これは\( x\sub{11} \)\( x\sub{21} \)\( x\sub{31} \)の値を求めるための連立一次方程式の形になっているではないか!連立方程式の解と言えばクラメルの公式の出番である。具体的な数値を使った計算では効率は良くないと話したが、今みたいな記号ばかりの理論的な話をするときには断然役に立つ。
\[ \begin{align*} x\sub{11} \ =\ \frac{ \left| \begin{array}{lll} \, 1\ \, & a\sub{12} & a\sub{13} \\[4pt] \, 0\ \, & a\sub{22} & a\sub{23} \\[4pt] \, 0\ \, & a\sub{32} & a\sub{33} \end{array} \right| }{ \left| \begin{array}{lll} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right| } \ \ \ \ , \ \ x\sub{21} \ =\ \frac{ \left| \begin{array}{lll} a\sub{11} & \, 1\ \, & a\sub{13} \\[4pt] a\sub{21} & \, 0\ \, & a\sub{23} \\[4pt] a\sub{31} & \, 0\ \, & a\sub{33} \end{array} \right| }{ \left| \begin{array}{lll} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right| } \ \ \ \ , \ \ x\sub{31} \ =\ \frac{ \left| \begin{array}{lll} a\sub{11} & a\sub{12} & \, 1\ \, \\[4pt] a\sub{21} & a\sub{22} & \, 0\ \, \\[4pt] a\sub{31} & a\sub{32} & \, 0\ \, \end{array} \right| }{ \left| \begin{array}{lll} a\sub{11} & a\sub{12} & a\sub{13} \\[4pt] a\sub{21} & a\sub{22} & a\sub{23} \\[4pt] a\sub{31} & a\sub{32} & a\sub{33} \end{array} \right| } \end{align*} \]
 この計算結果の「分子の部分」を見て何か気付かないだろうか。これは前に話した行列式の計算ルールを使えば単純化できる格好の例ではないか。単純化できるなんてものじゃない。行列\( A \)の余因子\( \tilde{a}_{ij} \)そのものではないか。それで次のように書けてしまう。
\[ \begin{align*} x\sub{11} \ =\ \frac{\tilde{a}\sub{11}}{|A|} \ \ \ \ , \ \ x\sub{21} \ =\ \frac{\tilde{a}\sub{12}}{|A|} \ \ \ \ , \ \ x\sub{31} \ =\ \frac{\tilde{a}\sub{13}}{|A|} \end{align*} \]
 (3) 式、(4) 式を解いた結果も似たようなことになっており、まとめると次のようである。
\[ \begin{align*} X \ =\ \frac{1}{|A|} \left( \begin{array}{lll} \tilde{a}\sub{11} & \tilde{a}\sub{21} & \tilde{a}\sub{31} \\[4pt] \tilde{a}\sub{12} & \tilde{a}\sub{22} & \tilde{a}\sub{32} \\[4pt] \tilde{a}\sub{13} & \tilde{a}\sub{23} & \tilde{a}\sub{33} \end{array} \right) \tag{5} \end{align*} \]
 これが逆行列を求めるための公式だ。何次の行列であってもこれと同様の結果が成り立っている。

 \( A \)の余因子\( \tilde{a}_{ij} \)を並べたものを「\( \color{red}{A} \)の余因子行列」と呼ぶのだが、残念ながら (5) 式の右辺にあるものは「\( A \)の余因子行列」ではない。よく見ると\( \tilde{a}_{ij} \)ではなく、\( \tilde{a}_{ji} \)の順に並んでいる。行と列の役割が入れ替わって入っているのだ。

 後でまた詳しく説明するつもりだが、行と列の役割を入れ替えて並べた行列を「転置行列」と呼ぶ。(5) 式の右辺にあるものは「\( A \)の余因子行列の転置行列を\( A \)の行列式\( |A| \)で割ったもの」だということだ。

注: 教科書によっては (5) 式の右辺にあるような並びのものを「余因子行列」と呼んでいることもあるので それぞれの教科書の定義に注意して従う必要がある。
 分母が 0 になるわけにはいかないので、\( |A| = 0 \)のときには逆行列が存在しないと言えそうだ。行列式は逆行列が存在するかどうかの判定にも使えそうである。


「行列の積」の行列式

 一次方程式を解くための小道具に過ぎないと思っていた行列式がこうして一次変換の話に深く関係してくることになった。行列式は逆行列を求めるための小道具でもあるわけだ。

 そうなると一次方程式の範囲を超えて、「行列の積」の行列式というものがどうなるかについても知っておいた方がいいだろう。実は次のような分かりやすい関係が成り立っているのである。

\[ \begin{align*} |AB| \ =\ |A|\, |B| \tag{6} \end{align*} \]
 行列の積の行列式は、それぞれの行列の行列式の積である。言葉にすると少々ややこしいが、わざわざ言葉にする必要もないのだった。式を見れば一目瞭然だ。

 これが成り立つことをここで証明するのは諦めよう。定義に従って考えてやることで直接的にも証明できるらしいが、ややこしすぎて私は断念した。教科書を探せばそれよりずっとエレガントな証明が載っていたりするが、別の定理を経由しなくてはならないし、そのような回り道は私の目的ではない。


逆行列の行列式

 ところで、単位行列\( E \)の行列式は計算などしなくても分かると思うが 1 である。\( AA^{-1} = E \)であるので、\( |AA^{-1}| = 1 \)である。先ほど説明した (6) 式の公式により、次のことが言える。
\[ \begin{align*} |A| \, |A^{-1}| \ =\ 1 \ \ \ \ \ \ \therefore\ |A^{-1}| \ =\ \frac{1}{|A|} \end{align*} \]
 \( |A| \)\( |A^{-1}| \)とは逆数の関係にあるというわけだ。

 この辺りのことは後で行列式の図形的イメージを知ることになれば当たり前のことに思えるようになるだろう。


基本変形行列

 (6) 式のような公式を利用すると、以前に「
行列式の計算ルール」という記事で説明した行列式の性質の一部について、別の面白い視点でも説明することができる。

 例えば、次のような行列を見てほしい。

\[ \begin{align*} P(i;k) \ =\ \left( \begin{array}{lllllll} 1 & & & & & & \\[-4pt] & \!\! \ddots & & & & & \\ & & \!\! 1 & & & & \\ & & & k & & & \\ & & & & 1 & & \\[-4pt] & & & & & \!\! \ddots & \\ & & & & & & \!\! 1 \end{array} \right) \end{align*} \]
 これは単位行列の\( i \)\( i \)列の成分だけ、1 の代わりに\( k \)に置き換えたものである。このような行列を任意の行列\( A \)に左から掛けると・・・つまり\( PA \)を計算すると、行列\( A \)\( i \)行目の全体を\( k \)倍したことになるのである。そして右から掛けると・・・つまり\( AP \)というものを計算すると、その結果は\( A \)\( i \)列目の全体を\( k \)倍したものが出来上がるのである。

 この行列\( P \)は対角行列なので、行列式\( |P| \)は計算するまでもなく\( k \)である。つまり、こいつをどちらから掛けようとも結果の行列の行列式は元の行列\( A \)の行列式の値の\( k \)倍になるのである。前に説明したのと同じだ。

 他にも次のようなものを考えることが出来る。

\[ \begin{align*} Q(i,j;k) \ =\ \left( \begin{array}{lllllll} 1 & & & & & & \\[-4pt] & \!\! \ddots & & & & & \\ & & \!\! 1 & & k & & \\[-4pt] & & & \ddots & & & \\ & & & & 1 & & \\[-4pt] & & & & & \!\! \ddots & \\ & & & & & & \!\! 1 \end{array} \right) \end{align*} \]
 これは単位行列の\( (i,j) \)成分のところに\( k \)を書き入れたものである。これを任意の行列\( A \)に左から掛けて\( QA \)を計算すると、行列\( A \)\( i \)行目を\( k \)倍して\( j \)行目に加えたものが出来上がる。右から掛けて\( AQ \)とすれば、列について同様の働きをするのである。

 この行列\( Q \)は上三角行列の一種なので、行列式\( |Q| \)は一目瞭然で 1 である。つまり、こいつをどちらから掛けようとも結果の行列の行列式は元の行列\( A \)の行列式の値から変化しないのである。これも前に説明したのと同じ。

 次はもう予想がつくだろう。行や列の入れ替えを実現するような行列である。

\[ \begin{align*} R(i,j) \ =\ \left( \begin{array}{lllllll} 1 & & & & & & \\[-4pt] & \!\! \ddots & & & & & \\ & & 0 & & 1 & & \\ & & & \ \ \ \ & & & \\[8pt] & & 1 & & 0 & & \\[-4pt] & & & & & \!\! \ddots & \\ & & & & & & \!\! 1 \end{array} \right) \end{align*} \]
 少々いい加減な書き方だが、単位行列の\( i \)行目と\( j \)行目を入れ替えただけの単純なものだと思ってほしい。\( i \)列目と\( j \)列目を入れ替えたものだと考えても同じことだ。これを任意の行列\( A \)に左から掛けて\( RA \)を計算すると、行列\( A \)\( i \)行目と\( j \)行目を入れ替えたものが出来上がる。右から掛けて\( AR \)とすれば、列について同様の働きをする。

 この行列式\( |R| \)の値は単位行列の行を一回入れ替えただけのものなので -1 である。他の方法でじっくり考えて計算してもらってもいい。つまり、こいつをどちらから掛けようとも結果の行列の行列式は元の行列\( A \)の行列式の符号を逆転させるのである。

 これら 3 種の行列を「基本変形行列」と呼ぶ。それぞれの行列を表すのに使った記号\( P \)\( Q \)\( R \)はアルファベット順に適当に付けただけのもので、特に意味はない。この場限りのものである。

 まぁ、こういう視点で行列式の値の変化を考えることもできるという話だ。


逆行列のもう一つの求め方

 連立方程式を解くための「二つのルール」について思い出そう。それらのルールに従った行についての操作は、今の話で見たように、基本変形行列を掛けることでも実現できるということだ。つまり、二つのルールに従って任意の行列\( A \)を単位行列の形へと変形してゆく過程は、行列\( A \)に対して様々な基本変形行列を次々に掛けて行く操作と等価だったというわけだ。(おいおい・・・ますます一次方程式と一次変換の境目が見えなくなってきたじゃないかよ?)
\[ \begin{align*} (\cdots P\cdots Q \cdots R \cdots ) \, A \ =\ E \end{align*} \]
 すると、その掛けた全ての基本変形行列の積、つまり上の式で\((\cdots P\cdots Q \cdots R \cdots ) \)と表現した部分は行列\( A \)の逆行列だというわけだ。

 では、どんな操作をしたかをしっかり覚えておけば、逆行列を作り出すことができるということになる。まぁ、いちいち覚えておくのは面倒なので、並行して単位行列に対して同じ操作をしてやればいい。そうすれば逆行列が出来上がるという寸法だ。

 具体的には次のようにやるのが分かりやすいだろう。次のような行列\( A \)の逆行列を求めたいとする。

\[ \begin{align*} A \ =\ \left( \begin{array}{rrr} 3 & 2 & -6 \\[4pt] 4 & 0 & 3 \\[4pt] 5 & -6& 1 \end{array} \right) \end{align*} \]
 そのためには最初に次のようなものをノートに書く。
\[ \begin{align*} \left( \begin{array}{rrr:rrr} 3 & 2 & -6 & 1 & 0 & 0 \\[4pt] 4 & 0 & 3 & 0 & 1 & 0 \\[4pt] 5 & -6& 1 & 0 & 0 & 1 \end{array} \right) \end{align*} \]
 この破線の左側の行列を単位行列にするべく、一番最初の記事で話した「二つのルール」と必要であれば三つ目のルールを使って変形を行う。その時、破線の右側に対しても同じルールで変形してやるのである。破線の左側を単位行列の形にし終えたとき、不思議なことに、破線の右側には逆行列\( A^{-1} \)ができているというわけだ。

 ところで「二つのルール」というのは行に対して色々な操作を加えていくというものだった。しかし上の論理からすると、逆行列を求めるという目的に限っては、列に対して同じことをしても同様に答えが求まるのではないだろうか。まぁ、そんなことをしてもやりにくいだけだし、混乱を招くこともあるのであまりお薦めはしないが、実際はその通りである。ただしその場合には、行に対しての操作と列に対しての操作を決して混在させてはならない。

 その理由は次のようにして説明できるであろう。行列\( A \)に対して、行に対しての操作\( M \)と列に対しての操作\( N \)を次々に行ったとする。その結果を式で表すと\( MAN \)ということになろう。同じ操作を単位行列\( E \)に対して行うと\( MEN \)、すなわち\( MN \)である。この\( MN \)というのは何だろうか。この塊を行列\( A \)に対して右から、あるいは左から掛けることは\( MAN \)と同じことになるだろうか。いや、全く違うのである。これでは逆行列を求められない。

 具体的な数値で表された行列の場合にはこの方法を使って逆行列を求める方がはるかに効率がいい、と言いたいところだが、そうでもない。一次方程式の解を求めるときと比べても破線の右側の計算量は 3 倍近くに増えている。余因子行列を使った公式の方が楽である場合も多いかも知れない。