[chapter7] 역행렬 : 행렬 방정식의 만능 키
1. 무어-펜로즈 의사역행렬
행렬 곱셈을 통해 축소계수 행렬을 단위 행렬로 변환하는 것은 불가능하다. 즉, 축소계수 행렬은 완전 또는 단방향 역행렬을 가지지 않는다.
하지만 특이 행렬은 의사역행렬들을 가진다.
의사역행렬은 행렬을 단위 행렬에 가깝게 만드는 변환 행렬이다.
축소계수 행렬에는 무한한 수의 의사역행렬이 존재하며, 실제로 사용하는 가장 나은 의사역행렬은 단 하나이다.
이를 무어-펜로즈 의사역행렬이라고 하며, 때때로 MP라고 칭한다. (일반적으로 의사역행렬은 이를 칭한다)
의사역행렬은 아래와 같이 위첨자에 단검, 더하기, 별표를 사용해 표시한다.
$$ A^\dagger , A^+, A^*$$
파이썬에서는 np.linalg.pinv로 구할 수 있다.
A = np.array([[1,4],[2,8]])
Apinv = np.linalg.pinv(A)
print(A@Apinv)
#[[0.2 0.4]
# [0.4 0.8]]
의사역행렬을 계산하려면 행렬의 SVD를 가져와서, 특이벡터를 변경하지 않고 0이 아닌 특잇값의 분자와 분모를 바꾼 다음, $ U\sum_{}^{+}V^T $ 를 곱해 행렬을 재구성한다.(뒤에 나온다고 함)
2. 역행렬의 수치적 안정성
행렬의 역행렬을 계산하려면 많은 행렬식을 포함해 상당한 부동 소수점 연산이 수반된다. 이 때 많은 행렬식을 계산하면 수치적 부정확성이 발생할 수 있다.
따라서 수치 연산을 구현하는 저수준 라이브러리는 가능하면 행렬의 역행렬을 명확하게 구하려고 하지 않고, 수치적으로 더 안정적인 다른 행렬의 곱으로 분해한다.
수칫값이 대체로 같은 범위에 있는 행렬이 더 안정적인 경향이 있고, 수칫값의 범위가 넓은 행렬은 숫자가 불안정할 위험이 높다.
'수칫값의 범위'는 행렬의 조건수를 이용해 표현할 수 있는데, 이 수는 가장 큰 값과 가장 작은 특잇값의 비율이다.
3. 역행렬의 기하학적 해석
역행렬은 행렬 곱셈으로 인한 기하학적 변환을 되돌리는 것으로 생각할 수 있다.
'수학 > 선형대수' 카테고리의 다른 글
| [개발자를 위한 실전 선형대수학] 8.1 직교 행렬, 8.2 그람-슈미트 과정 (0) | 2026.01.07 |
|---|---|
| [개발자를 위한 실전 선형대수학] Chapter 7 연습문제 (0) | 2026.01.04 |
| [개발자를 위한 실전 선형대수학] 7.1 역행렬, 7.2 역행렬의 유형과 가역성의 조건, 7.3 역행렬 계산 (0) | 2026.01.03 |
| [개발자를 위한 실전 선형대수학] Chapter 6 연습문제 (0) | 2026.01.03 |
| [개발자를 위한 실전 선형대수학] 6.1 다변량 데이터 공분산 행렬, 6.2 행렬-벡터 곱셈을 통한 기하학적 변환 (0) | 2025.12.29 |