유사역행렬 계산기 쉽게 이해하기 — 개념과 원리
이 계산기는 정사각이든 직사각이든 모든 행렬의 무어–펜로즈 유사역행렬 A⁺를 구하고, 계수(rank)와 유형, 그리고 우변 b를 넣으면 최소제곱해 x = A⁺b와 잔차도 보여 줍니다. 최소제곱 맞춤, 방정식이 많거나 적은 연립방정식, 선형대수 수업, 신호처리, 로봇공학에 씁니다.
계산 방법
- 특잇값 분해 A = UΣVᵀ에서 A⁺ = VΣ⁺Uᵀ로 구합니다. Σ⁺는 0이 아닌 특잇값만 역수로 바꾸고 0은 그대로 둡니다.
- 특수한 경우: A가 가역이면 A⁺ = A⁻¹, 열이 일차독립이면 A⁺ = (AᵀA)⁻¹Aᵀ, 행이 일차독립이면 A⁺ = Aᵀ(AAᵀ)⁻¹
- 최소제곱: x = A⁺b, 잔차 ‖Ax − b‖
아주 작은 상대 허용오차보다 작은 특잇값은 0으로 봅니다. 간단한 분수는 정확한 값으로 보여 줍니다.
원리
직사각행렬이나 특이행렬에는 보통의 역행렬이 없지만, 유사역행렬이 가장 좋은 대용품입니다. 이는 AA⁺A = A, A⁺AA⁺ = A⁺, AA⁺와 A⁺A가 대칭이라는 네 가지 펜로즈 조건을 만족하는 유일한 행렬입니다. 특잇값 분해로 보면 A는 어떤 방향은 늘리고 어떤 방향은 0으로 납작하게 만듭니다. A⁺는 늘린 방향은 되돌리고 납작해진 방향은 0으로 둡니다. 그래서 x = A⁺b는 ‖Ax − b‖를 최소로 하고, 그런 해 가운데 길이가 가장 짧습니다.
예제 풀이
기본값 A = [1 1; 1 2; 1 3], b = (1, 2, 2)는 점 (1, 1), (2, 2), (3, 2)에 직선 y = c₀ + c₁t를 맞추는 문제입니다.
- 열이 일차독립이므로 계수는 2이고 A⁺ = (AᵀA)⁻¹Aᵀ입니다.
- AᵀA = [3 6; 6 14], 그 역행렬은 [7/3 −1; −1 1/2]입니다.
- A⁺ = [4/3 1/3 −2/3; −1/2 0 1/2]로 2 × 3 행렬입니다.
- x = A⁺b = (2/3, 1/2)이므로 직선은 y = 2/3 + t/2입니다.
- Ax = (7/6, 5/3, 13/6)이고 잔차는 √((1/6)² + (1/3)² + (1/6)²) ≈ 0.408248입니다.
결과 해석
계수는 A에 담긴 독립적인 정보의 양입니다. '열 완전 계수'면 최소제곱해가 하나로 정해지고, 계수가 낮으면 해가 여럿이며 A⁺b는 그중 가장 짧은 해를 고릅니다. 잔차가 0이면 b에 정확히 도달할 수 있다는 뜻이고, 아니면 잔차가 가능한 가장 작은 차이입니다. 직선 맞춤에서는 x가 절편과 기울기입니다.
흔한 실수
- 열이 일차종속인데 (AᵀA)⁻¹Aᵀ를 쓰는 경우(그 역행렬은 존재하지 않습니다)
- 정사각이 아닌 행렬에서 AA⁺가 단위행렬이라고 생각하는 경우(사영일 뿐입니다)
- 유사역행렬이 Ax = b를 정확히 푼다고 생각하는 경우
- 아주 작은 특잇값이 결과를 불안정하게 만든다는 점을 무시하는 경우
자주 묻는 질문
유사역행렬은 역행렬과 같은가요?
정사각 가역행렬일 때만 같고, 그 밖에는 역행렬을 일반화한 것입니다.
A⁺의 크기는 어떻게 되나요?
A가 m × n이면 A⁺는 n × m입니다.
회귀분석에 왜 유사역행렬을 쓰나요?
x = A⁺b가 보통최소제곱 계수를 주며, 특잇값 분해를 거치면 AᵀA가 거의 특이할 때도 안정적이기 때문입니다.
출처: Wolfram MathWorld, "Moore-Penrose Matrix Inverse" · J. Demmel, UC Berkeley Math 221 lecture notes, Lecture 3 (Fall 2011)