逆行列の公式#1


n 次正方行列 P が正則であるとき,その逆行列をブロック分解した形で求める方法についてのメモ.手計算では役に立つことは無いだろうが,対象となる行列 P が対称行列であったりすると,応用の幅が広がる.確率統計,機械工学,制御系統のテキストには類似した公式が載っているようだ.なお,今回は
『Pattern Recognition and Machine Learning』(著) Christopher M. Bishop で見かけたものである.触れたことがある人には「PRML」という略称で通じるらしい.

スポンサーリンク

Th 1.1
n 次正方行列 P が正則であるとする.P を次のようにブロック分解する.

    \[ P = \left[ \begin{array}{cc} A&B\\ C&D \end{array}   \right] \]

ここで, D は正方行列となるようにした.このとき D および A-BD^{-1}C は正則行列であって,M = (A-BD^{-1}C)^{-1} とおくと

    \[ \left[ \begin{array}{cc} A&B\\ C&D \end{array}   \right]^{-1} = \left[ \begin{array}{cc} M&-MBD^{-1}\\ -D^{-1}CM&D^{-1}+D^{-1}CMBD^{-1} \end{array}   \right] \]

が成り立つ.

確認

実際に手計算で使ってみる

当初は掃き出し法を使いたくなくなるような例を考えていたが,行列の積の計算での労力が凄まじいことになったため,常識的な行列で計算してみる.
3次正方行列

    \[ Q = \left[ \begin{array}{ccc} 3 & 2 & 0 \\ -5 & 0 &2 \\ 6 & 1 & -2  \end{array}   \right] \]

の逆行列を求める.分解は

    \[ \left[ \begin{array}{cc|c} 3 & 2 & 0 \\ -5 & 0 &2 \\ \hline 6 & 1 & -2  \end{array}   \right] \]

とした.先に M を計算しておく.D^{-1} = -\frac{1}{2} であることに注意しておく.

    \[ A - BD^{-1}C  = \left[ \begin{array}{c} 0 \\ 2   \end{array}   \right] \left(-\frac{1}{2}\right) \left[ \begin{array}{cc} 6 & 1   \end{array}   \right] = \left[ \begin{array}{cc} 3 & 2 \\ 1 & 1   \end{array}   \right] \]

であるから

    \[ M = \left[ \begin{array}{cc} 3 & 2 \\ 1 & 1   \end{array}   \right]^{-1} = \frac{1}{3 \cdot 1 - 2 \cdot 1} \left[ \begin{array}{cc} 1 & -2 \\ -1 & 3   \end{array}   \right] = \left[ \begin{array}{cc} 1 & -2 \\ -1 & 3   \end{array}   \right] \]

である.逆行列公式の各要素を個別に計算すると

    \[ -MBD = -\left[ \begin{array}{cc} 1 & -2 \\ -1 & 3   \end{array}   \right] \left[ \begin{array}{c} 0 \\ 2   \end{array}   \right] \left(-\frac{1}{2}\right) = \left[ \begin{array}{c} -2 \\  3   \end{array}   \right] \]

    \[ -D^{-1}CM = -\left(-\frac{1}{2}\right)\left[ \begin{array}{cc} 6 & 1   \end{array}   \right] \left[ \begin{array}{cc} 1 & -2 \\ -1 & 3   \end{array}   \right] = \left[ \begin{array}{cc} \frac{5}{2} & -\frac{9}{2} \end{array}   \right] \]

    \[ D^{-1} + D^{-1}CMBD^{-1}=-\frac{1}{2} -\frac{1}{2}\left[ \begin{array}{cc} 6 & 1  \end{array}   \right]\left[ \begin{array}{cc} 1 & -2 \\ -1 & 3   \end{array}   \right]\left[ \begin{array}{c} 0 \\ 2   \end{array}   \right] \left(-\frac{1}{2}\right) = -5 \]

である.したがって

    \[ Q^{-1} = \left[ \begin{array}{cc} M&-MBD^{-1}\\ -D^{-1}CM&D^{-1}+D^{-1}CMBD^{-1} \end{array}   \right]  =  \left[ \begin{array}{ccc} 1&-2&-2\\ -1 &3&3\\ \frac{5}{2}&-\frac{9}{2}&-5 \end{array}   \right] \]

を得る.

例えばこの公式を逆行列を求めるアルゴリズムとして採用する場合には,計算量が問題となるため,多少の工夫をするべきである.サイズが異なる行列の積(もちろん積が定義できるという前提のもと)の計算は,積をとる順序によって計算量が異なることがあり,この最適な順序を求める問題を連鎖行列積問題という.その点を考慮してみると面白いかもしれない.


スポンサーリンク