Lesson 19 of 20
대각화 — 반복을 한 번에 계산하기
A 를 백 번 곱하지 않고 A¹⁰⁰ 구하기
어떤 과정을 반복하는 문제는 어디에나 있습니다.
날씨가 내일 어떻게 될지, 시장 점유율이 1년 뒤 어떻게 될지, 인구가 어떻게 변할지.
전부 x, Ax, A²x, A³x, … 를 묻는 문제예요.
A 를 100번 곱하려면 행렬 곱을 100번 해야 할까요? 안 그래도 됩니다.
고유벡터의 눈으로 보면 이유가 명확합니다. 만약 x = c₁v₁ + c₂v₂ 라면
Aⁿx = c₁λ₁ⁿv₁ + c₂λ₂ⁿv₂
행렬 곱이 숫자의 거듭제곱으로 바뀌었습니다. 고유축으로 좌표를 갈아타기만 하면 되는 거예요.
고유축으로 쪼개면 반복 계산이 거듭제곱 하나로 끝납니다.
Python
Runs in your browser
🎮 오래 두면 어디로 가나
시장 점유율이 매달 옮겨 다니는 모형입니다. "한 달 →" 을 눌러 가며 어디로 수렴하는지 보세요. 출발점을 바꿔도 같은 곳에 도착합니다. 왜냐하면 λ=1 인 방향만 남고 나머지는 λⁿ → 0 으로 사그라들기 때문이에요.
피보나치를 한 번에 구하기
대각화의 가장 예쁜 예입니다. 피보나치 수열의 점화식을 행렬로 적어 봅시다.
[Fn+1] [1 1] [Fn ]
[Fn ] = [1 0] [Fn−1]
이 행렬의 고윳값을 구하면 λ² − λ − 1 = 0 에서
황금비 φ = (1+√5)/2 와 (1−√5)/2 가 나옵니다.
그래서 Fn 을 반복 없이 한 방에 구하는 공식이 나와요 — 비네의 공식이라고 부릅니다. 반복문 없이 수열의 n번째 항이 나오는 거죠.
고윳값이 황금비. 반복문 없이 F(n)을 구할 수 있습니다.
Python
Runs in your browser
어디에 쓰이나
- PageRank — 웹 링크 행렬의 λ=1 고유벡터가 페이지 순위입니다. 구글은 이것을 거듭제곱법으로 구했어요 (18강 마지막 코드)
- 마르코프 연쇄 — 날씨·대기행렬·게임 밸런스의 장기 예측
- 주성분분석(PCA) — 공분산행렬의 고유벡터가 데이터가 가장 많이 퍼진 방향
- 진동 해석 — 다리와 건물의 고유진동수. 공명을 피하려면 반드시 계산해야 합니다
- 미분방정식 —
x' = Ax의 해가e^{λt}v꼴로 나옵니다
공통점이 보이시나요? 전부 같은 일을 반복하거나 가장 두드러진 방향을 찾는 문제입니다. 고윳값 분해는 그 두 질문에 대한 답이에요.
정상상태 = 고윳값 1의 고유벡터. PageRank 가 이 원리로 돕니다.
Python
Runs in your browser
🤔 Check yourself
A = PΛP⁻¹ 일 때 A⁵ 는?Answer
A⁵ = PΛP⁻¹·PΛP⁻¹·… 에서 가운데 P⁻¹P = I 가 계속 사라져 PΛ⁵P⁻¹ 만 남습니다. Λ⁵ 는 대각선만 5제곱하면 끝이에요.🤔 Check yourself
n×n 행렬이 대각화되기 위한 조건은?Answer 고유벡터를 열로 세운 P 가 가역이어야 하므로 독립인 고유벡터 n개가 필요합니다. 대칭행렬은 항상 이 조건을 만족하지만, 대칭이 아니어도 대각화되는 경우가 많아요.
🤔 Check yourself
마르코프 연쇄가 같은 상태로 수렴하는 까닭은?
Answer λ=1 인 성분은 그대로 남고, |λ| < 1 인 성분은 거듭제곱하면 0으로 사그라듭니다. 그래서 어디서 출발해도 λ=1 의 고유벡터 방향만 남아요.