6.2. Diagonalizing a Matrix
선형대수학 글 목록
연결 강의: MIT 18.06 Linear Algebra - Lecture 22: Diagonalization and Powers of A
1. 이번 강의의 위치
지난 강의에서는 eigenvalue와 eigenvector의 기본 방정식을 배웠다.
Ax=λx
여기서 x는 eigenvector이고, λ는 eigenvalue이다.
이번 강의의 목표는 한 단계 더 나아가는 것이다.
eigenvalues와 eigenvectors를 찾은 뒤, 그것을 어떻게 사용하는지를 본다.
핵심은 행렬 A를 diagonal matrix와 연결하는 것이다.
이 과정을 diagonalization, 즉 대각화라고 한다.
2. Eigenvector들을 행렬로 모으기
행렬 A가 n개의 linearly independent eigenvectors를 가진다고 하자.
이 eigenvectors를 다음처럼 두자.
x1,x2,…,xn
각 eigenvector는 자기 eigenvalue를 가진다.
Ax1=λ1x1
Ax2=λ2x2
계속해서,
Axn=λnxn
이제 이 eigenvectors를 column으로 모아 행렬 S를 만든다.
S=∣x1∣∣x2∣⋯∣xn∣
이 행렬 S를 eigenvector matrix라고 부를 수 있다.
중요한 조건은 x1,…,xn이 linearly independent여야 한다는 점이다.
그래야 S가 invertible matrix가 된다.
3. AS를 계산하면 무슨 일이 생기는가
S의 column들은 모두 eigenvectors이다.
따라서 A를 S에 곱하면, 각 column에 A가 따로 작용한다.
AS=A∣x1∣∣x2∣⋯∣xn∣
행렬곱을 column 단위로 보면 다음과 같다.
AS=∣Ax1∣∣Ax2∣⋯∣Axn∣
그런데 각 xi는 eigenvector이므로,
Axi=λixi
이다.
따라서,
AS=∣λ1x1∣∣λ2x2∣⋯∣λnxn∣
이제 eigenvalues만 따로 diagonal matrix로 빼낼 수 있다.
Λ=λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn
그러면 다음이 성립한다.
AS=SΛ
이 식이 대각화의 출발점이다.
4. Diagonalization 공식
방금 얻은 식은 다음이다.
AS=SΛ
S가 invertible이면 양변 왼쪽에 S−1을 곱할 수 있다.
S−1AS=Λ
이 식은 행렬 A를 eigenvector basis에서 보면 diagonal matrix Λ가 된다는 뜻이다.
또 같은 식을 A에 대해 정리하면 다음과 같다.
A=SΛS−1
이것이 diagonalization 공식이다.
A=SΛS−1
여기서 각 행렬의 의미는 다음과 같다.
- S: eigenvectors를 column으로 모은 행렬이다.
- Λ: eigenvalues를 diagonal에 둔 행렬이다.
- S−1: 기존 좌표를 eigenvector 좌표로 바꾸는 역할을 한다.
이 분해는 이전에 배운 A=LU, A=QR과 비슷하게 행렬을 이해하기 좋은 형태로 바꾸는 새로운 factorization이다.
5. 왜 S가 invertible이어야 하는가
대각화를 하려면 반드시 S−1이 존재해야 한다.
즉, eigenvector matrix S의 column들이 linearly independent여야 한다.
S=∣x1∣∣x2∣⋯∣xn∣
x1,…,xn이 independent이면 S는 invertible이다.
반대로 eigenvectors가 부족하면 S를 invertible하게 만들 수 없다.
따라서 diagonalization은 모든 행렬에 항상 가능한 것은 아니다.
행렬 A가 n개의 linearly independent eigenvectors를 가질 때만 가능하다.
6. A2의 eigenvalues와 eigenvectors
대각화가 왜 유용한지 보려면 행렬의 거듭제곱을 보면 된다.
먼저 eigenvalue equation에서 시작하자.
Ax=λx
양변에 다시 A를 곱하면,
A2x=A(λx)
λ는 scalar이므로 밖으로 뺄 수 있다.
A2x=λAx
그런데 Ax=λx이므로,
A2x=λ(λx)
따라서,
A2x=λ2x
즉, A2의 eigenvector는 A와 같고, eigenvalue는 제곱된다.
eigenvalue of A2=λ2
7. 대각화로 A2 보기
같은 사실을 diagonalization으로도 볼 수 있다.
A=SΛS−1
그러면,
A2=(SΛS−1)(SΛS−1)
가운데의 S−1S는 identity matrix이다.
S−1S=I
따라서,
A2=SΛIΛS−1
즉,
A2=SΛ2S−1
이다.
Λ는 diagonal matrix이므로 Λ2도 diagonal matrix이고, 그 diagonal entries는 eigenvalues의 제곱이다.
Λ2=λ120⋮00λ22⋮0⋯⋯⋱⋯00⋮λn2
8. Ak 공식
같은 방식으로 A를 k번 곱하면 중간의 S−1S가 계속 사라진다.
Ak=(SΛS−1)(SΛS−1)⋯(SΛS−1)
중간 항들이 모두 identity가 되므로,
Ak=SΛkS−1
이다.
Ak=SΛkS−1
이 식은 diagonalization이 강력한 가장 큰 이유 중 하나이다.
행렬 A를 직접 100번 곱하는 것은 어렵다.
하지만 diagonal matrix Λ의 100제곱은 쉽다.
Λ100=λ11000⋮00λ2100⋮0⋯⋯⋱⋯00⋮λn100
즉, 행렬의 거듭제곱 문제를 eigenvalue의 거듭제곱 문제로 바꾼다.
9. 안정성: 언제 Ak→0인가
diagonalization을 사용하면 Ak가 커지는지, 작아지는지, 0으로 가는지 쉽게 볼 수 있다.
Ak=SΛkS−1
여기서 S와 S−1은 고정되어 있다.
k가 커질 때 변하는 것은 Λk이다.
따라서 Ak가 0으로 가려면 모든 eigenvalue의 거듭제곱이 0으로 가야 한다.
즉,
∣λi∣<1for all i
이면,
Ak→0(k→∞)
이다.
여기서 절댓값을 쓰는 이유는 eigenvalues가 음수이거나 complex number일 수 있기 때문이다.
정리하면 다음과 같다.
Ak→0⟺∣λi∣<1 for all eigenvalues
단, 이 설명은 A가 diagonalizable하다는 가정 아래에서 보는 것이 가장 깔끔하다.
10. 어떤 행렬이 diagonalizable한가
대각화가 가능하려면 n개의 linearly independent eigenvectors가 필요하다.
가장 좋은 경우는 eigenvalues가 모두 서로 다른 경우이다.
즉, n×n 행렬 A가 n개의 distinct eigenvalues를 가지면, A는 n개의 independent eigenvectors를 가진다.
따라서 A는 diagonalizable하다.
λ1,λ2,…,λn all distinct⟹A is diagonalizable
이것은 매우 중요한 사실이다.
랜덤하게 고른 대부분의 행렬은 eigenvalues가 서로 다르기 때문에 보통 diagonalizable하다.
문제가 생기는 경우는 repeated eigenvalue가 있을 때이다.
11. Repeated eigenvalue는 항상 나쁜가
repeated eigenvalue가 있다고 해서 항상 diagonalization이 불가능한 것은 아니다.
대표적인 예시는 identity matrix이다.
I=10⋮001⋮0⋯⋯⋱⋯00⋮1
identity matrix의 eigenvalue는 전부 1이다.
즉, eigenvalue 1이 n번 반복된다.
하지만 모든 벡터가 eigenvector이다.
Ix=x
따라서 eigenvectors는 부족하지 않다.
원하는 대로 n개의 independent eigenvectors를 고를 수 있다.
즉, repeated eigenvalue가 있다고 해서 무조건 diagonalizable하지 않은 것은 아니다.
다만 repeated eigenvalue가 있으면 eigenvectors가 충분한지 반드시 확인해야 한다.
12. Diagonalization이 실패하는 예시
다음 행렬을 보자.
A=[2012]
이 행렬은 triangular matrix이다.
triangular matrix의 eigenvalues는 diagonal entries에서 바로 읽을 수 있다.
따라서 eigenvalues는 다음과 같다.
λ1=2,λ2=2
즉, eigenvalue 2가 두 번 반복된다.
직접 characteristic equation을 보면 다음과 같다.
A−λI=[2−λ012−λ]
determinant는 대각성분의 곱이다.
det(A−λI)=(2−λ)2
따라서 λ=2가 double root이다.
13. Algebraic multiplicity와 geometric multiplicity
위 예시에서 eigenvalue 2는 characteristic polynomial에서 두 번 반복된다.
이 반복 횟수를 algebraic multiplicity라고 한다.
det(A−λI)=(2−λ)2
따라서 λ=2의 algebraic multiplicity는 2이다.
하지만 eigenvectors가 몇 방향 나오는지는 따로 봐야 한다.
이를 위해 A−2I의 nullspace를 구한다.
A−2I=[0010]
eigenvector는 다음 식을 만족해야 한다.
(A−2I)x=0
즉,
[0010][x1x2]=[00]
이 식은 x2=0을 의미한다.
x1만 자유변수이므로 nullspace는 다음 한 방향뿐이다.
null(A−2I)=span{[10]}
따라서 independent eigenvector는 하나뿐이다.
이 eigenvector 방향의 개수를 geometric multiplicity라고 한다.
이 예시에서는 다음과 같다.
algebraic multiplicity=2
하지만,
geometric multiplicity=1
이다.
따라서 2×2 행렬인데 independent eigenvector가 하나밖에 없고, 이 행렬은 diagonalizable하지 않다.
14. Difference equation
대각화가 가장 잘 쓰이는 곳 중 하나는 행렬의 반복 적용이다.
다음 recurrence를 생각하자.
uk+1=Auk
여기서 uk는 벡터이고, A는 고정된 행렬이다.
초기값 u0가 주어지면,
u1=Au0
u2=Au1=A2u0
계속해서,
uk=Aku0
이다.
이 식 자체는 간단하지만, 실제로 Ak를 계산하는 것은 쉽지 않다.
여기서 diagonalization이 필요하다.
Ak=SΛkS−1
따라서,
uk=SΛkS−1u0
이다.
15. 초기벡터를 eigenvector들의 조합으로 쓰기
대각화의 의미를 더 직관적으로 보자.
초기벡터 u0를 eigenvectors의 linear combination으로 쓴다고 하자.
u0=c1x1+c2x2+⋯+cnxn
이제 A를 한 번 곱하면,
Au0=c1Ax1+c2Ax2+⋯+cnAxn
각 xi는 eigenvector이므로,
Au0=c1λ1x1+c2λ2x2+⋯+cnλnxn
A를 k번 곱하면 다음이 된다.
Aku0=c1λ1kx1+c2λ2kx2+⋯+cnλnkxn
즉, 각 eigenvector 방향은 자기 eigenvalue만큼 독립적으로 커지거나 작아진다.
이것이 eigenvector basis가 강력한 이유이다.
일반 좌표에서는 서로 섞여 보이는 동역학이, eigenvector 좌표에서는 각각 따로 움직인다.
16. Fibonacci 수열 예시
Fibonacci 수열을 eigenvalue 관점에서 보자.
초기값을 다음처럼 둔다.
F0=0,F1=1
그리고 점화식은 다음이다.
Fk+2=Fk+1+Fk
따라서 수열은 다음처럼 시작한다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …
질문은 다음이다.
F100은 얼마나 큰가?
또는 더 일반적으로, Fibonacci 수열은 얼마나 빠르게 증가하는가?
이 질문의 답은 eigenvalue에 들어 있다.
17. Fibonacci를 first-order system으로 바꾸기
Fibonacci 점화식은 scalar equation이지만, 두 단계 전 값까지 필요하다.
Fk+2=Fk+1+Fk
즉, second-order recurrence이다.
이를 first-order system으로 바꾸기 위해 벡터를 정의한다.
uk=[Fk+1Fk]
그러면 다음 단계는
uk+1=[Fk+2Fk+1]
이다.
점화식 Fk+2=Fk+1+Fk를 사용하면,
[Fk+2Fk+1]=[Fk+1+FkFk+1]
이것은 다음 행렬곱으로 쓸 수 있다.
uk+1=[1110]uk
따라서 Fibonacci recurrence는 다음 matrix difference equation이 된다.
uk+1=Auk
여기서,
A=[1110]
이다.
18. Fibonacci matrix의 eigenvalues
이제 행렬
A=[1110]
의 eigenvalues를 구하자.
먼저 A−λI는 다음이다.
A−λI=[1−λ11−λ]
determinant는 다음과 같다.
det(A−λI)=(1−λ)(−λ)−1
정리하면,
det(A−λI)=λ2−λ−1
따라서 characteristic equation은 다음이다.
λ2−λ−1=0
이 식의 해는 quadratic formula로 구한다.
λ=21±5
따라서 eigenvalues는 다음과 같다.
λ1=21+5
λ2=21−5
λ1은 약 1.618이고, λ2는 약 −0.618이다.
λ1≈1.618,λ2≈−0.618
이 두 eigenvalue는 trace와 determinant 성질도 만족한다.
trace는 다음이다.
tr(A)=1+0=1
따라서,
λ1+λ2=1
determinant는 다음이다.
det(A)=1⋅0−1⋅1=−1
따라서,
λ1λ2=−1
이다.
19. Fibonacci matrix의 eigenvectors
각 eigenvalue에 대해 eigenvector를 찾자.
A−λI=[1−λ11−λ]
이 행렬은 eigenvalue λ에 대해 singular이다.
다음 벡터를 생각하자.
x=[λ1]
확인해보면,
(A−λI)[λ1]=0
첫 번째 성분은 다음이다.
(1−λ)λ+1=λ−λ2+1
그런데 λ는 characteristic equation을 만족한다.
λ2−λ−1=0
즉,
λ2=λ+1
따라서 첫 번째 성분은 0이다.
두 번째 성분은 다음이다.
λ−λ=0
따라서 eigenvector는 다음처럼 잡을 수 있다.
x1=[λ11],x2=[λ21]
eigenvalues가 서로 다르므로 이 두 eigenvector는 independent이다.
따라서 Fibonacci matrix는 diagonalizable하다.
20. Fibonacci 수열의 성장률
초기벡터는 다음이다.
u0=[F1F0]=[10]
이 벡터를 eigenvectors의 조합으로 쓴다.
u0=c1x1+c2x2
즉,
[10]=c1[λ11]+c2[λ21]
두 번째 성분을 보면,
c1+c2=0
따라서 c2=−c1이다.
첫 번째 성분은 다음이다.
c1λ1+c2λ2=1
c2=−c1을 대입하면,
c1(λ1−λ2)=1
그런데,
λ1−λ2=5
이므로,
c1=51,c2=−51
이제 uk=Aku0를 계산하면,
uk=c1λ1kx1+c2λ2kx2
따라서 두 번째 성분인 Fk는 다음이다.
Fk=51λ1k−51λ2k
즉,
Fk=5λ1k−λ2k
여기서,
λ1=21+5,λ2=21−5
이다.
이 공식은 Fibonacci 수열의 closed form이다.
21. 왜 큰 eigenvalue가 지배하는가
λ1은 약 1.618이다.
λ1≈1.618
반면 λ2는 약 −0.618이다.
λ2≈−0.618
k가 커질수록 λ1k는 빠르게 커진다.
하지만 λ2k는 절댓값이 1보다 작기 때문에 0에 가까워진다.
∣λ2∣<1⟹λ2k→0
따라서 큰 k에 대해서는 Fibonacci 수열이 거의 다음처럼 행동한다.
Fk≈51λ1k
즉, Fibonacci 수열의 성장률은 dominant eigenvalue인 λ1이 결정한다.
이 값은 golden ratio이다.
ϕ=21+5
따라서 Fibonacci 수열은 대략 매 단계마다 ϕ≈1.618배씩 증가한다고 볼 수 있다.
22. 핵심 정리
이번 강의의 핵심은 eigenvectors를 이용해 행렬을 diagonal matrix로 바꾸는 것이다.
eigenvectors를 column으로 모은 행렬을 S라 하고, eigenvalues를 diagonal에 둔 행렬을 Λ라 하면 다음이 성립한다.
AS=SΛ
S가 invertible이면,
S−1AS=Λ
이고,
A=SΛS−1
이다.
이것이 diagonalization이다.
대각화를 하면 행렬의 거듭제곱을 쉽게 계산할 수 있다.
Ak=SΛkS−1
따라서 Ak의 행동은 eigenvalues의 거듭제곱이 결정한다.
특히 모든 eigenvalue가 절댓값 1보다 작으면,
Ak→0
이다.
대각화 가능성은 eigenvectors가 충분한지에 달려 있다.
- eigenvalues가 모두 distinct이면 diagonalizable하다.
- repeated eigenvalue가 있어도 diagonalizable할 수 있다.
- repeated eigenvalue가 있을 때 eigenvectors가 부족하면 diagonalizable하지 않다.
Fibonacci 예시는 대각화의 의미를 잘 보여준다.
recurrence를 matrix system으로 바꾸면,
uk+1=Auk
이고, 그 해는 eigenvalues와 eigenvectors로 표현된다.
결국 Fibonacci 수열의 성장률은 가장 큰 eigenvalue가 결정한다.
λ1=21+5
이처럼 diagonalization은 행렬이 반복해서 작용할 때, 그 안에서 실제로 어떤 방향이 커지고 어떤 방향이 사라지는지를 보여주는 도구이다.