수학(mathematics)에서, 블록 행렬(block matrix) 또는 분할된 행렬(partitioned matrix)은 블록 또는 부분행렬(submatrices)이라는 구역으로 나누어진 것으로 해석되는 행렬(matrix)입니다. 직관적으로, 블록 행렬로 해석되는 행렬은 수평 직선과 수직 직선의 모음을 갖는 원래 행렬로 시각화될 수 있으며, 이는 행렬을 더 작은 행렬의 모음으로 분해하거나 분할(partition)합니다. 임의의 행렬은 하나 이상의 방법으로 블록 행렬로 해석될 수 있으며, 각 해석은 해당 행과 열이 분할되는 방법에 따라 정의됩니다.
이 개념은 \(n\)을 모음 \(\text{rowgroups}\) 그룹으로 분할하고 그런-다음 \(m\)을 모음 \(\text{colgroups}\)으로 분할함으로써 \(n \times m\) 행렬 \(M\)에 대해 더 정확하게 만들 수 있습니다. 그런 다음 원래 행렬의 \((i, j)\) 엔트리가 일부 \((x,y)\)의 일부 \((s, t)\) 오프셋 엔트리와 1-대-1 방법으로 대응한다는 점에서 원래 행렬은 이들 그룹의 "전체"로 고려되며, 여기서 \(x \in \text{rowgroups}\)와 \(y \in \text{colgroups}\)입니다.
블록 행렬 대수는 일반적으로 행렬의 카테고리(categories)의 이중-곱(biproducts)에서 발생합니다.
Example
다음 행렬은
\(\quad\displaystyle \mathbf{P} = \begin{bmatrix}
1 & 2 & 2 & 7 \\
1 & 5 & 6 & 2 \\
3 & 3 & 4 & 5 \\
3 & 3 & 6 & 7
\end{bmatrix}\)
다음과 같은 4개의 2×2 블록으로 분할될 수 있습니다:
\(\quad\displaystyle
\mathbf{P}_{11} = \begin{bmatrix}
1 & 2 \\
1 & 5
\end{bmatrix},\quad
\mathbf{P}_{12} = \begin{bmatrix}
2 & 7\\
6 & 2
\end{bmatrix},\quad
\mathbf{P}_{21} = \begin{bmatrix}
3 & 3 \\
3 & 3
\end{bmatrix},\quad
\mathbf{P}_{22} = \begin{bmatrix}
4 & 5 \\
6 & 7
\end{bmatrix}.
\)
분할된 행렬은 그런-다음 다음과 같이 쓸 수 있습니다:
\(\quad\displaystyle \mathbf{P} = \begin{bmatrix}
\mathbf{P}_{11} & \mathbf{P}_{12} \\
\mathbf{P}_{21} & \mathbf{P}_{22}
\end{bmatrix}.\)
Block matrix multiplication
인수의 부분행렬에 대한 대수만 포함하는 블록 분할된 행렬 곱을 사용할 수 있습니다. 어쨌든, 인수의 분할은 임의적이지 않고, 사용될 모든 부분행렬 곱이 정의됨을 만족하는 두 행렬 \(A\)와 \(B\) 사이의 "적합한(conformable) 분할"이 필요합니다. \(q\) 행 분할과 \(s\) 열 분할을 갖는 \((m \times p)\) 행렬 A가 주어졌을 때
\(\quad\displaystyle \mathbf{A} = \begin{bmatrix}
\mathbf{A}_{11} & \mathbf{A}_{12} & \cdots & \mathbf{A}_{1s} \\
\mathbf{A}_{21} & \mathbf{A}_{22} & \cdots & \mathbf{A}_{2s} \\
\vdots & \vdots & \ddots & \vdots \\
\mathbf{A}_{q1} & \mathbf{A}_{q2} & \cdots & \mathbf{A}_{qs}
\end{bmatrix}\)
그리고 \(s\) 행 분할과 \(r\) 열 분할을 갖는 \((p \times n)\) 행렬 \(\mathbf{B}\)가 주어졌을 때,
\(\quad\displaystyle \mathbf{B} = \begin{bmatrix}
\mathbf{B}_{11} & \mathbf{B}_{12} & \cdots &\mathbf{B}_{1r} \\
\mathbf{B}_{21} & \mathbf{B}_{22} & \cdots &\mathbf{B}_{2r} \\
\vdots & \vdots & \ddots &\vdots \\
\mathbf{B}_{s1} & \mathbf{B}_{s2} & \cdots &\mathbf{B}_{sr}
\end{bmatrix},\)
이때 \(\mathbf{B}\)는 \(A\)의 분할과 호환되며, 다음 행렬 곱은
\(\quad\displaystyle
\mathbf{C}=\mathbf{A}\mathbf{B}
\)
블록-별로 수행할 수 있으며, \(q\) 행 분할과 \(r\) 열 분할을 갖는 \((m \times n)\) 행렬로 \(\mathbf{C}\)를 산출합니다. 결과 행렬 \(\mathbf{C}\)에서 행렬은 다음과 같이 곱함으로써 계산됩니다:
\(\quad\displaystyle
\mathbf{C}_{q r} = \sum^s_{i=1}\mathbf{A}_{q i}\mathbf{B}_{i r}.
\)
또는, 반복되는 인덱스에 걸쳐 암시적으로 합하는 아인슈타인 표기법(Einstein notation)을 사용하여:
\(\quad\displaystyle
\mathbf{C}_{q r} = \mathbf{A}_{q i}\mathbf{B}_{i r}.
\)
Block matrix inversion
만약 행렬이 4개의 블록으로 분할되면, 다음과 같이 블록-별로 반전될 수 있습니다:
\(\quad\displaystyle \mathbf{P} = \begin{bmatrix}
\mathbf{A} & \mathbf{B} \\
\mathbf{C} & \mathbf{D}
\end{bmatrix}^{-1} = \begin{bmatrix}
\mathbf{A}^{-1} + \mathbf{A}^{-1}\mathbf{B}\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}\mathbf{CA}^{-1} &
-\mathbf{A}^{-1}\mathbf{B}\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1} \\
-\left(\mathbf{D}-\mathbf{CA}^{-1}\mathbf{B}\right)^{-1}\mathbf{CA}^{-1} &
\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}
\end{bmatrix},
\)
여기서 A와 D는 임의적인 크기의 정사각 블록이고, B와 C는 분활화에 적합(conformable)합니다. 게다가, A와 P에서 A의 슈어 여: \(\mathbf{P}/\mathbf{A}=\mathbf{D-CA}^{-1}\mathbf{B}\)는 역-가능이어야 합니다.
동등하게, 블록을 순열함으로써:
\(\quad\displaystyle \mathbf{P} = \begin{bmatrix}
\mathbf{A} & \mathbf{B} \\
\mathbf{C} & \mathbf{D}
\end{bmatrix}^{-1} = \begin{bmatrix}
\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1} &
-\left(\mathbf{A}-\mathbf{BD}^{-1}\mathbf{C}\right)^{-1}\mathbf{BD}^{-1} \\
-\mathbf{D}^{-1}\mathbf{C}\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1} &
\quad \mathbf{D}^{-1} + \mathbf{D}^{-1}\mathbf{C}\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}\mathbf{BD}^{-1}
\end{bmatrix}.
\)
여기서, D와 P에서 슈어 여: \(\mathbf{P}/\mathbf{D}=\mathbf{A-BD}^{-1}\mathbf{C}\)는 역가능이어야 합니다.
만약 A와 D가 둘 다 역가능이면, 다음과 같습니다:
\(\quad\displaystyle
\begin{bmatrix}
\mathbf{A} & \mathbf{B} \\
\mathbf{C} & \mathbf{D}
\end{bmatrix}^{-1} = \begin{bmatrix}
\left(\mathbf{A} - \mathbf{B} \mathbf{D}^{-1} \mathbf{C}\right)^{-1} & \mathbf{0} \\
\mathbf{0} & \left(\mathbf{D} - \mathbf{C} \mathbf{A}^{-1} \mathbf{B}\right)^{-1}
\end{bmatrix} \begin{bmatrix}
\mathbf{I} & -\mathbf{B} \mathbf{D}^{-1} \\
-\mathbf{C} \mathbf{A}^{-1} & \mathbf{I}
\end{bmatrix}.
\)
와인스틴-아론샤인 항등식(Weinstein–Aronszajn identity)에 의해, 블록-대각 행렬에서 두 행렬 중 하나는 나머지 하나가 역가능일 때 정확히 역가능입니다.
Block matrix determinant
위의 \(2 \times 2\)-행렬의 행렬식에 대한 공식은 적절한 추가 가정 아래에서 4개의 부분행렬 \(A, B, C, D\)로 구성된 행렬에 대해 계속 유지됩니다. 라이프니츠 공식이나 슈어 여(Schur complement)를 포함하는 인수분해를 사용하여 입증될 수 있는 가장 쉬운 그러한 공식은 다음과 같습니다:
\(\quad\displaystyle \det\begin{pmatrix}A& 0\\ C& D\end{pmatrix} = \det(A) \det(D) = \det\begin{pmatrix}A& B\\ 0& D\end{pmatrix}.\)
이 공식을 사용하여, \(\begin{pmatrix}A& 0\\ C& D\end{pmatrix}\)와 \(\begin{pmatrix}A& B\\ 0& D\end{pmatrix}\)의 특성 다항식(characteristic polynomials)이 \(A\)와 \(D\)의 특성 다항식의 곱과 같음을 유도할 수 있습니다. 게다가, 만약 \(\begin{pmatrix}A& 0\\ C& D\end{pmatrix}\) 또는 \(\begin{pmatrix}A& B\\ 0& D\end{pmatrix}\)가 대각화-가능(diagonalizable)이면, \(A\)와 \(D\)는 역시 대각화가능입니다. 그 전환은 거짓입니다; 간단히 \(\begin{pmatrix}1& 1\\ 0& 1\end{pmatrix}\)를 확인하십시오.
만약 \(A\)가 역가능(invertible)이면 (그리고 유사하게 \(D\)가 역가능이면), 다음을 가집니다:
\(\quad\displaystyle \det\begin{pmatrix}A& B\\ C& D\end{pmatrix} = \det(A) \det\left(D - C A^{-1} B\right) .\)
만약 \(D\)가 \(1 \times 1\)-행렬이면, 이것은 \(\det (A) (D - CA^{-1}B)\)으로 단순화됩니다.
만약 블록이 ''같은'' 크기의 정사각 행렬이면 추가 공식이 유지됩니다. 예를 들어, \(C\)와 \(D\)가 교환하면 (즉, \(CD=DC\)이면), 다음과 같습니다:
\(\quad\displaystyle \det\begin{pmatrix}A& B\\ C& D\end{pmatrix} = \det(AD - BC).\)
이 공식은 다시 개별 블록 사이의 적절한 교환성 조건 아래에서 \(2 \times 2\) 블록보다 많은 것으로 구성된 행렬로 일반화되어 왔습니다.
\(A = D \)와 \(B=C\)에 대해, 다음 공식은 유지됩니다 (심지어 \(A\)와 \(B\)가 교환하지 않더라도)
\(\quad\displaystyle \det\begin{pmatrix}A& B\\ B& A\end{pmatrix} = \det(A - B) \det(A + B).\)
Block diagonal matrices
블록 대각 행렬(block diagonal matrix)은 주요-대각 블록이 정사각 행렬이고 모든 비-대각 블록이 영 행렬임을 만족하는 정사각 행렬(square matrix)인 블록 행렬입니다. 즉, 블록 대각 행렬 \(\mathbf{A}\)는 다음과 같은 형식을 가집니다:
\(\quad\displaystyle \mathbf{A} = \begin{bmatrix}
\mathbf{A}_1 & \mathbf{0} & \cdots & \mathbf{0} \\
\mathbf{0} & \mathbf{A}_2 & \cdots & \mathbf{0} \\
\vdots & \vdots & \ddots & \vdots \\
\mathbf{0} & \mathbf{0} & \cdots & \mathbf{A}_n
\end{bmatrix}\)
여기서 \(\mathbf{A}_k\)는 모든 k = 1, ..., n에 대해 정사각 행렬입니다. 다시 말해, 행렬 \(\mathbf{A}\)는 \(\mathbf{A}_1, \cdots, \mathbf{A}_n\)의 직접 합(direct sum)입니다. 그것은 역시 \(\mathbf{A}_1 \oplus \mathbf{A}_2 \oplus \cdots \mathbf{A}_n\) 또는 diag(\(\mathbf{A}_1, \mathbf{A}_2, \cdots, \mathbf{A}_n\))로 표시될 수 있습니다 (후자는 대각 행렬에 사용되는 것과 같은 형식입니다). 임의의 정사각 행렬은 하나의 블록만 갖는 블록 대각 행렬로 자명하게 고려될 수 있습니다.
행렬식(determinant)과 대각합(trace)에 대해, 다음 속성이 유지됩니다:
\(\quad\displaystyle \begin{align}
\det\mathbf{A} &= \det\mathbf{A}_1 \times \cdots \times \det\mathbf{A}_n, \\
\operatorname{tr}\mathbf{A} &= \operatorname{tr} \mathbf{A}_1 + \cdots + \operatorname{tr} \mathbf{A}_n.\end{align}\)
블록 대각 행렬이 역가능인 것과 그것의 각 주요 대각선 블록이 역가능인 것은 필요충분(iff) 조건이고, 이 경우에서 그 역은 다음과 같이 주어진 또 다른 블록 대각 행렬입니다:
\(\quad\displaystyle \begin{bmatrix}
\mathbf{A}_{1} & \mathbf{0} & \cdots & \mathbf{0} \\
\mathbf{0} & \mathbf{A}_{2} & \cdots & \mathbf{0} \\
\vdots & \vdots & \ddots & \vdots \\
\mathbf{0} & \mathbf{0} & \cdots & \mathbf{A}_{n}
\end{bmatrix}^{-1} = \begin{bmatrix}
\mathbf{A}_{1}^{-1} & \mathbf{0} & \cdots & \mathbf{0} \\
\mathbf{0} & \mathbf{A}_{2}^{-1} & \cdots & \mathbf{0} \\
\vdots & \vdots & \ddots & \vdots \\
\mathbf{0} & \mathbf{0} & \cdots & \mathbf{A}_{n}^{-1}
\end{bmatrix}.
\)
\(\mathbf{A}\)의 고윳값과 고유벡터(eigenvalues and eigenvectors)는 단순히 결합된 \(\mathbf{A}_k\)의 그것들입니다.
Block tridiagonal matrices
블록 삼중대각 행렬(block tridiagonal matrix)은 또 다른 특수 블록 행렬로, 블록 대각 행렬과 마찬가지로 정사각 행렬이며, 아래쪽 대각선, 주요 대각선(main diagonal) 및 위쪽 대각선에 정사각 행렬 (블록)을 가지고, 모든 다른 블록은 영 행렬입니다. 그것은 본질적으로 삼중대각 행렬(tridiagonal matrix)이지만 스칼라의 위치에 부분행렬을 가집니다. 블록 삼중대각 행렬 \(\mathbf{A}\)는 다음과 같은 형식을 가집니다:
\(\quad\displaystyle \mathbf{A} = \begin{bmatrix}
\mathbf{B}_{1} & \mathbf{C}_{1} & & & \cdots & & \mathbf{0} \\
\mathbf{A}_{2} & \mathbf{B}_{2} & \mathbf{C}_{2} & & & & \\
& \ddots & \ddots & \ddots & & & \vdots \\
& & \mathbf{A}_{k} & \mathbf{B}_{k} & \mathbf{C}_{k} & & \\
\vdots & & & \ddots & \ddots & \ddots & \\
& & & & \mathbf{A}_{n-1} & \mathbf{B}_{n-1} & \mathbf{C}_{n-1} \\
\mathbf{0} & & \cdots & & & \mathbf{A}_{n} & \mathbf{B}_{n}
\end{bmatrix}\)
여기서 \(\mathbf{A}_k\), \(\mathbf{B}_k\), 및 \(\mathbf{C}_k\)는 각각 아래쪽, 주요, 및 위쪽 대각의 정사각 부분-행렬입니다.
블록 삼중대각 행렬은 엔지니어링 문제 (예를 들어, 전산 유체 역학)의 수치 해에서 종종 발생합니다. LU 분해를 위한 최적화된 수치적 방법을 사용할 수 있고 계수 행렬로 블록 삼중대각 행렬을 갖는 방정식 시스템에 대한 효율적인 해 알고리듬을 사용할 수 있습니다. 삼중대각 행렬을 포함하는 방정식 시스템의 효율적인 해에 사용되는 토머스 알고리듬(Thomas algorithm)은 행렬 연산을 사용하여 블록 삼중대각 행렬에 적용될 수 있습니다 (블록 LU 분해 참조).
Block Toeplitz matrices
블록 퇴플리츠 행렬(block Toeplitz matrix)은 또 다른 특수 블록 행렬로, 퇴플리츠 행렬(Toeplitz matrix)은 대각선 아래로 반복된 원소를 가지는 것처럼 행렬의 대각선 아래로 반복되는 블록을 포함합니다.
블록 퇴플리츠 행렬 \(\mathbf{A}\)의 형식은 다음과 같습니다:
\(\quad\displaystyle \mathbf{A} = \begin{bmatrix}
\mathbf{A}_{(1,1)} & \mathbf{A}_{(1,2)} & & & \cdots & \mathbf{A}_{(1,n-1)} & \mathbf{A}_{(1,n)} \\
\mathbf{A}_{(2,1)} & \mathbf{A}_{(1,1)} & \mathbf{A}_{(1,2)} & & & & \mathbf{A}_{(1,n-1)} \\
& \ddots & \ddots & \ddots & & & \vdots \\
& & \mathbf{A}_{(2,1)} & \mathbf{A}_{(1,1)} & \mathbf{A}_{(1,2)} & & \\
\vdots & & & \ddots & \ddots & \ddots & \\
\mathbf{A}_{(n-1,1)} & & & & \mathbf{A}_{(2,1)} & \mathbf{A}_{(1,1)} & \mathbf{A}_{(1,2)} \\
\mathbf{A}_{(n,1)} & \mathbf{A}_{(n-1,1)} & \cdots & & & \mathbf{A}_{(2,1)} & \mathbf{A}_{(1,1)}
\end{bmatrix}.\)
Block transpose
개별 블록이 재정렬되지만 전치되지 않는 블록 행렬에 대해 특별한 형식의 행렬 전치(transpose)도 정의될 수 있습니다. \(A=(B_{ij})\)를 \(m \times n\) 블록 \(B_{ij}\)를 갖는 \(k \times l\) 블록 행렬이라고 놓으면, \(A\)의 블록 전치는 \(m \times n\) 블록 \(\left(A^\mathcal{B}\right)_{ij} = B_{ji}\)를 갖는 \(l \times k\) 블록 행렬 \(A^\mathcal{B}\)입니다.
기존 대각합 연산자와 마찬가지로, 블록 전치도 \((A + C)^\mathcal{B} = A^\mathcal{B} + C^\mathcal{B} \)임을 만족하는 선형 매핑(linear mapping)입니다. 어쨌든, 일반적으로 \((A C)^\mathcal{B} = C^\mathcal{B} A^\mathcal{B} \) 속성은 \(A\)와 \(C\)의 블록이 교환하지 않는 한 유지되지 않습니다.
Direct sum
임의적인 행렬 \(\mathbf A\) (크기 \(m \times n\))와 \(\mathbf B\) (크기 \(p \times q\))에 대해, \(\mathbf A \oplus \mathbf B\)로 표시되고 다음과 같이 정의되는 \(\mathbf A\)와 \(\mathbf B\)의 직접 합(direct sum)을 가집니다:
\(\quad\displaystyle
\mathbf{A} \oplus \mathbf{B} =
\begin{bmatrix}
a_{11} & \cdots & a_{1n} & 0 & \cdots & 0 \\
\vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\
a_{m1} & \cdots & a_{mn} & 0 & \cdots & 0 \\
0 & \cdots & 0 & b_{11} & \cdots & b_{1q} \\
\vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\
0 & \cdots & 0 & b_{p1} & \cdots & b_{pq}
\end{bmatrix}.
\)
예를 들어,
\(\quad\displaystyle
\begin{bmatrix}
1 & 3 & 2 \\
2 & 3 & 1
\end{bmatrix} \oplus
\begin{bmatrix}
1 & 6 \\
0 & 1
\end{bmatrix} =
\begin{bmatrix}
1 & 3 & 2 & 0 & 0 \\
2 & 3 & 1 & 0 & 0 \\
0 & 0 & 0 & 1 & 6 \\
0 & 0 & 0 & 0 & 1
\end{bmatrix}.
\)
이 연산은 자연스럽게 임의적인 차원 배열로 일반화됩니다 (\(\mathbf A\)와 \(\mathbf B\)가 같은 차원의 숫자를 가진다는 조건으로 합니다).
행렬의 두 벡터 공간(vector spaces)의 직접 합(direct sum)에 있는 임의의 원소는 두 행렬의 직접 합으로 나타낼 수 있음에 주목하십시오.
Application
선형 대수(linear algebra) 용어에서, 블록 행렬의 사용은 기저 벡터(basis vectors)의 해당 '묶음(bunches)' 측면에서 생각되는 선형 매핑(linear mapping)에 해당합니다. 그것은 도메인(domain)과 치역(range)의 직접 합 분해를 구별한다는 아이디어와 다시 일치합니다. 그것은 블록이 영 행렬(zero matrix)이면 항상 특히 중요합니다; 그것은 더해지는 숫자가 부분-합으로 매핑하는 정보를 전달합니다.
선형 매핑과 직접 합을 통한 해석이 주어졌을 때, 정사각 행렬 (m = n인 경우)에 대해 발생하는 특수한 유형의 블록 행렬이 있습니다. 그것들을 위해 우리는 n-차원 공간 V의 자기사상(endomorphism)으로 해석을 가정할 수 있습니다; 행과 열의 묶음이 같은 블록 구조는 (두 개가 아닌) V 위에 단일 직접 합 분해에 해당하기 때문에 중요합니다. 해당 경우에서, 예를 들어, 명백한 의미에서 대각(diagonal) 블록은 모두 정사각입니다. 이러한 유형의 구조는 조르당 정규 형식(Jordan normal form)을 설명하는 데 필요합니다.
이 기술은 VLSI 칩 설계를 포함한 행렬의 계산, 열-행 확장을 줄이기 위해 사용되고, 많은 컴퓨터 과학 응용 프로그램에서 사용됩니다. 빠른 행렬 곱셈(matrix multiplication)을 위한 슈트라센 알고리듬(Strassen algorithm)과 데이터 전송에서 오류 탐지와 복구를 위한 Hamming(7,4) 인코딩이 그 예입니다.
이 기술은 A,B,C, 및 D 행렬의 원소가 모두 해당 원소에 대해 같은 필드를 필요로 하지 않는 경우에도 사용될 수 있습니다. 예를 들어, 행렬 A는 복소수 필드에 걸쳐 있을 수 있고, 반면에 행렬 D는 실수 필드에 결쳐 있을 수 있습니다. 이것은 행렬 중 하나 내에서 연산을 단순화하면서 행렬과 관련된 유효한 연산으로 이어질 수 있습니다. 예를 들어, D에 실수 원소만 있으면 역을 찾는 것은 복소수 원소를 고려해야 하는 경우보다 계산이 덜 걸립니다. 그러나 실수는 복소수의 부분필드이므로 (더 나아가서 그것은 투영으로 고려될 수 있음), 행렬 연산은 잘 정의될 수 있습니다.
References
- Strang, Gilbert (1999). "Lecture 3: Multiplication and inverse matrices". MIT Open Course ware. 18:30–21:10.