먼저 선형변환(linear transformation)의 개념을 떠올려봅시다.
다음과 같이 특정한 벡터를 선형변환을 시켰을 경우
선형변환 매트릭스 T의 각 컬럼 값에 따라 grid의 기저(basis)가 뒤틀리며
변환된 벡터 v′는 기존 v이 그리던 선의 span에서 이탈하게 되는 경우가 대부분입니다. 당연하겠죠?
Tv=v′
하지만 선형변환을 취했음에도 이탈하지 않는 경우가 있을까요?
네, 그럴 수 있습니다. 그 경우에 해당 벡터 v를 선형변환 매트릭스 T에 대한 고유벡터(eigenvectors)라 칭하고 ∣v∣보다 얼마나 큰지에 따른 scale의 배수를 고유값(eigenvalues)라 합니다.
즉 고유벡터와 고유값은 선형변환 매트릭스에 따라 존재할 수도 있고, 존재하지 않을 수도 있습니다.
존재한다면 해당 고유벡터 v 고유값 λ에 대하여 다음과 같은 수식이 성립합니다.
해당 선형변환 매트릭스는 A라고 칭하겠습니다.
Av=λv
Computation
그럼 고유벡터와 고유값을 구하는 방법에 대해 알아보겠습니다.
위 수식을 다시 가져옵시다.
Av=λv
A가 정방형 매트릭스이므로 동일한 형태의 I행렬을 이용하여 수식을 변형시킵니다.
Av=λIv
그리고 좌변으로 옮겨 다음과 같은 형태로 만들어봅시다.
(A−λI)v=0
여기서 A−λI 가 어떻게 생겼는지 잠깐 살펴보면 다음과 같습니다.
(3 * 3매트릭스를 가정했습니다.)
⎣⎢⎡a−λdgbe−λhcfi−λ⎦⎥⎤
자 다시 돌아가서 위 수식을 보면 이는 v라는 벡터를 A−λI이라는 매트릭스로 선형변환 한 것과 같습니다.
그 결과 영벡터로 기존 고차원 벡터 공간이 뭉개져버리는 것을 알 수 있습니다.
다른 포스트에서 차원을 저차원으로 뭉개기 위해선 해당 선형변환 매트릭스의 determinant가 0이어야 한다는 것을 이미 학습한 적이 있습니다.
우선 대각행렬이 아닌 일반적인 매트릭스라도 이 매트릭스의 고유벡터를 이용해서 이 고유벡터들을 기저벡터로하는 시스템으로 기저변환을 할 수 있습니다.
다음과 매트릭스 A가 있다고 가정했을때 다음과 같은 선형변환을 취하고자 합니다.
Av=v′
그 매트릭스의 eigenvector가 basis인 세상을 가정해봅시다.
이 곳을 통상 eigenbasis system이라 합니다.
그리고 A이 eigenvector들을 기저컬럼으로 하는 매트릭스를 P라고 한다면
먼저 P를 취해서 대상 벡터를 현재의 시스템으로 불러오고 원하는 선형변환 A을 취한 후 다시 역행렬 P−1 취해 eigenbasis system으로 돌려보낼 수 있습니다.
이를 새로운 선형변환 Anew라고 해보겠습니다.
matrix composition(매트릭스들의 곱으로 합쳐진 형태)로 Anew를 표현하면 다음과 같습니다.
Anew=P−1AP
중요한 점은 이 새로운 선형변환 Anew은 eigenbasis 시스템에 존재하는 선형변환이기 때문에 반드시 대각행렬(Diagonal Matrix)임을 보장합니다.
Anew=Λ
이를 좀더 제네럴한 방식으로 수식을 좀 수정하면 다음과 같고 이를 대각화(Diagonalization) 이라고 합니다.
A=PΛP−1
Example
예를 들어서 이해해봅시다.
다음과 같은 선형변환 매트릭스 A가 있습니다. 위에서 봤던 매트릭스죠
특정 열벡터 v에 대한 A100 변환을 하고싶다고 가정해봅시다. A100를 구하기는 여간 어려운일이 아닐 겁니다.
A=[3012]
Av=v′
동 매트릭스의 고유값과 고유벡터를 봅시다. λ=2 일때 [1,−1]T, λ=3 일때, [1,0]T가 고유벡터가 될 수 있습니다.
이를 통해 고유벡터를 기저로 선형변환할 수 있는 매트릭스 E를 다음과 같이 만들 수 있습니다.
P=[1−110]
위 식을 다시 가져와 대각행렬을 계산해봅시다.
P−1AP=Λ
([1−110])−1[3012][1−110]=[2003]
즉 구하고자 한 대각행렬은 다음과 같습니다. 보시다시피 사실 대각행렬은 각 고유값들이 됩니다.
Λ=[2003]
그리고 다음과 같이 100승을 계산할 수 있습니다.
(P−1AP)100=Λ100
P−1A100P=Λ100
A100=PΛ100P−1
Tips
참고로 대상 행렬인 A가 대칭행렬(symmetric matrix)일 경우에만 고유벡터(eigenvectors)들이 서로 직교(orthogonal) 합니다.
위에서는 eigenvector를 임의로 나열했지만 보통 eigenvalues별로 매핑되는 eigenvector들에 대하여 각각 크기로 나누어 크기가 1인 단위벡터로 만들어 버립니다.
(uTu=1)