역행렬 계산기 쉽게 이해하기 — 개념과 원리
정사각행렬 A의 역행렬 A⁻¹은 A가 한 일을 되돌리는 행렬로, 어느 순서로 곱해도 단위행렬이 됩니다(A·A⁻¹ = A⁻¹·A = I). 연립방정식 Ax = b를 x = A⁻¹b로 한 번에 풀 때, 그래픽이나 로봇에서 좌표 변환을 거꾸로 적용할 때, 통계에서 공분산행렬을 다룰 때 쓰입니다. 계산기는 역행렬과 함께 행렬식 det(A)도 보여 주므로 역행렬이 존재하는지 바로 확인할 수 있습니다.
계산 방법
숫자는 공백으로, 행은 세미콜론(;)으로 구분해 입력합니다. 계산기는 첨가행렬 [A | I]를 만든 뒤 가우스-조르당 소거법을 적용합니다. 행 교환, 행의 상수배, 한 행의 배수를 다른 행에 더하기를 반복해 왼쪽을 I로 만들면 오른쪽에 A⁻¹이 남아 [I | A⁻¹]가 됩니다. 행 교환으로도 피벗을 만들 수 없으면 행렬식이 0이므로 "역행렬 없음"으로 표시합니다.
2×2 행렬 A = [a b; c d]는 공식으로 바로 구할 수 있습니다. det(A) = ad − bc이고, A⁻¹ = (1/det)·[d −b; −c a]입니다.
원리
기본 행 연산 하나하나는 왼쪽에 간단한 가역행렬 E를 곱하는 것과 같습니다. A를 I로 바꾸었다면 E_k⋯E_1·A = I이므로 그 곱 E_k⋯E_1이 곧 A⁻¹입니다. 옆에 붙여 둔 I는 이 곱을 차례로 기록하는 장부 역할을 합니다. 역행렬은 열벡터들이 일차독립일 때, 즉 det(A) ≠ 0일 때만 존재합니다. 행렬식이 0이면 공간이 더 낮은 차원으로 눌려 정보가 사라지므로 되돌릴 수 없습니다.
예제 풀이
- 기본 입력: A = [4 7; 2 6]
- 행렬식: 4×6 − 7×2 = 24 − 14 = 10이므로 역행렬이 존재합니다.
- 주대각 성분을 서로 바꾸고 나머지 성분의 부호를 바꾸면 [6 −7; −2 4]입니다.
- 10으로 나누면 A⁻¹ = [0.6 −0.7; −0.2 0.4]입니다.
- 검산: 4×0.6 + 7×(−0.2) = 1, 4×(−0.7) + 7×0.4 = 0으로 단위행렬의 첫 행이 나옵니다.
결과 해석
det(A⁻¹) = 1/det(A)이므로 예제에서는 0.1입니다. 성분 크기에 비해 행렬식이 0에 매우 가까우면 '조건이 나쁜' 행렬이라는 신호입니다. 이때는 A에 들어 있는 작은 반올림 오차나 측정 오차가 역행렬에서 크게 부풀려지므로, 이론상 역행렬이 있더라도 계산값을 그대로 믿기 어렵습니다.
흔한 실수
- 정사각행렬이 아닌 행렬의 역행렬을 구하려는 경우
- 각 성분의 역수(1/aᵢⱼ)를 역행렬로 착각하는 경우
- (AB)⁻¹ = A⁻¹B⁻¹로 쓰는 경우. 올바른 식은 순서가 바뀐 B⁻¹A⁻¹입니다.
자주 묻는 질문
"not invertible (det = 0)"은 무슨 뜻인가요?
행(또는 열)이 일차종속이라 서로 다른 벡터가 같은 결과로 보내진다는 뜻입니다. 이때 Ax = b는 해가 없거나 무수히 많습니다.
대칭행렬의 역행렬도 대칭인가요?
그렇습니다. A = Aᵀ이면 (A⁻¹)ᵀ = (Aᵀ)⁻¹ = A⁻¹입니다.
정수 행렬의 역행렬은 언제 정수 행렬이 되나요?
행렬식이 ±1일 때만 그렇습니다. 예제처럼 행렬식이 10이면 분수(소수)가 나옵니다.
출처: Gilbert Strang, Introduction to Linear Algebra, Wellesley-Cambridge Press · Gene H. Golub, Charles F. Van Loan, Matrix Computations, Johns Hopkins University Press