본문 바로가기
영문 위키피디아 번역

(번역) Block matrix

by 다움위키 2024. 1. 12.
Original article: w:Block matrix

 
수학(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},
\)

여기서 AD는 임의적인 크기의 정사각 블록이고, BC는 분활화에 적합(conformable)합니다. 게다가, AP에서 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}.
\)

여기서, DP에서 슈어 여: \(\mathbf{P}/\mathbf{D}=\mathbf{A-BD}^{-1}\mathbf{C}\)는 역가능이어야 합니다.
만약 AD가 둘 다 역가능이면, 다음과 같습니다:
\(\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