가역행렬
"오늘의AI위키" 는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키" 의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
목차 보기/숨기기
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} 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