개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science)
7장 역행렬: 행렬 방정식의 만능 키
역행렬
행렬 A의 역행렬은 A와 곱해서 단위행렬을 만드는 행렬 $A^{-1}$임
이는 행렬을 단위 행렬로 선현 변환하는 것, 즉, 역행렬은 선형 변환을 포함하며 행렬곱셈은 이 변환을 적용하는 매커니즘
$$Ax=b$$
$$A^{-1}Ax=A^{-1}b$$
$$Ix=A^{-1}b$$
$$x=A^{-1}b$$
(역행렬을 통한 행렬 방정식의 풀이)
역행렬의 유형과 가역성의 조건
- 가역성에 대한 조건이 다른 세 가지 종류의 역행렬이 있음
1. 완전 역행렬
$A^{-1}A=AA^{-1}=I$를 의미함.
행렬이 완전 역행렬을 가지기 위해서는 다음 조건을 만족해야함
- 정방행렬
- 최대 계수 행렬이다
2. 단방향 역행렬
정방이 아닌 행렬을 단위 행렬로 변환할 수 있지만 하나의 곱셈 방향에 대해서만 동작함.
높은 행렬 $T$는 왼쪽 역행렬을 가지고, $LT = I, \ TL\neq I$을 만족함
넓은 행렬 $W$는 오른쪽 역행렬을 가지고, $WR= I, \ RW\neq I$을 만족함
3. 의사역행렬(pseudo inverse)
모든 행렬에는 모양과 계수에 관계없이 의사역행렬 (pseudo inverse) 이 존재함
(정방행렬에서 의사역행렬은 완전 역행렬과 일치)
https://angeloyeo.github.io/2020/11/11/pseudo_inverse.html
$$ A= \begin{bmatrix}a & b \\c&d \end{bmatrix} $$
$$A^{-1} = \frac{1}{ad-bc} \begin{bmatrix}d & -b \\-c&a \end{bmatrix}$$
#numpy를 이용한 역행렬 계산
A = np.array([[1,4],[2,7]])
Ainv = np.linalg.inv(A)
A@Ainv
#array([[1., 0.], [0., 1.]])
임의의 정방 최대계수 행렬의 역행렬
역행렬의 유일성
- 역행렬은 유일함, 즉 역행려이 있다면 정확히 하나만 존재함.
무어-펜로즈 의사역행렬(Moore-Penrose pseudo inverse matrix, MP)
- 완전 역행렬은 고유하지만, 의사역행렬은 그렇지 않음.
- $A^{\dagger}, A^{*}$으로 표기함.
파이썬에서 의사역행렬을 구하는 함수 np.linalg.pinv를 이용가능함
'Datascience > Linear Algebra' 카테고리의 다른 글
[개발자를 위한 실전 선형대수학] 9장 행 축소와 LU 분해 (0) | 2024.01.28 |
---|---|
[개발자를 위한 실전 선형대수학] 직교 행렬과 QR 분해 (0) | 2024.01.27 |
[개발자를 위한 실전 선형대수학] 행렬 응용: 데이터 분석에서의 행렬 (0) | 2024.01.25 |
[개발자를 위한 선형대수학] 행렬의 확장 개념(2) (0) | 2024.01.24 |
1장 연습문제 (1) | 2024.01.22 |