역행렬의 계산

STATS·2023년 8월 14일

선형대수학

목록 보기
26/28

가역행렬의 역행렬 계산

n×nn \times n 가역행렬 AA와 항등행렬 InI_n이 있다고 하자. 이 때 AA의 열과 InI_n의 열을 가로로 붙여 [AIn]\left[A | I_n \right]의 첨가행렬을 만들 수 있다.

이 때 A1[AIn]=[A1AA1In]=[InA1]A^{-1}\left[A | I_n \right] = \left[A^{-1}A | A^{-1}I_n\right] = [I_n|A^{-1}]이다.
그런데 모든 가역행렬은 기본행렬의 곱으로 나타낼 수 있으므로, A1=EkEk1...E1A^{-1} = E_kE_{k-1}...E_1이라고 하면 다음을 만족한다.

A1[AIn]=EkEk1...E1[AIn]=[EkEk1...E1AEkEk1...E1In]=[InA1]A^{-1}\left[A|I_n\right] = E_kE_{k-1}...E_1\left[A^|I_n\right] = \left[E_kE_{k-1}... E_1 A |E_kE_{k-1}...E_1I_n \right] = \left[I_n|A^{-1}\right]

AAInI_n으로 변환하는 기본행연산에 대응하는 기본행렬들의 곱이 곧 AA의 역행렬이 된다.
따라서 [AIn]\left[A|I_n\right]으로 놓고 좌측의 AAInI_n으로 변환하는 기본행연산을 양 쪽에 진행하면 결과적으로 [InA1]\left[I_n|A^{-1}\right]이 되므로 우측에서 AA의 역행렬을 구할 수 있다.

행렬의 가역성 판단

n×nn \times n 행렬 AA에 대해 [AIn]\left[A|I_n\right]에 기본행연산을 유한번 적용해서 [InB]\left[I_n|B\right]의 꼴로 바꿔보자. 이 때 BBn×nn \times n 행렬이다.

I) AA가 가역행렬인 경우
B=EkEk1...E1B = E_kE_{k-1}...E_1AAInI_n으로 바꾸는 행연산에 대응하는 기본행렬들의 곱이라고 하면, B[AIn]=[BABIn]=[InB]B\left[A|I_n\right] = \left[BA|BI_n\right] = \left[I_n|B\right]가 된다.

따라서 위에서 역행렬을 구했던 방법과 동일하므로 A1=BA^{-1} = B이 존재한다.

II) A가 가역행렬이 아닌 경우
AA가 가역행렬이 아닌 경우 rank(A)<nrank(A) < n이다. 이 경우 [AIn]\left[A|I_n\right][InB]\left[I_n|B\right]의 꼴로 유한번의 기본행연산을 이용해 바꾸는 것이 불가능하다. 대신 AAInI_n으로 바꾸는 과정에서 성분이 모두 영으로만 이루어진 행이 발생한다.

증명)
귀류법을 이용해서 증명한다. AA가 가역행렬이 아니고, [AIn]\left[A|I_n\right][InB][I_n|B]의 꼴로 유한번의 기본행연산을 이용해 바꿀 수 있다고 가정하자.

AA는 유한번의 기본행연산을 통해 InI_n으로 변환된다. rank(A)<nrank(A) < n이고, rank(In)=nrank(I_n) =n인데, 기본행연산은 랭크를 보존하므로 rank(In)<nrank(I_n) < n이라는 모순이 발생한다.

따라서 AA가 가역행렬이 아닌 경우 [AIn]\left[A|I_n\right][InB]\left[I_n|B\right]의 꼴로 유한번의 기본행연산을 이용해 바꾸는 것이 불가능하다.

0개의 댓글