logo

ブロック行列 📂行列代数

ブロック行列

定義

AAを行列m×nm \times nとする。

A=[a11a12a1na21a22a2nam1am2amn] A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}

この時、行列を切る任意の垂直線、水平線を考えよう。

A=[a11a12a13a14a15a1n1a1na21a22a23a24a25a2n1a2na31a32a33a34a35a3n1a3na41a42a43a44a45a4n1a4nam1am2am3am4am5am1namn] A = \left[ \begin{array}{cc|ccc|c|} a_{11} & a_{12} & a_{13} & a_{14} & a_{15} & \cdots & a_{1n-1} & a_{1n} \\ a_{21} & a_{22} & a_{23} & a_{24} & a_{25} & \cdots & a_{2n-1} & a_{2n} \\ \hline a_{31} & a_{32} & a_{33} & a_{34} & a_{35} & \cdots & a_{3n-1} & a_{3n} \\ a_{41} & a_{42} & a_{43} & a_{44} & a_{45} & \cdots & a_{4n-1} & a_{4n} \\ \hline \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \\ \hline a_{m1} & a_{m2} & a_{m3} & a_{m4} & a_{m5} & \cdots & a_{m-1n} & a_{mn} \end{array} \right]

それぞれの線で切られた部分をAAブロックという。

A11=[a11a12a21a22],A12=[a13a14a15a23a24a25],,Akl=[am1namn] A_{11} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix},\quad A_{12} = \begin{bmatrix} a_{13} & a_{14} & a_{15}\\ a_{23} & a_{24} & a_{25} \end{bmatrix},\quad \cdots,\quad A_{kl} = \begin{bmatrix} a_{m-1n} & a_{mn}\end{bmatrix}

行列AAを次のようにブロックで表したものをブロック行列という。

A=[A11A12A1lA21A22A2lAk1Ak2Akl] A = \begin{bmatrix} A_{11} & A_{12} & \cdots & A_{1l} \\ A_{21} & A_{22} & \cdots & A_{2l} \\ \vdots & \vdots & \ddots & \vdots \\ A_{k1} & A_{k2} & \cdots & A_{kl} \\ \end{bmatrix}

説明

行列をブロック行列として扱うことは、行列の計算を容易にする。実際、ブロック行列の計算も行列の計算と同じように行えばいい。

A=[A11A12A21A22]andB=[B11B12B21B22]    AB=[A11B11+A12B21A11B12+A12B22A21B11+A22B21A21B12+A22B22] A = \begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix}\quad \text{and} \quad B = \begin{bmatrix} B_{11} & B_{12} \\ B_{21} & B_{22} \end{bmatrix} \\[1em] \implies AB = \begin{bmatrix} A_{11}B_{11} + A_{12}B_{21} & A_{11}B_{12} + A_{12}B_{22} \\ A_{21}B_{11} + A_{22}B_{21} & A_{21}B_{12} + A_{22}B_{22} \end{bmatrix}

従って、行列をゼロ行列単位行列が含まれるブロック行列形に変えれば、行列の乗算を簡単に計算できる。

A=[A11IOA22]andB=[B11B12B21B22]    AB=[A11B11+B21A11B12+B22A22B21A22B22] A = \begin{bmatrix} A_{11} & I \\ O & A_{22} \end{bmatrix}\quad \text{and} \quad B = \begin{bmatrix} B_{11} & B_{12} \\ B_{21} & B_{22} \end{bmatrix} \\[1em] \implies AB = \begin{bmatrix} A_{11}B_{11} + B_{21} & A_{11}B_{12} + B_{22} \\ A_{22}B_{21} & A_{22}B_{22} \end{bmatrix}

行列を行ベクトルと列ベクトルに分けたものもブロック行列である。

A=[a11a12a1na21a22a2nam1am2amn]=[r1r2rm]=[c1c2cn] \begin{align*} A =& \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} = \begin{bmatrix} \mathbf{r}_{1} \\ \mathbf{r}_{2} \\ \vdots \\ \mathbf{r}_{m} \end{bmatrix} \\ =& \begin{bmatrix} \mathbf{c}_{1} & \mathbf{c}_{2} & \cdots & \mathbf{c}_{n} \end{bmatrix} \end{align*}

従って、AxA \mathbf{x}を次のように表せる。

Ax=[c1c2cn][x1x2xn]=inxici \begin{align*} A \mathbf{x} &= \begin{bmatrix} \mathbf{c}_{1} & \mathbf{c}_{2} & \cdots & \mathbf{c}_{n} \end{bmatrix} \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{bmatrix} \\ &= \sum_{i}^{n} x_{i}\mathbf{c}_{i} \end{align*}

また、AAm×pm \times p行列とし、ai\mathbf{a}_{i}AAの行ベクトルとし、BBp×np \times n行列とし、bi\mathbf{b}_{i}BBの列ベクトルとする。そうすると、二つの行列の積は次のようになる。

AB=[a1a2am][b1b2bn]=[a1b1a1b2a1bna2b1a2b2a2bnamb1amb2ambn] AB = \begin{bmatrix} \mathbf{a}_{1} \\ \mathbf{a}_{2} \\ \vdots \\ \mathbf{a}_{m} \end{bmatrix} \begin{bmatrix} \mathbf{b}_{1} & \mathbf{b}_{2} & \cdots & \mathbf{b}_{n} \end{bmatrix} = \begin{bmatrix} \mathbf{a}_{1} \mathbf{b}_{1} & \mathbf{a}_{1} \mathbf{b}_{2} & \cdots & \mathbf{a}_{1} \mathbf{b}_{n} \\ \mathbf{a}_{2} \mathbf{b}_{1} & \mathbf{a}_{2} \mathbf{b}_{2} & \cdots & \mathbf{a}_{2} \mathbf{b}_{n} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{a}_{m} \mathbf{b}_{1} & \mathbf{a}_{m} \mathbf{b}_{2} & \cdots & \mathbf{a}_{m} \mathbf{b}_{n} \\ \end{bmatrix}

定理

A=[A1A2OA3]A = \begin{bmatrix} A_{1} & A_{2} \\ O & A_{3} \end{bmatrix}をブロック行列とする。その行列式に対して次が成り立つ。

detA=detA1detA3 \det A = \det A_{1} \det A_{3}

結論

  • ブロック行列A=[A1A2OI]A = \begin{bmatrix} A_{1} & A_{2} \\ O & I \end{bmatrix}の行列式はdetA1\det A_{1}と同じである。
  • 行と列に順列をとって次のような形に表せる行列AA簡約可能行列と呼び、その行列式detA\det AdetBdetD\det B \det DdetBdetD-\det B \det Dのどちらかである。 A~=[BOCD] \widetilde{A} = \begin{bmatrix} B & O \\ C & D \end{bmatrix}

証明

ブロック行列AAを次のように3つのブロック行列の積に分解できる。

A=[A1A2OA3]=[IA1+OOIA2+OIOA1+A3OOA2+A3I]=[IOOA3][A1A2OI]=[IOOA3][IA1+A2OIO+A2IOA1+IOOO+II]=[IOOA3][IA2OI][A1OOI] \begin{align*} A &= \begin{bmatrix} A_{1} & A_{2} \\ O & A_{3} \end{bmatrix} \\ &= \begin{bmatrix} IA_{1} + OO & IA_{2} + OI \\ OA_{1} + A_{3}O & OA_{2} + A_{3}I \end{bmatrix} \\ &= \begin{bmatrix} I & O \\ O & A_{3} \end{bmatrix} \begin{bmatrix} A_{1} & A_{2} \\ O & I \end{bmatrix} \\ &= \begin{bmatrix} I & O \\ O & A_{3} \end{bmatrix} \begin{bmatrix} IA_{1} + A_{2}O & IO + A_{2}I \\ OA_{1} + IO & OO + II \end{bmatrix} \\ &= \begin{bmatrix} I & O \\ O & A_{3} \end{bmatrix} \begin{bmatrix} I & A_{2} \\ O & I \end{bmatrix} \begin{bmatrix} A_{1} & O \\ O & I \end{bmatrix} \end{align*}

積の行列式は行列式の積と同じであるから

detA=det([IOOA3][IA2OI][A1OOI])=det([IOOA3])det([IA2OI])det([A1OOI]) \begin{align*} \det A &= \det \left( \begin{bmatrix} I & O \\ O & A_{3} \end{bmatrix} \begin{bmatrix} I & A_{2} \\ O & I \end{bmatrix} \begin{bmatrix} A_{1} & O \\ O & I \end{bmatrix} \right) \\ &= \det \left( \begin{bmatrix} I & O \\ O & A_{3} \end{bmatrix} \right) \det \left( \begin{bmatrix} I & A_{2} \\ O & I \end{bmatrix} \right) \det \left( \begin{bmatrix} A_{1} & O \\ O & I \end{bmatrix} \right) \end{align*}

行列式のラプラス展開を考えると、

det([IOOA3])=detA3,det([A1OOI])=detA1, \det \left( \begin{bmatrix} I & O \\ O & A_{3} \end{bmatrix} \right) = \det A_{3},\quad \det \left( \begin{bmatrix} A_{1} & O \\ O & I \end{bmatrix} \right) = \det A_{1},

anddet([IA2OI])=1 \text{and} \quad \det \left( \begin{bmatrix} I & A_{2} \\ O & I \end{bmatrix} \right)=1

これにより、

detA=detA1detA3 \det A = \det A_{1} \det A_{3}