ブロック行列の行列式,逆行列の公式と証明

この記事では大きな行列を四つに区切ったブロック行列 T=(ABCD)T=\begin{pmatrix}A&B\\C&D\end{pmatrix} について考えます。

AADD は正方行列とします。

ブロック行列の例

(123011200)\begin{pmatrix} 1 & 2 & 3\\ 0 & -1 & 1\\ -2 & 0 & 0 \end{pmatrix}(123011200)\left( \begin{array}{cc|c} 1 & 2 & 3\\ 0 & -1 & 1\\ \hline -2 & 0 & 0 \end{array} \right) とブロック行列で表すことができます。

ブロックの分け方は1通りではありません。さきほどの行列を (123011200)\left( \begin{array}{c|cc} 1 & 2 & 3\\ \hline 0 & -1 & 1\\ -2 & 0 & 0 \end{array} \right) と分割することもできます。

ブロック行列の掛け算

T,ST,S をそれぞれ n×nn \times n ブロックに分けます。

iijj 列のブロックを Tij,SijT_{ij}, S_{ij} と表します。このとき (TS)ij=k=1nTikSkj (TS)_{ij} = \sum_{k=1}^n T_{ik} S_{kj} と計算できます。

ブロック行列の行列式

TT の行列式を,A,B,C,DA,B,C,D を用いて表す公式です!

AA が正則なとき, detT=detAdet(DCA1B)\det T=\det A\det (D-CA^{-1}B)

DD が正則なとき, detT=detDdet(ABD1C)\det T=\det D\det (A-BD^{-1}C)

〜公式の覚え方〜

2×2行列の行列式が adbc=a(dbca)ad-bc=a(d-\dfrac{bc}{a}) と書けることを意識すると覚えやすいです。

DCA1BD-CA^{-1}B なのか DBA1CD-BA^{-1}C なのか迷いがちですが,行列のサイズを意識すると前者が正しいと分かります。また「時計回り」と覚えてもよいです(C,A,BC,A,B が時計回りの順になっている)。

〜公式が活躍する例〜

例えば行列の性質を数学的帰納法で証明するときに活躍します(BB が縦ベクトル,CC が横ベクトルのとき,TT のサイズは AA のサイズより1大きいです,また DCA1BD-CA^{-1}B はスカラーとなり扱いやすいです)。

行列式の公式の証明

二つ目の式も同様なので,一つ目の式のみ示します。証明だけなら簡単です。

証明

(ABCD)=(IOCA1I)(AOODCA1B)(IA1BOI)\begin{pmatrix}A&B\\C&D\end{pmatrix}\\=\begin{pmatrix}I&O\\CA^{-1}&I\end{pmatrix}\begin{pmatrix}A&O\\O&D-CA^{-1}B\end{pmatrix}\begin{pmatrix}I&A^{-1}B\\O&I\end{pmatrix}

が成立する(右辺を計算すれば簡単に分かる,余談も参照)。

積の行列式は行列式の積であり,右辺の一つ目と三つ目の行列の行列式は 11 なので,

det(ABCD)=detAdet(DCA1B)\det \begin{pmatrix}A&B\\C&D\end{pmatrix}=\det A\det (D-CA^{-1}B) を得る。

〜余談(なぜこのような変形が思いつくのか)〜

まず,(ABCD)\begin{pmatrix}A&B\\C&D\end{pmatrix}AA を使って BB を消します(列変形のノリ):

(ABCD)(IA1BOI)=(AOCDCA1B)\begin{pmatrix}A&B\\C&D\end{pmatrix}\begin{pmatrix}I&-A^{-1}B\\O&I\end{pmatrix}=\begin{pmatrix}A&O\\C&D-CA^{-1}B\end{pmatrix}

次に,AA を使って CC を消します(行変形のノリ)

(IOCA1I)(AOCDCA1B)=(AOODCA1B)\begin{pmatrix}I&O\\-CA^{-1}&I\end{pmatrix}\begin{pmatrix}A&O\\C&D-CA^{-1}B\end{pmatrix}=\begin{pmatrix}A&O\\O&D-CA^{-1}B\end{pmatrix}

この二つを合わせた式に,左から (IOCA1I)1=(IOCA1I)\begin{pmatrix}I&O\\-CA^{-1}&I\end{pmatrix}^{-1}=\begin{pmatrix}I&O\\CA^{-1}&I\end{pmatrix}

右から (IA1BOI)1=(IA1BOI)\begin{pmatrix}I&-A^{-1}B\\O&I\end{pmatrix}^{-1}=\begin{pmatrix}I&A^{-1}B\\O&I\end{pmatrix}

をかけると目標の式を得ます。

ブロック行列の逆行列

TT の逆行列を,A,B,C,DA,B,C,D を用いて表す公式です!

AAS=DCA1BS=D-CA^{-1}B が正則なとき,

T1=(A1+A1BS1CA1A1BS1S1CA1S1)T^{-1}=\begin{pmatrix}A^{-1}+A^{-1}BS^{-1}CA^{-1}&-A^{-1}BS^{-1}\\-S^{-1}CA^{-1}&S^{-1}\end{pmatrix}

なお,さらに DD が正則なら逆行列の補助定理を使うことで左上部分は (ABD1C)1(A-BD^{-1}C)^{-1} と簡潔に書くことができます。

逆行列の公式の導出

行列式のときに得た式を使えばあとは計算するのみです。

証明

行列式のときに得た式より,

(ABCD)1=(IA1BOI)1(AOOS)1(IOCA1I)1=(IA1BOI)(A1OOS1)(IOCA1I)=(A1+A1BS1CA1A1BS1S1CA1S1)\begin{pmatrix}A&B\\C&D\end{pmatrix}^{-1}\\=\begin{pmatrix}I&A^{-1}B\\O&I\end{pmatrix}^{-1}\begin{pmatrix}A&O\\O&S\end{pmatrix}^{-1}\begin{pmatrix}I&O\\CA^{-1}&I\end{pmatrix}^{-1}\\ =\begin{pmatrix}I&-A^{-1}B\\O&I\end{pmatrix}\begin{pmatrix}A^{-1}&O\\O&S^{-1}\end{pmatrix}\begin{pmatrix}I&O\\-CA^{-1}&I\end{pmatrix}\\ =\begin{pmatrix}A^{-1}+A^{-1}BS^{-1}CA^{-1}&-A^{-1}BS^{-1}\\-S^{-1}CA^{-1}&S^{-1}\end{pmatrix}

見た目はゴツイですが,導出の考え方は難しくありません。