블록 행렬
📂행렬대수블록 행렬
정의
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의 블록block이라고 한다.
A11=[a11a21a12a22],A12=[a13a23a14a24a15a25],⋯,Akl=[am−1namn]
행렬 A를 다음과 같이 블록으로 표현한 것을 블록 행렬block matrix이라고 한다.
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를 다음과 같이 세 블록행렬의 곱으로 분해할 수 있다.
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
■