연결 강의: MIT 18.06 Linear Algebra - Lecture 3: Multiplication and inverse matrices
1. 역행렬의 정의
정사각행렬 A에 대해 어떤 행렬 A−1이 존재해서 다음을 만족하면, A를 invertible matrix라고 한다.
A−1A=I
그리고 동시에 다음도 성립한다.
AA−1=I
이때 A−1을 A의 inverse matrix, 즉 역행렬이라고 한다.
역행렬은 행렬에서 나눗셈과 비슷한 역할을 한다. 하지만 행렬에서는 일반적인 숫자처럼 단순히 나누는 연산이 없기 때문에, 곱했을 때 항등행렬을 만드는 행렬을 따로 정의한다.
2. 가역성을 확인하는 여러 관점
행렬 A가 가역인지 확인하는 관점은 여러 가지가 있다.
2.1 Elimination 관점
가역성을 확인하는 가장 계산적인 방법은 elimination이다.
n×n 행렬 A가 가역이려면 elimination 과정에서 반드시 n개의 pivot이 나와야 한다.
즉, 어떤 단계에서도 pivot이 0이 되어 소거가 멈추면 안 된다.
모든 pivot이 존재하면 A는 invertible matrix이다.
2.2 Determinant 관점
행렬대수 관점에서는 determinant로 가역성을 확인할 수 있다.
det(A)=0⟺A is invertible
반대로,
det(A)=0⟺A is singular
이다.
2.3 Nullspace 관점
방정식 관점에서는 다음 homogeneous equation을 본다.
Ax=0
A가 가역이려면 이 방정식의 해가 오직 zero solution이어야 한다.
x=0
만약 0이 아닌 해가 존재한다면 A는 가역이 아니다.
왜냐하면 Ax=0에서 서로 다른 x가 같은 출력 0으로 가기 때문이다. 이런 경우에는 어떤 행렬도 0을 원래의 x로 되돌릴 수 없다.
3. 역행렬의 기본 성질
역행렬과 관련해 기억해야 할 기본 성질들이 있다.
3.1 역행렬은 유일하다
행렬 A는 두 개 이상의 다른 역행렬을 가질 수 없다.
예를 들어 BA=I이고 AC=I라고 하자.
그러면 다음과 같이 정리할 수 있다.
B=BI
그리고 AC=I이므로,
B=B(AC)
결합법칙을 적용하면,
B=(BA)C
BA=I이므로,
B=IC=C
따라서 B=C이다.
즉, left inverse와 right inverse가 모두 존재한다면 둘은 반드시 같은 행렬이다.
3.2 Ax=b의 해
A가 가역이면 Ax=b의 해는 유일하다.
양변에 A−1을 곱하면 된다.
Ax=b
A−1Ax=A−1b
따라서,
x=A−1b
이다.
3.3 곱의 역행렬
두 행렬 A, B가 같은 크기의 정사각행렬이고 둘 다 가역이면, AB도 가역이다.
이때 다음이 성립한다.
(AB)−1=B−1A−1
순서가 반대로 뒤집히는 점이 중요하다.
확인하면 다음과 같다.
(AB)(B−1A−1)=A(BB−1)A−1=AIA−1=I
즉, AB를 되돌리려면 먼저 B를 되돌리고, 그 다음 A를 되돌려야 한다.
4. 간단한 역행렬 예시
4.1 2×2 행렬
2×2 행렬
A=[acbd]
가 가역이려면 determinant가 0이 아니어야 한다.
ad−bc=0
이때 역행렬은 다음과 같다.
A−1=ad−bc1[d−c−ba]
여기서 분모 ad−bc가 0이면 역행렬은 존재할 수 없다.
4.2 대각행렬
대각행렬은 역행렬을 구하기 쉽다.
D=d10⋮00d2⋮0⋯⋯⋱⋯00⋮dn
이 행렬이 가역이려면 모든 대각성분이 0이 아니어야 한다.
di=0(i=1,…,n)
그러면 역행렬은 각 대각성분을 역수로 바꾼 행렬이다.
D−1=d110⋮00d21⋮0⋯⋯⋱⋯00⋮dn1
5. Elimination matrix의 역행렬
소거행렬도 역행렬을 가진다.
예를 들어 다음 행렬 E를 보자.
E=1−50010001
이 행렬은 다음 행 연산을 수행한다.
R2←R2−5R1
이 연산을 되돌리려면 반대로 5R1을 더하면 된다.
따라서 역행렬은 다음과 같다.
E−1=150010001
즉, elimination matrix의 역행렬은 같은 위치의 multiplier 부호를 반대로 바꾼 형태이다.
6. 여러 elimination의 순서
이번에는 두 개의 elimination을 연속으로 적용한다고 하자.
첫 번째 연산은 다음이다.
E:R2←R2−5R1
두 번째 연산은 다음이다.
F:R3←R3−4R2
각 elimination matrix는 다음과 같다.
E=1−50010001,F=10001−4001
두 연산을 E 다음 F 순서로 적용하면 전체 행렬은 FE이다.
FE=1−52001−4001
여기서 (3,1) 위치에 20이 생긴다.
왜냐하면 F가 적용될 때의 두 번째 행은 이미 E에 의해 바뀐 상태이기 때문이다.
실제로 세 번째 행 연산은 다음처럼 해석된다.
R3←R3−4(R2−5R1)
따라서,
R3←R3−4R2+20R1
이다.
즉, 행렬곱에서는 이전 elimination의 영향이 뒤쪽 elimination에 반영된다.
7. 전체 elimination을 되돌리는 순서
E 다음 F를 적용한 행렬은 FE이다.
따라서 이를 되돌리는 역행렬은 다음이다.
(FE)−1=E−1F−1
순서가 반대로 바뀌는 것이 핵심이다.
각 역행렬은 다음과 같다.
E−1=150010001,F−1=100014001
따라서,
E−1F−1=150014001
이 행렬은 L로 볼 수 있다.
즉, 소거를 수행하는 행렬들이 E, F라면,
U=FEA
이고, 다시 U에서 A로 돌아가면 다음과 같다.
A=E−1F−1U
따라서,
A=LU
이며,
L=E−1F−1
이다.
즉, L은 elimination을 되돌리는 행렬들을 모아둔 것이다.
8. Gauss-Jordan 소거법의 목적
Gauss-Jordan 소거법은 역행렬을 직접 계산하는 방법이다.
기본 아이디어는 다음 식에서 출발한다.
AA−1=I
A−1의 column들을 x1,x2,…,xn이라고 하면,
A[x1 x2 ⋯ xn]=[e1 e2 ⋯ en]=I
즉, 역행렬을 구하는 것은 다음 n개의 방정식을 동시에 푸는 것과 같다.
Ax1=e1,Ax2=e2,…,Axn=en
이를 한 번에 처리하기 위해 augmented matrix를 만든다.
[A I]
그리고 행 연산을 통해 왼쪽의 A를 I로 만들면, 오른쪽에는 A−1이 남는다.
[A I]⟶[I A−1]
이것이 Gauss-Jordan 소거법의 핵심이다.
9. Gauss-Jordan 소거 과정
Gauss-Jordan 소거는 크게 세 단계로 볼 수 있다.
- Gaussian elimination으로 아래쪽을 0으로 만들어 upper triangular matrix U를 만든다.
- Jordan step으로 pivot 위쪽도 0으로 만든다.
- 각 row를 pivot으로 나누어 왼쪽을 identity matrix로 만든다.
Gaussian elimination은 보통 U를 만든 뒤 back substitution을 한다.
반면 Gauss-Jordan은 back substitution을 행렬 연산으로 끝까지 밀어붙여서 왼쪽을 I로 만든다.
10. 예시 행렬 K
다음 행렬을 생각하자.
K=2−10−12−10−12
역행렬을 구하기 위해 augmented matrix [K I]를 만든다.
2−10−12−10−12100010001
먼저 첫 번째 pivot 2를 사용해서 두 번째 행의 첫 번째 성분을 제거한다.
R2←R2+21R1
그러면 다음이 된다.
200−123−10−121210010001
다음으로 두 번째 pivot 23를 사용해서 세 번째 행의 두 번째 성분을 제거한다.
R3←R3+32R2
그러면 다음 upper triangular form을 얻는다.
200−12300−134121310132001
왼쪽 첫 3열은 U이고, pivot은 다음과 같다.
2,23,34
11. Pivot 위쪽까지 제거하기
Gaussian elimination은 여기서 back substitution으로 해를 구한다.
Gauss-Jordan은 한 단계 더 진행해서 pivot 위쪽까지 0으로 만든다.
먼저 세 번째 pivot 위의 −1을 제거한다.
R2←R2+43R3
그러면 다음과 같다.
200−1230003414331023320431
이제 두 번째 pivot 위의 −1을 제거한다.
R1←R1+32R2
그러면 다음과 같다.
200023000342343311233221431
마지막으로 각 row를 자신의 pivot으로 나눈다.
10001000143214121121412143
따라서 오른쪽 블록이 K−1이다.
K−1=43214121121412143
또는 다음처럼 쓸 수 있다.
K−1=41321242123
12. 예시에서 볼 수 있는 점
위 예시에서 몇 가지 중요한 사실을 확인할 수 있다.
12.1 대칭행렬의 역행렬
K는 symmetric matrix이다.
KT=K
계산 결과 K−1도 대칭행렬이다.
(K−1)T=K−1
대칭인 가역행렬의 역행렬도 대칭이 된다는 사실을 이 예시에서 볼 수 있다.
12.2 Sparse matrix의 inverse는 dense할 수 있다
K는 tridiagonal matrix이다.
즉, 주대각선과 그 위아래 대각선에만 값이 있고 나머지는 0이다.
하지만 K−1은 거의 모든 entry가 0이 아닌 dense matrix이다.
즉, 원래 행렬이 sparse하다고 해서 역행렬도 sparse하다는 보장은 없다.
12.3 Pivot의 곱과 determinant
소거 과정에서 나온 pivot은 다음과 같다.
2,23,34
행 교환이 없었으므로 determinant는 pivot들의 곱이다.
detK=2⋅23⋅34=4
역행렬 공식에 determinant가 분모로 등장한다는 점도 여기서 확인할 수 있다.
K−1=41321242123
detK=0이었다면 이 나눗셈은 불가능하고, 역행렬도 존재하지 않는다.
13. Gauss-Jordan과 LU 분해의 연결
Gauss-Jordan의 기본 원리는 다음 한 줄로 요약할 수 있다.
A−1[A I]=[I A−1]
실제로는 A−1을 모르기 때문에 행 연산으로 [A I]를 [I A−1]로 바꾼다.
소거행렬들을 모두 곱한 행렬을 E라고 하면,
EA=U
이다.
이때 E는 A를 U로 만드는 모든 elimination을 담고 있다.
양변에 E−1을 곱하면,
A=E−1U
여기서 E−1이 바로 L이다.
A=LU
즉, L은 elimination을 되돌리는 행렬이고, U는 elimination을 통해 얻은 upper triangular matrix이다.
14. 삼각행렬과 대각우세행렬
삼각행렬은 가역성 판별이 쉽다.
삼각행렬이 가역이려면 대각성분이 모두 0이 아니어야 한다.
예를 들어 upper triangular matrix
U=d100∗d20∗∗d3
에서 다음이 성립하면 U는 가역이다.
d1d2d3=0
일반적으로도 삼각행렬의 determinant는 대각성분의 곱이다.
detU=d1d2⋯dn
따라서 대각성분 중 하나라도 0이면 역행렬이 존재하지 않는다.
또 하나 중요한 경우는 strict diagonal dominance이다.
각 행에서 대각성분의 절댓값이 나머지 성분들의 절댓값 합보다 크면, 그 행렬은 가역이다.
즉, 모든 i에 대해 다음이 성립하면 된다.
∣aii∣>j=i∑∣aij∣
이 조건은 삼각부등식과 절댓값 성질을 이용해 증명할 수 있다.
직관적으로는 대각성분이 각 행에서 충분히 강하면, 어떤 column이나 row가 다른 것들의 조합으로 완전히 무너질 수 없다는 뜻이다.
15. 정리
이번 내용의 핵심은 역행렬이 언제 존재하고, 어떻게 계산되는지이다.
- A가 가역이면 A−1A=I이고 AA−1=I이다.
- A가 가역이려면 elimination에서 n개의 pivot이 필요하다.
- Ax=0이 0이 아닌 해를 가지면 A는 singular matrix이다.
- Ax=b의 해는 A가 가역일 때 x=A−1b이다.
- 곱의 역행렬은 순서가 뒤집힌다.
(AB)−1=B−1A−1
- Elimination matrix의 역행렬은 해당 row operation을 되돌리는 행렬이다.
- Gauss-Jordan 소거법은 [A I]를 [I A−1]로 바꾸어 역행렬을 구한다.
- A=LU에서 L은 elimination의 inverse들을 모은 행렬이고, U는 elimination 결과이다.
- 삼각행렬은 대각성분이 모두 0이 아닐 때 가역이다.
- Strictly diagonally dominant matrix는 가역이다.