맨위로가기

가역행렬

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

가역 행렬은 정사각 행렬 A에 대해 AB = BA = I를 만족하는 행렬 B가 존재할 때 A를 의미하며, B는 A의 역행렬로 유일하게 결정된다. 가역 행렬은 역행렬을 가지며, 기본 행렬의 곱으로 표현 가능하고, 행렬식이 0이 아니며, 다양한 조건과 동치 관계를 갖는다. 가역 행렬의 계산은 가우스 소거법, 2x2, 3x3 행렬의 역행렬 계산, 블록 행렬 분할, 뉴턴 방법, 케일리-해밀턴 방법, 고유값 분해, 숄레스키 분해 등의 방법을 사용한다. 가역 행렬은 선형 방정식 시스템 풀이, 컴퓨터 그래픽스, 무선 통신 MIMO 기술 등 다양한 분야에 응용되며, 역행렬의 도함수는 \frac{\mathrm{d}\mathbf{A}^{-1}}{\mathrm{d}t} = - \mathbf{A}^{-1} \frac{\mathrm{d}\mathbf{A}}{\mathrm{d}t} \mathbf{A}^{-1}로 표현된다.

더 읽어볼만한 페이지

  • 행렬식 - 부피 형식
    부피 형식은 다양체의 방향 결정, 측도 정의, 벡터장 발산 계산에 사용되는 미분 형식의 일종으로, 유향 다양체에서는 밀도와 관련되며, 리 군, 심플렉틱 다양체, 준-리만 다양체 등에서 자연스럽게 정의된다.
  • 행렬식 - 야코비 행렬
    야코비 행렬은 열린 집합 U에서 정의된 함수 f의 각 성분 편도함수를 요소로 가지는 행렬이며, 함수가 미분 가능할 때 전미분을 나타내고, n=m일 경우 행렬식은 함수의 동작에 대한 정보를 제공하며 다양한 분야에 응용된다.
  • 행렬론 - 행렬식
    행렬식은 정사각 행렬에 대해 정의되는 값으로, 선형 방정식의 해를 구하고 선형 독립성을 확인하며 기저의 방향과 부피를 계산하는 데 사용되며, 가우스 소거법 등의 계산 기법과 가역성 판단, 고유값 연관성 등의 성질을 갖는다.
  • 행렬론 - 행렬 분해
    행렬 분해는 주어진 행렬을 특정 성질을 갖는 여러 행렬의 곱으로 표현하는 방법으로, 수치 해석에서 행렬 알고리즘 구현 및 선형 연립 방정식 해를 구하거나 행렬 특성 분석에 활용되며 LU 분해, QR 분해, 특잇값 분해 등이 있다.
  • 행렬 - 스핀 (물리학)
    스핀은 양자역학적 각운동량으로, 양자화된 값을 가지며 자기 쌍극자 모멘트를 유발하여 다양한 분야에 응용되고 스핀트로닉스 기술 발전에 기여하지만, 전자의 스핀 기원은 아직 완전히 밝혀지지 않았다.
  • 행렬 - 파울리 행렬
    파울리 행렬은 양자역학에서 스핀을 나타내는 데 사용되는 에르미트 행렬이자 유니타리 행렬로, 행렬식은 -1이고 대각합은 0이며, 리 대수의 생성원이자 파울리 벡터로 정의되어 다양한 물리학 분야에서 활용된다.
가역행렬
정의
설명행렬식(determinant)이 0이 아닌 정사각행렬, 또는 곱셈에 대한 역행렬을 갖는 행렬
다른 이름정칙행렬(正則行列, regular matrix)
비특이행렬(非特異行列, nonsingular matrix)
성질
필요충분조건행렬식이 0이 아니다.
행렬의 계수(rank)가 행렬의 크기와 같다.
행렬의 열(column)들이 선형 독립이다.
행렬의 핵(kernel)이 자명하다.
0을 고유값으로 갖지 않는다.
2x2 행렬의 가역성
조건행렬 에 대해 이면 가역행렬이다.
역행렬}.
예시
예시행렬 은 가역행렬이다.
행렬 은 가역행렬이다.
행렬 은 가역행렬이 아니다.

2. 정의

''K'' 위에서 정의된 ''n'' × ''n'' 정사각 행렬 ''A''에 대하여, 다음 조건을 만족하는 ''n'' × ''n'' 정사각 행렬 ''B''가 존재할 때, ''A''를 '''가역 행렬''' 또는 '''정칙 행렬'''이라고 한다.[1]

:\mathbf{AB} = \mathbf{BA} = \mathbf{I}_n

여기서 '''I'''''n''는 ''n'' × ''n'' 단위 행렬이며, 사용된 곱셈은 일반적인 행렬 곱셈이다. 이때 ''B''는 ''A''에 의해 유일하게 결정되며, ''A''의 (곱셈) '''''역행렬'''''이라고 하고 '''A'''^{-1}로 표기한다.[2] 행렬 반전은 원래 행렬과 곱했을 때 단위 행렬을 얻는 행렬을 찾는 과정이다.

가역적이지 않은 정사각 행렬은 '''특이 행렬''' 또는 '''퇴화 행렬'''이라고 불린다. 체에 속하는 원소를 가진 정사각 행렬은 정방 행렬의 행렬식이 0일 때와 그 때만 특이 행렬이다. 특이 행렬은 드문 경우인데, 정사각 행렬의 원소가 수직선 또는 복소 평면의 어떤 경계 영역에서 무작위로 선택되면, 해당 행렬이 특이 행렬일 확률은 0이며, 즉, "거의 발생하지 않는다".

의 원소를 성분으로 갖는 ''n''차 정사각 행렬 ''A''에 대하여,

:AB = E = BA

를 만족하는 ''n''차 정사각 행렬 ''B''가 존재할 때, ''A''는 ''n''차 '''가역 행렬''' 또는 간단히 '''가역'''이라고 한다.[20] ''A''가 가역 행렬이면 위의 성질을 만족하는 ''B''는 유일하게 결정된다. 이를 ''A''의 '''역행렬'''(inverse matrix영어)이라고 부르며, ''A''^{-1}로 나타낸다.

3. 성질

K 위에서 정의된 n \times n 행렬 A, B 및 스칼라 k \in K에 대하여, 다음과 같은 항등식들이 성립한다.[1]


  • (A^{-1})^{-1} = A
  • (kA)^{-1} = k^{-1}A^{-1}
  • (AB)^{-1} = B^{-1}A^{-1}


즉, 체 K 위의 n \times n 가역 행렬의 집합은 을 이루며, 이를 일반선형군 \operatorname{GL}(n;K)이라고 한다. 또한, 역행렬은 일반선형군의 자기 반대 동형을 정의한다.

n차 정칙 행렬 A, B에 대해 다음이 추가로 성립한다.

  • A의 여인수 행렬을 \tilde{A}라고 하면 A^{-1} = |A|^{-1}\tilde{A}이다.
  • n차 정방 행렬 N이 멱영 행렬이면, I - N은 정칙 행렬이고, 역행렬은 I + N + \dots + N^{n - 1}이다.
  • A전치 행렬 A^{\operatorname{T}}도 정칙 행렬이며, (A^{\operatorname{T}})^{-1} = (A^{-1})^{\operatorname{T}}이다.
  • A에르미트 수반 A^{\operatorname{H}}도 정칙 행렬이며, (A^{\operatorname{H}})^{-1} = (A^{-1})^{\operatorname{H}}이다.

3. 1. 가역 행렬 정리

체 ''K'' 상의 정방 ''n''×''n'' 행렬 ''A''에 대해, 다음 명제들은 동치이다:[3]

  • ''A''는 가역행렬이다. 즉, 행렬 곱셈에 대한 역행렬을 갖는다. 즉, ''AB'' = ''I''''n'' = ''BA''를 만족하는 ''B''가 존재한다.
  • ''x''를 ''Ax''에 매핑하는 선형 변환은 가역적이다. 즉, 함수 합성에 대한 역함수를 갖는다.
  • 전치 행렬 ''A''T는 가역 행렬이다.
  • ''A''는 ''n''×''n'' 항등 행렬 ''I''''n''와 행 동치이다.
  • ''A''는 ''n''×''n'' 항등 행렬 ''I''''n''와 열 동치이다.
  • ''A''는 ''n''개의 피벗 위치를 갖는다.
  • ''A''는 계수가 rank ''A'' = ''n''으로 전체 계수를 갖는다.
  • ''A''는 커널이 자명하다: ker(''A'') = {''0''}.
  • ''x''를 ''Ax''에 매핑하는 선형 변환은 전단사 함수이다. 즉, 방정식 ''Ax'' = ''b''는 ''K''''n''의 각 ''b''에 대해 정확히 하나의 해를 갖는다.
  • ''A''의 열은 ''K''''n''기저를 형성한다.
  • ''A''의 행은 ''K''''n''의 기저를 형성한다.
  • ''A''의 행렬식은 0이 아니다: det ''A'' ≠ 0.
  • 숫자 0은 ''A''의 고유값이 아니다.
  • 행렬 ''A''는 기본 행렬의 유한한 곱으로 표현될 수 있다.

4. 계산

행렬의 수반 행렬을 이용해 역행렬을 구할 수 있다. 가 가역 행렬이면 다음 공식이 성립한다.[25][26]

:\mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})} \operatorname{adj}(\mathbf{A}).

크라메르 공식을 활용하여 역행렬을 구할 수도 있다. 이 방법은 여인자 행렬의 전치 행렬인 수반 행렬을 이용하며, 작은 크기의 행렬에는 효율적이지만 큰 행렬에는 비효율적이다.

케일리-해밀턴 정리를 이용하면 행렬 \mathbf{A}의 역행렬을 \det(\mathbf{A})의 값, 대각합, 그리고 \mathbf{A}의 거듭제곱을 사용하여 표현할 수 있다.[7]

행렬의 고유값 분해를 통해서도 역행렬을 구할 수 있는데, 이는 행렬의 고유값이 모두 0이 아닌 경우에 가능하다.

행렬이 양의 정부호 행렬인 경우에는 숄레스키 분해를 이용하여 역행렬을 계산할 수 있다.

4. 1. 가우스 소거법

가우스 소거법은 어떤 행렬이 가역행렬인지 판단하고 그 행렬의 역행렬을 구할 수 있는 알고리즘이다. LU 분해를 이용하면 가우스 소거법을 더 빨리 계산할 수 있다.[4]

가우스 소거법은 행렬의 역행렬을 계산하는 유용하고 쉬운 방법이다. 이 방법을 사용하려면, 먼저 역행렬을 구할 행렬을 왼쪽에, 항등 행렬을 오른쪽에 배치하여 확대 행렬을 만든다. 그런 다음 가우스 소거법을 사용하여 왼쪽을 항등 행렬로 변환하면, 오른쪽이 입력 행렬의 역행렬이 된다.

예를 들어 다음 행렬을 사용한다.

:\mathbf{A} = \begin{pmatrix}-1 & \tfrac{3}{2} \\ 1 & -1\end{pmatrix}.

역행렬을 계산하는 첫 번째 단계는 다음과 같은 확대 행렬을 만드는 것이다.

:\left(\!\!\begin{array}{cc|cc}

  • 1 & \tfrac{3}{2} & 1 & 0 \\

1 & -1 & 0 & 1

\end{array}\!\!\right) .

이 행렬의 첫 번째 행을 R_1, 두 번째 행을 R_2라고 한다. 그런 다음 행 1을 행 2에 더한다(R_1 + R_2 \to R_2). 그러면

:\left(\!\!\begin{array}{cc|cc}

  • 1 & \tfrac{3}{2} & 1 & 0 \\

0 & \tfrac{1}{2} & 1 & 1

\end{array}\!\!\right).가 된다.

다음으로, 행 2에 3을 곱한 값을 행 1에서 뺀다(R_1 - 3\, R_2 \to R_1). 그러면

:\left(\!\!\begin{array}{cc|cc}

  • 1 & 0 & -2 & -3 \\

0 & \tfrac{1}{2} & 1 & 1

\end{array}\!\!\right).가 된다.

마지막으로, 행 1에 −1을 곱하고(-R_1 \to R_1), 행 2에 2를 곱한다(2\, R_2 \to R_2). 이렇게 하면 왼쪽에는 항등 행렬이, 오른쪽에는 역행렬이 생성된다.

:\left(\!\!\begin{array}{cc|cc}

1 & 0 & 2 & 3 \\

0 & 1 & 2 & 2

\end{array}\!\!\right).

따라서,

:\mathbf{A}^{-1} = \begin{pmatrix}

2 & 3 \\

2 & 2

\end{pmatrix}.

이것이 작동하는 이유는 가우스 소거법 과정이 기본 행렬(\mathbf E_n)을 사용한 기본 행 연산의 일련의 좌측 행렬 곱셈으로 볼 수 있기 때문이다.

:\mathbf E_n \mathbf E_{n-1} \cdots \mathbf E_2 \mathbf E_1 \mathbf A = \mathbf I.

\mathbf A^{-1}를 사용하여 우측 곱셈을 적용하면

: \mathbf E_n \mathbf E_{n-1} \cdots \mathbf E_2 \mathbf E_1 \mathbf I = \mathbf I \mathbf A^{-1}.이 된다.

그리고 오른쪽 \mathbf I \mathbf A^{-1} = \mathbf A^{-1}은 우리가 원하는 역행렬이다.

\mathbf E_n \mathbf E_{n-1} \cdots \mathbf E_2 \mathbf E_1 \mathbf I을 얻기 위해, 확대 행렬을 만들고 가우스 소거법을 적용한다. 두 부분은 동일한 일련의 기본 행 연산을 사용하여 변환된다. 왼쪽 부분이 항등행렬이 되면, 동일한 기본 행 연산 순서를 적용한 오른쪽 부분은 역행렬이 된다.

4. 2. 수치해석적 방법

수치 해석에서 대부분의 경우 선형 시스템을 풀기 위해 역행렬을 직접 구할 필요는 없다. 실수 체에서 n \times n 특이 행렬의 집합은 \mathbb R^{n \times n}의 부분 집합으로 간주되며, 이는 영집합으로, 즉 르베그 측도가 0이다. 이는 특이 행렬이 행렬식 함수의 근이기 때문이다. 이 함수는 행렬의 각 요소에 대한 다항식이므로 연속 함수이다. 따라서 측도론의 언어로, 거의 모든 n \times n 행렬은 가역적이다.

게다가, n \times n 가역 행렬의 집합은 모든 n \times n 행렬의 위상 공간에서 열린 집합이고 조밀 집합이다. 동등하게, 특이 행렬의 집합은 n \times n 행렬의 공간에서 닫힌 집합이고 어디에도 조밀하지 않다.

그러나 실제로, 비가역 행렬을 마주칠 수 있다. 그리고 수치 해석의 수치 계산에서, 가역적이지만 비가역 행렬에 가까운 행렬은 여전히 문제가 될 수 있다. 이러한 행렬은 불량 조건 행렬이라고 한다.

작은 크기의 행렬에 대해서는 공통인자로 이루어진 행렬을 구해 계산하면 더 빨리 계산할 수도 있다. 뉴턴 방법의 일반화는 적절한 시작 시드를 찾는 것이 편리하다면, 곱셈 역원 알고리즘에 사용되는 방법과 같이 편리할 수 있다.

: X_{k+1} = 2X_k - X_k A X_k.

빅토르 판과 존 레이프는 시작 시드를 생성하는 방법을 연구했다.[5][6]

뉴턴 방법은 위 호모토피에 대해 생성된 수열과 충분히 유사하게 동작하는 관련 행렬의 족을 다룰 때 특히 유용하다. 때로는 새로운 역행렬에 대한 근사치를 개선하기 위한 좋은 시작점은 이전 행렬의 이미 얻어진 역행렬일 수 있으며, 이는 현재 행렬과 거의 일치한다. 예를 들어, Denman–Beavers 반복법에 의한 행렬 제곱근을 얻는 데 사용되는 일련의 역행렬 쌍이 이에 해당한다. 이는 각 새로운 행렬에서 한 번의 반복으로는 충분하지 않을 정도로 서로 가깝지 않은 경우, 여러 번의 반복이 필요할 수 있다. 뉴턴 방법은 또한 불완전한 컴퓨터 산술로 인한 작은 오류로 오염된 가우스-조르단 알고리즘에 대한 "수정"에도 유용하다.

케일리-해밀턴 정리를 이용하면 행렬 \mathbf{A}의 역행렬을 \det(\mathbf{A})의 값, 대각합, 그리고 \mathbf{A}의 거듭제곱을 사용하여 표현할 수 있다.[7]

크라메르 공식을 활용하여 역행렬을 구하는 방법도 존재한다. 수반 행렬이라고 알려진 여인자 행렬의 전치 행렬을 작성하는 것은 '작은' 행렬의 역행렬을 계산하는 효율적인 방법일 수 있지만, 이 재귀적인 방법은 큰 행렬의 경우 비효율적이다.

가우스 소거법도 참조

행렬의 가역성은 행렬의 기본 변형을 사용하여 판정할 수 있다. 구체적인 역행렬 계산에는 기본 변형을 사용하여 순차적으로 소거해 나가는 방법이 자주 사용된다. 한편, 이론적으로는 행렬식을 사용한 크라메르 공식도 중요하다. 그러나 이 방법은 역행렬을 수치 계산하는 데 적합하지 않다.[25][26]

4. 3. 2 × 2 행렬의 역행렬

2 × 2 행렬의 역행렬은 다음과 같이 계산할 수 있다.[8]

:\mathbf{A}^{-1} = \begin{bmatrix}

a & b \\ c & d \\

\end{bmatrix}^{-1} =

\frac{1}{\det \mathbf{A}} \begin{bmatrix}

\,\,\,d & \!\!-b \\ -c & \,a \\

\end{bmatrix} =

\frac{1}{ad - bc} \begin{bmatrix}

\,\,\,d & \!\!-b \\ -c & \,a \\

\end{bmatrix}.



이것이 가능한 이유는 \frac{1}{ad - bc}가 해당 행렬의 행렬식의 역수이기 때문이다.

예를 들어, 다음과 같은 행렬 \mathbf{B} 는 가역행렬이다.

:\mathbf{B} = \begin{pmatrix}-1 & \tfrac{3}{2} \\ 1 & -1\end{pmatrix} .

\det \mathbf{B} = -\frac{1}{2} 임을 계산할 수 있으며, 이는 0이 아니다.

반면, 다음과 같은 행렬 \mathbf{C}는 특이 행렬(가역행렬이 아닌 행렬)이다.

:\mathbf{C} = \begin{pmatrix} -1 & \tfrac{3}{2} \\ \tfrac{2}{3} & -1 \end{pmatrix} .

\mathbf{C} 의 행렬식은 0이며, 이는 행렬이 가역행렬이 아닐 필요충분 조건이다.

케일리-해밀턴 방법을 이용하면 2 × 2 행렬 A의 역행렬을 다음과 같이 구할 수 있다.

:\mathbf{A}^{-1} = \frac{1}{\det \mathbf{A}} \left[ \left( \operatorname{tr}\mathbf{A} \right) \mathbf{I} - \mathbf{A} \right] .

4. 4. 3 × 3 행렬의 역행렬

n이 3일 경우, 3 × 3 행렬의 역행렬은 다음과 같이 계산할 수 있다.

:A^{-1} = \begin{bmatrix}

a & b & c\\ d & e & f \\ g & h & i \\

\end{bmatrix}^{-1}

=

\frac{1}

\begin{bmatrix}

ei - fh & -(bi-ch) & bf - ce \\

  • (di - fg)& ai - cg & -(af-cd) \\

dh - eg & -(ah-bg) & ae - bd

\end{bmatrix}

=

\frac{1}

\begin{bmatrix}

ei - fh & ch - bi & bf - ce \\

fg - di & ai - cg & cd - af \\

dh - eg & bg - ah & ae - bd

\end{bmatrix}

:|A| = a(ei-fh) - b(di-fg) + c(dh-eg) = - d(bi-ch) + e(ai - cg) - f(ah-bg) = g(bf-ce) - h(af-cd) + i(ae-bd) \

계산 효율성이 높은 행렬의 역행렬은 다음과 같이 주어진다.

: \mathbf{A}^{-1} = \begin{bmatrix}

a & b & c\\ d & e & f \\ g & h & i\\

\end{bmatrix}^{-1} =

\frac{1}{\det(\mathbf{A})} \begin{bmatrix}

\, A & \, B & \,C \\ \, D & \, E & \, F \\ \, G & \, H & \, I\\

\end{bmatrix}^\mathrm{T} =

\frac{1}{\det(\mathbf{A})} \begin{bmatrix}

\, A & \, D & \,G \\ \, B & \, E & \,H \\ \, C & \,F & \, I\\

\end{bmatrix}



여기서 스칼라 A는 행렬 \mathbf{A}와 혼동해서는 안 된다.

행렬식이 0이 아니면, 행렬은 역행렬이 존재하며, 위 오른쪽 중간 행렬의 각 항목은 다음과 같다.

: \begin{alignat}{6}

A &={}& (ei - fh), &\quad& D &={}& -(bi - ch), &\quad& G &={}& (bf - ce), \\

B &={}& -(di - fg), &\quad& E &={}& (ai - cg), &\quad& H &={}& -(af - cd), \\

C &={}& (dh - eg), &\quad& F &={}& -(ah - bg), &\quad& I &={}& (ae - bd). \\

\end{alignat}

\mathbf{A}의 행렬식은 사루스 규칙을 적용하여 다음과 같이 계산할 수 있다.

: \det(\mathbf{A}) = aA + bB + cC.

케일리-해밀턴 분해는 다음과 같다.

: \mathbf{A}^{-1} =

\frac{1}{\det (\mathbf{A})}\left( \tfrac{1}{2}\left[ (\operatorname{tr}\mathbf{A})^{2} - \operatorname{tr}(\mathbf{A}^{2})\right] \mathbf{I} - \mathbf{A}\operatorname{tr}\mathbf{A} + \mathbf{A}^{2}\right).



일반적인 3 × 3 역행렬은 외적과 스칼라 삼중곱을 사용하여 간결하게 표현할 수 있다. 행렬 \mathbf{A} = \begin{bmatrix} \mathbf{x}_0 & \mathbf{x}_1 & \mathbf{x}_2\end{bmatrix} (세 개의 열 벡터, \mathbf{x}_0, \mathbf{x}_1, \mathbf{x}_2로 구성)가 역행렬을 가지면, 그 역행렬은 다음과 같이 주어진다.

: \mathbf{A}^{-1} = \frac{1}{\det(\mathbf A)}\begin{bmatrix}

{(\mathbf{x}_1\times\mathbf{x}_2)}^\mathrm{T} \\

{(\mathbf{x}_2\times\mathbf{x}_0)}^\mathrm{T} \\

{(\mathbf{x}_0\times\mathbf{x}_1)}^\mathrm{T}

\end{bmatrix}.

\mathbf{A}의 행렬식, \det(\mathbf{A}),은 \mathbf{x}_0, \mathbf{x}_1\mathbf{x}_2의 스칼라 삼중곱과 같다. 즉, 행 또는 열에 의해 형성된 평행육면체의 부피이다.

: \det(\mathbf{A}) = \mathbf{x}_0\cdot(\mathbf{x}_1\times\mathbf{x}_2).

4. 5. 작은 블록으로 나눠서 계산하는 법

다음과 같은 식을 이용하면 행렬을 몇 개의 작은 블록 행렬로 나누어 계산할 수 있다.[9]

:\begin{bmatrix} A & B \\ C & D \end{bmatrix}^{-1} = \begin{bmatrix} A^{-1}+A^{-1}B(D-CA^{-1}B)^{-1}CA^{-1} & -A^{-1}B(D-CA^{-1}B)^{-1} \\ -(D-CA^{-1}B)^{-1}CA^{-1} & (D-CA^{-1}B)^{-1} \end{bmatrix}

A, B, C, D는 행렬의 임의의 작은 블록이다. 이 방법은 A가 대각행렬이고 A슈어 보수행렬(D-CA^{-1}B)이 작은 크기일 때 특히 유용하다. 두 개의 행렬에 대한 역행렬만 계산하면 되기 때문이다. 이 방법은 행렬을 더 빠르게 곱하는 슈트라센 알고리즘의 개발자 포커 슈트라센이 발견했다.

한스 볼츠(1923)는 이 기법을 측지 행렬의 역행렬을 구하는 데 사용했으며, 타데우스 바나키에비츠(1937)는 이를 일반화하고 정확성을 증명했다.

영률 정리에 따르면 \mathbf{A}의 영성은 역행렬의 오른쪽 아래에 있는 부분 블록의 영성과 같고, \mathbf{B}의 영성은 역행렬의 오른쪽 위에 있는 부분 블록의 영성과 같다.

\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}.



위의 두 식을 동일하게 하면 다음을 얻을 수 있다.

:\begin{align}

\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}

&= \mathbf{A}^{-1} + \mathbf{A}^{-1}\mathbf{B}\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}\mathbf{CA}^{-1} \\

\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}\mathbf{BD}^{-1}

&= \mathbf{A}^{-1}\mathbf{B}\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1} \\

\mathbf{D}^{-1}\mathbf{C}\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}

&= \left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}\mathbf{CA}^{-1} \\

\mathbf{D}^{-1} + \mathbf{D}^{-1}\mathbf{C}\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}\mathbf{BD}^{-1}

&= \left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}

\end{align}

여기서 위의 식은 우드버리 행렬 항등식이며, 이는 이항 역정리와 동일하다.

\mathbf{A}\mathbf{D}가 모두 가역 행렬인 경우, 위 두 블록 행렬 역행렬을 결합하여 다음과 같은 간단한 인수분해를 제공할 수 있다.

:\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}.



와인스타인-아론자인의 항등식에 의해, 블록 대각 행렬의 두 행렬 중 하나가 가역 행렬이면 다른 행렬도 가역 행렬이다.

이 공식은 상단 오른쪽 블록 행렬 \mathbf{B}영행렬일 때 크게 단순화된다. 이 공식은 행렬 \mathbf{A}\mathbf{D}가 비교적 간단한 역행렬 공식(또는 블록이 모두 정방 행렬이 아닌 경우 유사 역행렬)을 가질 때 유용하다. 이 특수한 경우, 위에 제시된 일반적인 블록 행렬 역행렬 공식은 다음과 같이 된다.

:\begin{bmatrix} \mathbf{A} & \mathbf{0} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} =

\begin{bmatrix} \mathbf{A}^{-1} & \mathbf{0} \\ -\mathbf{D}^{-1}\mathbf{CA}^{-1} & \mathbf{D}^{-1} \end{bmatrix}.

주어진 가역 행렬이 가역 블록 \mathbf{A}를 갖는 대칭 행렬인 경우, 다음 블록 역행렬 공식이 성립한다.[12]

:\begin{bmatrix} \mathbf{A} & \mathbf{C}^T \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} =

\begin{bmatrix}

\mathbf{A}^{-1} + \mathbf{A}^{-1}\mathbf{C}^T \mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1} & -\mathbf{A}^{-1}\mathbf{C}^T\mathbf{S}^{-1} \\

  • \mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1} & \mathbf{S}^{-1}

\end{bmatrix},



여기서 \mathbf{S} = \mathbf{D} - \mathbf{C}\mathbf{A}^{-1}\mathbf{C}^T이다. 이는 절반 크기 행렬 \mathbf{A}\mathbf{S}에 대한 2번의 역행렬 연산과 절반 크기 행렬에 대한 4번의 곱셈만 필요하며, 제대로 구성된 경우

:\begin{align}

\mathbf{W}_1 &= \mathbf{C}\mathbf{A}^{-1}, \\[3mu]

\mathbf{W}_2 &= \mathbf{W}_1\mathbf{C}^{T}=\mathbf{C}\mathbf{A}^{-1}\mathbf{C}^T, \\[3mu]

\mathbf{W}_3 &= \mathbf{S}^{-1}\mathbf{W}_1=\mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1}, \\[3mu]

\mathbf{W}_4 &= \mathbf{W}_1^T\mathbf{W}_3=\mathbf{A}^{-1}\mathbf{C}^T \mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1},

\end{align}

사소한 복잡성의 덧셈, 뺄셈, 부정 및 전치 연산과 함께 이루어진다. 모든 행렬 \mathbf{M}은 관련된 양의 반정부호, 대칭 행렬 \mathbf{M}^T\mathbf{M}을 가지며, 이는 \mathbf{M}이 가역 행렬인 경우에만 정확히 가역적(및 양의 정부호)이다. \mathbf{M}^{-1}=\left(\mathbf{M}^T\mathbf{M}\right)^{-1}\mathbf{M}^T로 작성하면, 양의 정부호 행렬 \mathbf{M}^T\mathbf{M}이 왼쪽 상단 블록 \mathbf{A}에 대한 가역성 조건을 만족하므로 행렬 역행렬을 대칭 행렬의 역행렬을 구하는 것과 2개의 추가 행렬 곱셈으로 줄일 수 있다.

이러한 공식들을 함께 사용하면 내부적으로 사용되는 행렬 곱셈 알고리즘과 동일한 시간 복잡도를 갖는 대칭 행렬의 블록별 역행렬을 사용하는 분할 정복 알고리즘을 구성할 수 있다.[12] 행렬 곱셈 복잡도에 대한 연구에 따르면 O(n^{2.371552}) 연산의 복잡도를 갖는 행렬 곱셈 알고리즘이 존재하며, 가장 잘 입증된 하한은 \Omega(n^2 \log n)이다.[13]

4. 6. 뉴턴 방법

뉴턴 방법의 일반화는 적절한 시작 시드를 찾는 것이 편리하다면, 곱셈 역원 알고리즘에 사용되는 방법과 같이 편리할 수 있다.[5][6]

:X_{k+1} = 2X_k - X_k A X_k.

뉴턴 방법은 호모토피에 대해 생성된 수열과 충분히 유사하게 동작하는 관련 행렬의 족을 다룰 때 특히 유용하다. 때로는 새로운 역행렬에 대한 근사치를 개선하기 위한 좋은 시작점은 이전 행렬의 이미 얻어진 역행렬일 수 있으며, 이는 현재 행렬과 거의 일치한다. 예를 들어, Denman–Beavers 반복법에 의한 행렬 제곱근을 얻는 데 사용되는 일련의 역행렬 쌍이 이에 해당한다. 이는 각 새로운 행렬에서 한 번의 반복으로는 충분하지 않을 정도로 서로 가깝지 않은 경우, 여러 번의 반복이 필요할 수 있다. 뉴턴 방법은 불완전한 컴퓨터 산술로 인한 작은 오류로 오염된 가우스-조르단 알고리즘에 대한 "수정"에도 유용하다.

4. 7. 케일리-해밀턴 방법

케일리-해밀턴 정리를 이용하면 행렬 '''A'''의 역행렬을 det('''A''')의 값, 대각합, 그리고 '''A'''의 거듭제곱을 사용하여 표현할 수 있다.[7]

:\mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})} \sum_{s=0}^{n-1} \mathbf{A}^s \sum_{k_1,k_2,\ldots,k_{n-1}} \prod_{l=1}^{n-1} \frac{(-1)^{k_l + 1}}{l^{k_l}k_l!} \operatorname{tr}\left(\mathbf{A}^l\right)^{k_l},

여기서 n은 '''A'''의 크기이며, tr('''A''')는 행렬 '''A'''의 대각합으로, 주대각선의 합으로 주어진다. 합은 s와 선형 디ophantine 방정식을 만족하는 모든 k_l \geq 0의 집합에 대해 이루어진다.

:s + \sum_{l=1}^{n-1} lk_l = n - 1.

이 공식은 인수가 t_l = - (l - 1)! \operatorname{tr}\left(A^l\right)인 완전한 벨 다항식을 사용하여 다시 쓸 수 있다.

:\mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})} \sum_{s=1}^n \mathbf{A}^{s-1} \frac{(-1)^{n - 1}}{(n - s)!} B_{n-s}(t_1, t_2, \ldots, t_{n-s}).

4. 8. 고유값 분해

행렬 '''A'''가 고유값 분해될 수 있고, 고유값 중 0이 없는 경우, '''A'''는 가역행렬이며 역행렬은 다음과 같이 주어진다.

:\mathbf{A}^{-1} = \mathbf{Q}\mathbf{\Lambda}^{-1}\mathbf{Q}^{-1},

여기서 '''Q'''는 ''i''번째 열이 '''A'''의 고유 벡터 q_i인 정사각 (''N'' × ''N'') 행렬이고, '''Λ'''는 대각 성분이 해당 고유값인 대각 행렬이다. 즉, \Lambda_{ii} = \lambda_i.이다. 만약 '''A'''가 대칭 행렬이라면, '''Q'''는 직교 행렬이 되므로 \mathbf{Q}^{-1} = \mathbf{Q}^\mathrm{T}이다. 또한, '''Λ'''가 대각 행렬이므로 역행렬을 계산하기 쉽다.

:\left[\Lambda^{-1}\right]_{ii} = \frac{1}{\lambda_i}.

4. 9. 숄레스키 분해

행렬 '''A'''가 양의 정부호이면, 그 역행렬은 다음과 같이 구할 수 있다.

'''A'''-1 = ('''L'''*)-1 '''L'''-1

여기서 '''L'''은 '''A'''의 하삼각 행렬 Cholesky 분해이고, '''L'''*는 '''L'''의 켤레 전치를 나타낸다.

5. 응용

역행렬은 다양한 분야에서 활용된다.

행렬 역변환은 특히 3차원 컴퓨터 그래픽스 렌더링 및 3D 시뮬레이션에서 컴퓨터 그래픽스에 중요한 역할을 한다.[19] 그 예로는 화면에서 세계로의 광선 추적, 세계-부공간-세계 객체 변환, 물리적 시뮬레이션 등이 있다.

행렬의 역행렬은 무선 통신MIMO(다중 입출력) 기술에서도 중요한 역할을 한다. MIMO 시스템은 ''N''개의 송신 안테나와 ''M''개의 수신 안테나로 구성된다. 동일한 주파수 대역을 사용하는 고유한 신호가 ''N''개의 송신 안테나를 통해 전송되고 ''M''개의 수신 안테나를 통해 수신된다. 각 수신 안테나에 도달하는 신호는 ''N''개의 전송된 신호의 선형 결합이 되며, 이로 인해 ''N'' × ''M'' 전송 행렬 '''H'''가 형성된다. 수신기가 전송된 정보를 파악하려면 행렬 '''H'''가 가역 행렬이어야 한다.[19]

대부분의 실제 응용 분야에서, 선형 방정식 시스템을 풀기 위해 행렬을 역행렬로 변환하는 것은 ''필요하지 않다''. 그러나 고유한 해를 구하기 위해서는 관련된 행렬이 가역 행렬이어야 ''한다''.

LU 분해와 같은 분해 기술은 역행렬 변환보다 훨씬 빠르며, 특수한 종류의 선형 시스템을 위한 다양한 빠른 알고리즘도 개발되었다. 벡터의 미지수를 추정하는 데 명시적인 역행렬이 필요하지는 않지만, 이는 미지수 벡터의 정확도를 추정하는 가장 쉬운 방법이며, 행렬 역행렬의 대각선 요소(미지수 벡터의 사후 공분산 행렬)에서 찾을 수 있다. 하지만, 행렬 역행렬의 대각선 요소만 계산하는 더 빠른 알고리즘이 많은 경우에 알려져 있다.[19]

6. 역행렬의 도함수

행렬 ''A''가 변수 ''t''에 의존할 때, ''A''의 역행렬의 도함수는 다음과 같다.[17]

: \frac{\mathrm{d}\mathbf{A}^{-1}}{\mathrm{d}t} = - \mathbf{A}^{-1} \frac{\mathrm{d}\mathbf{A}}{\mathrm{d}t} \mathbf{A}^{-1}.

이 식을 유도하기 위해, 행렬의 역행렬 정의인 \mathbf{A}^{-1}\mathbf{A}=\mathbf{I}를 미분한 다음, '''A'''의 역행렬에 대해 풀 수 있다.

:

\frac{\mathrm{d}(\mathbf{A}^{-1}\mathbf{A})}{\mathrm{d}t}

= \frac{\mathrm{d}\mathbf{A}^{-1}}{\mathrm{d}t}\mathbf{A}

+ \mathbf{A}^{-1}\frac{\mathrm{d}\mathbf{A}}{\mathrm{d}t}

= \frac{\mathrm{d}\mathbf{I}}{\mathrm{d}t}

= \mathbf{0}.



위 식의 양변에서 \mathbf{A}^{-1}\frac{\mathrm{d}\mathbf{A}}{\mathrm{d}t}를 빼고, 오른쪽에 \mathbf{A}^{-1}를 곱하면 역행렬의 도함수에 대한 식이 얻어진다.

: \frac{\mathrm{d}\mathbf{A}^{-1}}{\mathrm{d}t} = - \mathbf{A}^{-1} \frac{\mathrm{d}\mathbf{A}}{\mathrm{d}t} \mathbf{A}^{-1}.

마찬가지로, \varepsilon가 작은 수라면

:\left(\mathbf{A} + \varepsilon\mathbf{X}\right)^{-1}

= \mathbf{A}^{-1} - \varepsilon \mathbf{A}^{-1} \mathbf{X} \mathbf{A}^{-1} + \mathcal{O}(\varepsilon^2)\,.



이다.

참조

[1] 서적 Linear Algebra Done Right Springer Publishing 2014-12-18
[2] 웹사이트 Matrix Inverse in Block Form https://www.cs.nthu.[...] 2001-03
[3] 웹사이트 Invertible Matrix Theorem https://mathworld.wo[...] 2020-09-08
[4] 서적 Matrix Analysis Cambridge University Press
[5] 간행물 Efficient Parallel Solution of Linear Systems ACM
[6] 간행물 Harvard University Center for Research in Computing Technology Report TR-02-85 Aiken Computation Laboratory
[7] 학술지 Superconducting quark matter in SU(2) color group https://www.research[...]
[8] 서적 Introduction to linear algebra https://books.google[...] SIAM
[9] 학술지 Inverses of 2 × 2 block matrices 2002
[10] 서적 Matrix Mathematics Princeton University Press
[11] 서적 Matrix Mathematics Princeton University Press
[12] 문서 'Introduction to Algorithms' MIT Press
[13] 문서 On the complexity of matrix product ACM Press
[14] 서적 Matrix Algorithms: Basic decompositions SIAM
[15] 학술지 A p-adic algorithm for computing the inverse of integer matrices
[16] 웹사이트 IML - Integer Matrix Library https://cs.uwaterloo[...] 2018-04-14
[17] 서적 Matrix Differential Calculus : with Applications in Statistics and Econometrics John Wiley & Sons
[18] 서적 Advanced Linear Algebra Springer 2008
[19] 학술지 Fast algorithm for extracting the diagonal of the inverse matrix with application to the electronic structure analysis of metallic systems
[20] 문서
[21] 문서
[22] 문서
[23] 서적 A First Course in Noncommutative Rings https://books.google[...] Springer
[24] 서적 Matrix Algorithms https://books.google[...] SIAM
[25] 서적 数値解析入門 サイエンス社 2003-06
[26] 문서



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com