ブロック行列
📂行列代数ブロック行列
定義
Aを行列m×nとする。
A=a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn
この時、行列を切る任意の垂直線、水平線を考えよう。
A=a11a21a31a41⋮am1a12a22a32a42⋮am2a13a23a33a43⋮am3a14a24a34a44⋮am4a15a25a35a45⋮am5⋯⋯⋯⋯⋱⋯a1n−1a2n−1a3n−1a4n−1⋮am−1na1na2na3na4n⋮amn
それぞれの線で切られた部分をAのブロックという。
A11=[a11a21a12a22],A12=[a13a23a14a24a15a25],⋯,Akl=[am−1namn]
行列Aを次のようにブロックで表したものをブロック行列という。
A=A11A21⋮Ak1A12A22⋮Ak2⋯⋯⋱⋯A1lA2l⋮Akl
説明
行列をブロック行列として扱うことは、行列の計算を容易にする。実際、ブロック行列の計算も行列の計算と同じように行えばいい。
A=[A11A21A12A22]andB=[B11B21B12B22]⟹AB=[A11B11+A12B21A21B11+A22B21A11B12+A12B22A21B12+A22B22]
従って、行列をゼロ行列や単位行列が含まれるブロック行列形に変えれば、行列の乗算を簡単に計算できる。
A=[A11OIA22]andB=[B11B21B12B22]⟹AB=[A11B11+B21A22B21A11B12+B22A22B22]
行列を行ベクトルと列ベクトルに分けたものもブロック行列である。
A==a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn=r1r2⋮rm[c1c2⋯cn]
従って、Axを次のように表せる。
Ax=[c1c2⋯cn]x1x2⋮xn=i∑nxici
また、Aをm×p行列とし、aiをAの行ベクトルとし、Bをp×n行列とし、biをBの列ベクトルとする。そうすると、二つの行列の積は次のようになる。
AB=a1a2⋮am[b1b2⋯bn]=a1b1a2b1⋮amb1a1b2a2b2⋮amb2⋯⋯⋱⋯a1bna2bn⋮ambn
定理
A=[A1OA2A3]をブロック行列とする。その行列式に対して次が成り立つ。
detA=detA1detA3
結論
- ブロック行列A=[A1OA2I]の行列式はdetA1と同じである。
- 行と列に順列をとって次のような形に表せる行列Aを簡約可能行列と呼び、その行列式detAはdetBdetDか−detBdetDのどちらかである。
A=[BCOD]
証明
ブロック行列Aを次のように3つのブロック行列の積に分解できる。
A=[A1OA2A3]=[IA1+OOOA1+A3OIA2+OIOA2+A3I]=[IOOA3][A1OA2I]=[IOOA3][IA1+A2OOA1+IOIO+A2IOO+II]=[IOOA3][IOA2I][A1OOI]
積の行列式は行列式の積と同じであるから
detA=det([IOOA3][IOA2I][A1OOI])=det([IOOA3])det([IOA2I])det([A1OOI])
行列式のラプラス展開を考えると、
det([IOOA3])=detA3,det([A1OOI])=detA1,
anddet([IOA2I])=1
これにより、
detA=detA1detA3
■