9강 / 20강

역행렬 — 되감기 단추

되돌릴 수 없는 변환도 있다

역행렬 — 되감기 단추
역행렬은 A 가 한 일을 정확히 되감는 변환입니다.

수의 세계에서 5를 곱했으면 1/5 을 곱해 되돌립니다. 행렬에서 그 역할을 하는 것이 역행렬 A⁻¹ 예요.

A A⁻¹ = A⁻¹A = I

변환의 눈으로 보면 명확합니다 — A 가 공간을 비틀었다면, A⁻¹ 은 정확히 그 반대로 비틀어 원래대로 돌려놓습니다. 90도 돌렸으면 −90도 돌리고, 2배 늘였으면 절반으로 줄이는 식이죠.

2×2 행렬의 역행렬 공식은 짧습니다.

A⁻¹ = (1 / det A) · [ [d, −b], [−c, a] ]

대각선은 자리를 바꾸고, 나머지 둘은 부호를 바꾸고, 전체를 행렬식으로 나눕니다. 그런데 여기서 중요한 것이 보입니다 — det A 가 0 이면 나눌 수가 없어요.

역행렬은 det 로 나눕니다. det = 0 이면 나눌 수 없어요.
Python 브라우저에서 실행

🎮 되돌아오는지 직접 보기

x 를 끌면 Ax 가 따라 움직이고, A⁻¹ 을 다시 곱한 화살표가 원래 x 와 겹치는지 확인할 수 있습니다. "det = 0" 버튼을 누르면 무슨 일이 벌어지는지도 꼭 보세요 — 모든 화살표가 한 직선 위로 모여 버립니다.

되돌릴 수 있는 변환과 없는 변환
불러오는 중…

역행렬로 방정식 풀기 — 그리고 그러면 안 되는 이유

Ax = b 의 양변에 A⁻¹ 을 곱하면 x = A⁻¹b 입니다. 아름다운 공식이죠. 그런데 실제 계산에서는 이렇게 풀지 않습니다.

이유는 둘입니다. 첫째, 느립니다 — 역행렬을 통째로 구하는 것은 소거법으로 바로 푸는 것보다 서너 배 비쌉니다. 둘째, 부정확합니다 — 나눗셈이 많이 들어가 반올림 오차가 쌓입니다.

그래서 numpy 조차 inv(A) @ b 대신 solve(A, b) 를 쓰라고 권합니다. 역행렬은 이론을 적을 때 쓰는 언어이지, 계산 절차가 아니에요.

x = A⁻¹b 는 뜻은 좋지만, 실전에서는 소거법(11강)을 씁니다.
Python 브라우저에서 실행

가역이라는 말의 여러 얼굴

정사각행렬 A 에 대해, 아래 문장들은 전부 같은 말입니다. 하나가 참이면 나머지도 전부 참이고, 하나가 거짓이면 전부 거짓이에요. 이것을 가역행렬 정리라고 부릅니다.

• A⁻¹ 가 존재한다

• det A ≠ 0

• A 의 열들이 일차독립이다 (14강)

• 랭크가 n 이다 (12강)

• Ax = 0 의 해가 x = 0 뿐이다 (15강)

• 모든 b 에 대해 Ax = b 가 딱 하나의 해를 가진다

• 0 이 고윳값이 아니다 (18강)

이 목록이 이 강의의 지도입니다. 지금은 낯설어도, 20강까지 가면 이 문장들이 한 가지 사실을 일곱 가지 말로 한 것임을 알게 됩니다.

det, 열의 독립, Ax=0 의 해 — 셋이 언제나 함께 움직입니다.
Python 브라우저에서 실행
🤔 확인 문제
A⁻¹ 가 존재하기 위한 조건은?
🤔 확인 문제
(AB)⁻¹ 와 같은 것은?
🤔 확인 문제
det A = 0 인 A 가 평면에 하는 일은?