어떤 정방행렬을 그 오른쪽에 행렬 S, 왼쪽에 행렬 S−1을 곱함으로써 대각행렬을 만드는 기법을 대각화라고 합니다.
S−1AS=Λ
고유값과 고유벡터
정방행렬 A와 스칼라 λ, 영이 아닌 벡터 v에 대해 Av=λv가 만족되는 경우 λ를 A의 고유값(eigen value), v를 대응하는 고유벡터(eigen vector)라 합니다.
만약 λ가 A의 고유값이면 대응하는 고유벡터는 무수히 많습니다. 집합 {v:Av=λv}는 벡터공간이며 고유값 λ에 대응하는 고유공간이라 합니다. 일반적으로 norm이 1인 고유벡터를 선택합니다. 피보나치 수를 분석하는데 쓰인 행렬 [1110]의 고유값은 λ1=21+5, λ2=21−5 이고 대응하는 고유벡터는 각각 [21+51], [21−51] 였습니다.
한편 행렬 A의 한 고유값이 0이면 이 고유값에 대응하는 고유벡터 v는 A의 영공간입니다. Av=0v 일 때 v가 영벡터가 아니기 때문입니다. 역으로 A의 영공간이 자명하지 않으면(영벡터가 아니면) A는 고유값 0을 갖습니다.
0이 아닌 고유값에 대응하는 고유벡터는 어떻게 찾을 수 있을까요? 식 Av=λv를 아래와 같이 바꿔 쓸 수 있습니다.
(A−ΛI)v=0
고유값 λ에 대해 벡터 v는 A−ΛI의 영공간에 속하는 영이 아닌 벡터입니다. A−ΛI가 역행렬이 존재한다면 v=0이므로 고유벡터의 정의에 어긋납니다. 따라서 A−ΛI는 비가역적입니다. 정리하면 다음과 같이 쓸 수 있습니다.
λ 가 A의 고유값이 될 필요충분조건은 A−ΛI가 비가역적인 경우입니다.
만약 λ가 A의 고유값이면 대응하는 고유공간은 A−ΛI의 영공간입니다.
식 (A−ΛI)v=0에서 (A−ΛI)T=AT−ΛI입니다. 따라서 λ는 A와 AT의 고유값입니다.
유사 행렬과 대각화 가능성
정방행렬 A에 대해 B=S−1AS를 만족하는 정방행렬 B가 있다면 B는 A의 유사 행렬이라 합니다. 유사행렬은 같은 고유값을 가집니다. A의 고유값 λ에 대한 식 Av=λv와 B=S−1AS 식으로 이를 증명할 수 있습니다.
먼저 B=S−1AS는 A=SBS−1로 바꿔 쓸 수 있습니다. 이를 식 Av=λv에 대입하면 아래와 같습니다.
SBS−1v=λv
위 식의 앙변에 S−1를 곱하면 아래와 같은 식을 얻습니다.
BS−1v=S−1λv=λS−1v
w=S−1v라 하면 Bw=λw라 쓸 수 있고 이는 고유값 λ와 대응하는 고유벡터 w=S−1v가 존재함을 뜻합니다. 따라서 λ는 B의 고유값입니다.
만약 어떤 행렬 A가 대각행렬과 유사행렬이면, 즉 대각행렬 Λ에 대해 S−1AS=Λ를 만족하는 S가 존재하면 A는 대각화 가능하다(diagonalizable)고 합니다.
만약 Λ가 대각행렬 ⎣⎢⎡λ1...λn⎦⎥⎤ 라면 행렬의 고유값은 λ1,...,λn입니다. 행렬 A와 Λ가 유사행렬이라면 A의 고유값은 Λ의 고유값, 즉 Λ의 대각 원소들입니다.
식 S−1AS=Λ는 양변에 S를 곱해 AS=SΛ로 쓸 수 있습니다. 양변을 행렬-벡터 곱셈의 관점에서 해석해 보겠습니다. 좌변의 i번째 열은 행렬 A와 S의 i번째 열의 행렬-벡터 곱셈입니다. 우변의 i번째 열은 S의 i번째 열과 Λ의 i번째 대각원소의 스칼라-벡터 곱입니다. 이 해석은 Av=λv와 같습니다. 따라서 S의 한 열벡터는 Λ의 대각원소, 즉 고유값에 대응하는 고유벡터입니다. 행렬 S의 열벡터들은 가역적이므로 일차독립입니다. 따라서 고유벡터들은 일차독립입니다.
역으로 A가 일차독립인 고유벡터들을 가진다고 할 때 행렬 S를 ⎣⎢⎡v1...vn⎦⎥⎤라 하면 AS=SΛ가 성립하고 S는 가역적이므로 양변에 S−1을 곱해 A=SΛS−1 형태로 대각화 가능합니다. 정리하면, 행렬이 대각화 가능할 필요충분조건은 이 행렬이 n개의 일차독립인 고유벡터를 가지는 것입니다.
고유벡터에 대한 좌표표현
앞서 S의 열벡터를 기저로 하는 좌표표현으로의 변경을 위해 식 xt=Sut와 xt=Atx0=SΛtS−1x0을 이용해 ut=Λtu0을 이끌어 냈습니다. 이것을 다른 각도에서 한번 살펴보겠습니다.
행렬 A의 고유벡터들 v1,...,vn이 있을 때 이들은 Rn의 기저를 형성합니다. 임의의 벡터 x는 아래와 같이 표현가능합니다.
위 식에 다시 한번 A를 곱하면 A2x=α1λ12v1+...+αnλn2vn을 얻습니다. 연속해서 A를 곱할 때 Atx=α1λ1tv1+...+αnλntvn을 얻습니다. 만약 λ1의 절대값이 다른 고유값들보다 크다면 충분히 큰 t에 대해 다음을 얻게 됩니다.
Atx≈α1λ1tv1
실제로 절대값이 1보다 작은 고유값을 포함한 항은 t가 증가함에 따라 점점 작아지게 됩니다.
인터넷 웜
웜은 네트워크를 통해 복제되어 퍼져 나가는 프로그램입니다. 하나의 컴퓨터에서 실행되는 프로그램 인스턴스가 다른 주변 컴퓨터에 침투하여 이들 컴퓨터에 자신의 복사본을 만들어 실행하게 합니다. 이러한 웜의 동작을 나타내는 단순한 모델을 분석해보겠습니다. 인터넷은 삼각형으로 연결된 세 개의 컴퓨터로 단순화합니다. 웜은 매 이터레이션마다 101의 확률로 이웃하는 컴퓨터에 자신의 복제본을 생성합니다. 그리고 71의 확률로 절대 죽지 않는(immortal) 웜이 됩니다. xi를 컴퓨터 i의 일반적인(mortal) 웜, yi를 죽지 않는 웜이라 하면 다음과 같은 행렬-벡터 곱셈을 쓸 수 있습니다.
위 식은 xt=Atx0로 일반화 할 수 있고 이 때 행렬 A의 가장 큰 고유값은 1.034 입니다. 따라서 At의 고유값은 1.034t이고 이는 이터레이션이 늘어날 때마다 웜수는 기하급수적으로 늘어남을 의미합니다.
고유값의 존재
어떤 상황에서 행렬이 고유값을 가지게 될까요? 임의의 가역행렬 A에 대해 ATA를 살펴 보겠습니다. A를 특이값 분해하면 다음과 같습니다.
A=UΣVT
ATA는 다음과 같습니다.
ATA=VΣUTUΣVT=VΣIΣVT=VΣ2VT
위 식에서 V는 정규직교 행렬이고 정규직교 행렬은 VVT=I와 같은 성질을 가지므로 VT는 V의 역행렬입니다. 따라서 VΣ2VT와 같은 형태는 V−1Σ2V 또는 VΣ2V−1와 같고 이는 ATA가 고유값을 가짐을 의미합니다. 이 때 고유값은 A의 특이값의 제곱입니다. 한편 ATA는 (ATA)T=ATA인 대칭행렬입니다.
앞서 식 AS=SΛ에서 행렬 S가 가역적이므로 고유벡터들은 일차독립임을 보았습니다. 행렬 A의 고유값으로 이루어진 집합 T에 대해 대응하는 고유벡터들은 일차독립임을 증명해 보겠습니다.
고유벡터들 v1,...,vr이 일차종속이면 아래 식의 계수 α1,...,αr은 적어도 하나는 0이 아닙니다.
α1v1+...+αrvr=0
이 때 위 식의 선형결합은 최소로 필요한 벡터 vi를 선택했다고 하겠습니다. λ1,...,λr이 대응하는 고유값이라면 다음이 성립합니다.
식 α1v1+...+αrvr=0에 λ1을 곱하고 위 식에서 빼면 다음을 얻습니다.
0=α2(λ1−λ2)+...+αr(λ1−λr)
식 α1v1+...+αrvr=0은 최소의 벡터들 vi를 선택했지만 위 식에서 그보다 적은 벡터로 일차종속임을 보였으므로 이는 일차종속의 가정에 어긋납니다. 따라서 고유벡터 v1,...,vr은 일차독립입니다.
대칭행렬과 상삼각행렬
대칭행렬의 대각행렬은 Λ=STAS의 형태를 가집니다. A=SΛS−1과 AT=(S−1)TΛTST을 바탕으로 이를 이끌어 낼 수 있습니다.
SΛS−1=(S−1)TΛTST=(S−1)TΛST
위 식에서 S−1=ST일 때 양변이 같아집니다. 따라서 Λ=STAS 이 성립합니다.
상삼각행렬의 경우 대각원소가 곧 고유값입니다. 상삼각행렬 U가 있다고 할 때 U−ΛI가 비가역적이면 고유값을 가지게 됩니다. 이 때 U−ΛI는 상삼각행렬이고 상삼각행렬이 가역적일 필요충분조건은 대각 원소가 모두 0이 아닌 경우입니다. 역으로 비가역적일 조건은 대각 원소 중 하나라도 0인 경우입니다. Λ의 한 대각 원소가 λ이고 U의 대응하는 한 대각원소가 λ라면 비가역적일 조건이 충족됩니다. 따라서 고유값 λ는 U의 대각원소입니다.
누승법
A가 대각화 가능한 행렬로 n개의 서로 다른 고유값 λ1,...,λn을 가질 때 고유값을 크기 순으로 정렬하면 ∣λ1∣≥∣λ2∣...≥∣λn∣ 입니다. 대응하는 일차독립인 고유벡터 v1,...,vn이 있을 때 랜덤벡터 x0는 다음과 같이 Rn의 기저를 형성하는 고유벡터들의 선형결합으로 나타낼 수 있습니다.
이 때 t가 증가할 때마다 v1의 계수 α1λ1t는 압도적으로 커져 xt는 α1λ1tv1+error로 쓸 수 있습니다. 여기서 error는 α1λ1tv1보다 훨씬 작은 벡터입니다. v1이 고유벡터이므로 α1λ1tv1도 고유벡터입니다. xt는 결국 고유벡터에 근사한 벡터, 즉 근사 고유벡터(approximate eigen vector)가 됩니다. 더욱이 Axt는 λ1xt로 수렴할 것입니다.
이처럼 절대값이 가장 큰 고유값에 가까운 근사 고유값과 이 근사 고유값에 대응하는 고유벡터를 찾는 방법을 누승법이라 합니다.