고유값과 고유벡터
고유값과 고유벡터의 정의
- 행렬 A를 선형변환으로 봤을 때, A에 의한 결과가 자기 자신의 상수배가 되는 0이 아닌 벡터를 고유벡터(eigenvector) 라 하고, 이 상수배 값을 고유값(eigenvalue) 이라고 한다.
- 고유값과 고유벡터는 정방행렬에 대해서만 정의되며, n×n 정방행렬 A에 대해 Av=λv 를 만족하는 0이 아닌 열벡터 v를 고유벡터, 상수 λ를 고유값이라 정의한다.
Av=λv
a11⋮an1⋯⋱⋯a1n⋮annv1⋮vn=λv1⋮vn
- λ 는 행렬 A의 교유값, v는 행렬 A의 λ에 대한 고유벡터 이다.
- 즉, 고유값과 고유벡터는 행렬에 따라 정의되는 값으로서 어떤 행렬은 이러한 고유값-고유벡터가 존재하지 않을수도 있고 어떤 행렬은 하나만 존재하거나 또는 최대 n개까지 존재할 수 있다.
선형변환의 의미

- 행렬 A를 이용해 벡터 x를 선형변환 시켜주면, 변환 후의 벡터 Ax는 변환 전의 벡터 x와 비교했을 때, 크기도 방향도 모두 변할 수 있다.
- 고유값과 고유벡터를 찾는 것은 아래와 같다고 할 수 있다.
- (고유벡터) “벡터 x에 선형변환 A를 연산했을 때, 그 크기만 변하고 원래 벡터와 평행한 벡터 x는 무엇인지?”
- (고유값) “그렇다면 그 크기는 얼마만큼 변했는지?”
고유값과 고유벡터 계산
예시-1
- 다음 행렬 A에 대해 고유값과 고유벡터를 구해보자.
A=[2112]
- 고유값과 고유벡터의 정의에 따라, 고유값 λ와 고유벡터 x는 다음 식을 만족한다.
Ax=λx
- 행렬의 성질에 의해 위 식을 (A−λI)x=0 로 표현할 수 있고, x가 0이 아닌 해 (nontrivial solution, 자명하지 않은 해)를 갖기 위해서는 다음을 만족해야한다.
- x는 0이 아니므로, (A−λI)의 역행렬이 존재하지 않는다. 행렬의 역행렬이 존재하지 않는다는 것은 그 행렬의 행렬식의 값이 0 임을 만족해야 한다.
- 어떤 정방행렬 A에 대해, 만약 A의 역행렬 A−1가 존재한다면, 동차 선형 시스템 Ax=0은 오직 하나의 유일한 해를 가지며 그 유일한 해는 항상 x=0 이다.
(A−λI)x=0
det(A−λI)=0
det(A−λI)∴ =det([2−λ112−λ])=0⇒(2−λ)2−1=4−4λ+λ2−1=λ2−4λ+3=0=(λ−1)(λ−3)=0λ1=1, λ2=3
- 선형변환 A의 고유값은 1과 3이고, 이것은 선형변환을 했을 때 그 크기는 변하고 방향이 변하지 않는 벡터가 있다고 할 때 그 벡터의 크기는 각각 1배와 3배가 된다는 의미가 된다.
- 다음과 같이 고유값을 이용해 고유벡터를 찾을 수 있다.
λ1=1 일 때 Ax=λ1x 를 만족해야함
[2112][x1x2]=1[x1x2]⇒{2x1+x2 x1+2x2=x1=x2⇒[x1x2]=[−11]
- 즉, λ1=1 인 경우의 고유벡터는 [−11]이 된다.
- 마찬가지로, λ2=3 인 경우의 고유벡터는 [11]이 된다.
- 고유벡터가 무수히 많을 수 있기 때문에, 특정 고유값에 해당하는 고유벡터를 크기 1로 정규화한 단위벡터로 표기할 수 있다. (∣∣x∣∣x)
예시-2
- 다음 행렬 B에 대해 고유값과 고유벡터를 구해보자.
B=210010−2−21
det(A−λI)=det(210010−2−21−λ100010001)⇒det(2−λ1001−λ0−2−21−λ)=(2−λ)((1−λ)(1−λ)−0)=(2−λ)(1−λ)2=0∴λ=2, λ=1
- 해는 λ=1,2 가 되며, λ=2는 단일근임에 비해 λ=1은 이중근임을 알 수 있다.
- λ에 대응하는 고유벡터의 개수는 몇중근이냐와 밀접한 관계가 있는데, 단일근에 대해서는 1개, 이중근에 대해서는 최대 2개, 삼중근에 대해서는 최대 3개 … 와 같이 n중근일 때 최대 n개의 고유벡터가 존재한다.
- 먼저, λ1=2의 고유벡터를 구하면 다음과 같다.
λ1=2 일 때 Bx=λ1x 를 만족해야함
210010−2−21x1x2x3=2x1x2x3⇒⎩⎨⎧2x1−2x3x1+x2−2x3x3=2x1=2x2=2x3=⎩⎨⎧−2x3x1−x2−2x3−x3=0=0=0∴x1=x2, x3=0
- 따라서, λ1=2에 대응 하는 고유벡터는 [1,1,0]T 로 잡을 수 있다.
- 마찬가지로, λ2=1에 대해서도 고유벡터를 구해보면 다음과 같다.
=⎩⎨⎧2x1−2x3x1+x2−2x3x3=x1=x2=x3={x1−2x3x1−2x3=0=0∴x1=2x3
- x1이 x3 의 2배인 벡터들은 무수히 많은데, 이들은 [2,0,1], [0,1,0]의 일차결합으로 표현할 수 있으므로 λ2=1에 대응하는 고유벡터를 [2,0,1], [0,1,0] 로 나타낼 수 있다.
- 일차 결합(Linear Combination)은 벡터들의 스칼라배와 합의 형태로 표현되는 것을 말한다.
- 벡터 v1,v2,…,vn 와 상수 a1,a2,…,an 대해서 다음과 같이 표현할 수 있다.
- 위 고유벡터 식에 따라 x1=2x3 을 아래와 같이 일차결합으로 증명할 수 있다.
x=[2x3,x2,x3]T
- 위 벡터를 다음 일차결합 식으로 나타낼 수 있다.
x=x3[2,0,1]T+x2[0,1,0]T
- 따라서, x1=2x3을 만족하는 벡터는 항상 [2,0,1]과 [0,1,0]의 선형결합으로 표현된다.
고유값 분해
- 고유값분해(EVD, eigen-vetor decomposition)는 정방행렬 A를 고유벡터 행렬과 고유값 행렬의 곱으로 분해하는 것이다.
- 행렬 A의 고유값들을 λi , 고유벡터들을 vi라고 할 때, 다음이 성립한다.
Avi=λivi for i=1,2,⋯,n
A[v1,v2,⋯,vn]A[v1,v2,⋯,vn]=[λ1v1,λ2v2,⋯,λnvn]=[v1,v2,⋯,vn]λ10 00λ2 0⋯0⋱⋯00 λn
- 이 때, 대각성분을 고유값들로 모아둔 고유값 행렬을 Λ 라고 하고, 고유벡터 행렬을 V 라고 하면 다음과 같이 쓸 수 있다.
AV=VΛ
- 만약 모든 고유벡터들이 선형독립(일차독립) 이라면 위 식으로부터 아래와 같이 행렬 A를 쓸 수 있다.
A=VΛV−1
- 다음 행렬 A에 대한 고유값 분해의 예시는 다음과 같다.
A=[−5041]
det(A−λI)=0
det([−5−λ041−λ])=0
λ2+4λ−5=0
(λ+5)(λ−1)=0
λ=−5,1
- 고유값 −5에 대한 고유벡터는 다음과 같이 계산 할 수 있다.
λ1=−5, [−5041][x1x2]=−5[x1x2]
{−5x1+4x2x2=−5x1=−5x2 ⇒ v1=[10]
- 이때 −5x1=−5x1이므로 x1은 자유변수이다. 자유변수는 고유벡터가 0이 아닐 때 어떤 값을 대입해도 방정식이 성립한다.
- 고유값 1에 대한 고유벡터는 다음과 같이 계산 할 수 있다.
λ2=1, [−5041][x1x2]=1[x1x2]
{−5x1+4x2x2=x1=x2 ⇒ v2=[321]
- x1, x2 모두 자유 변수가 가능하며, x2를 1로 두어 계산하였다.
- 고유값들을 모아 고유값 행렬 Λ 를 정의하고, 고유벡터를 모아 행렬 V 라고 하면 다음과 같이 쓸 수 있다.
A=VΛV−1
[−5041]=[10321][−5001][10321]−1=[10321][−5001][10−321]
고유값 분해 가능조건 - 일차독립
- 모든 정방행렬이 고유값 분해가 가능한 것은 아니며, n×n 정방행렬 A가 고유값 분해가 가능하려면 n개의 일차독립인 고유벡터를 가져야 한다.
- 일차독립이란 어떤 벡터들의 집합 {v1,⋯,v2}이 있을 때, 이들 벡터들 중 어느 한 벡터도 다른 벡터들의 일차결합으로 표현될 수 없으면 이 벡터들은 서로 일차독립이라고 정의한다.
- 즉, a1v1+a2v2+⋯+anvn=0 에서 모든 계수 ai가 0일 때만 성립하는 경우를 말한다.
- 어떤 벡터도 다른 벡터들의 상수배 합으로 표현될 수 없으면 서로 일차독립이라고 한다.
- Rn 공간에서는 최대 n개의 일차독립인 벡터들을 가질 수 있으며 n개의 일차독립인 벡터들은 이 공간을 생성하는 basis(기저) 역할을 한다.
- 만약 R3 공간에서 v1=(1,0,0), v2=(0,1,0), v3=(0,0,1) 이라면 세 벡터 중 어떤 벡터도 다른 벡터들의 상수배 합으로 표현될 수 없으므로 서로 일차독립이 성립한다.
- v1=(1,0,0), v2=(0,1,0), v3=(0,0,1), v4=(−1,3,4) 라면 {v1,v2,v3}은 일차독립 이지만 {v1,v2,v3,v4}는 일차독립이 아니다. (v4=−v1+3v2+4v3)
- 즉, 3차원 공간에서 가능한 일차독립인 벡터들의 개수는 최대 3개 이다.
고유값 분해의 기하학적 의미
- 고유값 분해(Eigen-decomposition)의 기하학적 의미는 복잡한 선형 변환 A를 가장 단순한 형태의 변환(축 방향 스케일링) 으로 분해하여 이해하는 것이다.
- 즉, 선형 변환 Ax=VΛV−1x 에서, V−1, Λ, V 각각의 선형 변환을 차례대로 적용하여 원래의 선형 변환 A과 같은 효과를 적용할 수 있다.
- 이때, 고유 벡터 행렬 V의 선형 변환은 회전과 유사한 역할을 할 수 있고, 교유값을 대각성분에 구성한 Λ는 대각 성분만 존재하기 때문에 위 아래 혹은 양 옆으로 늘어나거나 줄어드는 변환임을 알 수 있다.
대칭행렬의 고유값 분해
- 대칭행렬의 고유값 분해는 일반 정방행렬의 교유값 분해와 다르게, 교유벡터가 서로 직교하는 성질을 가진다.
- 대칭 행렬은 아래와 같은 성질을 만족하는 행렬이다.
A=AT
- 만약 행렬 A가 교유값 분해할 수 있다면 아래의 내용이 성립한다.
A=VΛV−1=AT
AT=(VΛV−1)T
- 여기서 행렬 곱의 전치(transpose) 성질 (XYZ)T=ZTYTXT를 적용하면 다음과 같다.
AT=(VΛV−1)T=(V−1)TΛTVT
- 여기서, Λ는 대각행렬이므로 ΛT=Λ이고, 역행렬의 전치를 전치의 역행렬과 같으므로 (V−1)T=(VT)−1을 적용할 수 있다.
AT=(VT)−1ΛVT
VΛV−1=(VT)−1ΛVT
- 이 식을 통해 VT=V−1 이 성립함을 알 수 있다.
V=(VT)−1, V−1=VT
VTV=I
- 즉, 대칭 행렬 A의 교유벡터를 모아둔 행렬 V는 역행렬이 전치행렬과 같으므로 직교행렬(Orthogonal Matrix) 이다.
- 따라서, 대칭행렬은 아래와 같이 교유값 분해할 수 있고, 직교행렬을 Q라고도 표현한다.
A=VΛVT
A=QΛQT
- 직교행렬은 길이(크기)와 각도를 보존하는 변환이며, 직교 행렬 Q를 어떤 벡터 x에 곱하여 선형 변환 Qx를 수행하면 변환된 벡터의 길이는 원래 벡터 x의 길이와 같다.
- 직교 행렬은 주로 회전이나 반사와 같은 변환을 나타내며, 행렬식 det(x)=±1 이고 1 이면 순수 회전 변환, −1이면 반사 변환을 포함한다.
참고