Math & Linear Algebra/Concepts

eigendecomposition

metamong 2023. 2. 19.

 

🤾🏽‍♂️ 저번 시간에 eigenvalue와 eigenvector에 대해 학습했다.

 

eigenvalue & eigenvector

* intro 🔅 위에서 배운 transform 연산에서 transformation에 영향을 받지 않는 부분, 즉 transform을 해도 방향이 변하지 않는 벡터(값은 변할 수 있음)를 '고유벡터(eigenvector)' (※ 벡터의 차원에서는 transfo

sh-avid-learner.tistory.com

 

🤾🏽‍♂️ 이 두 가지 개념을 사용해 eigen decomposition을 간단히 알아보려 함


eigendecomposition이란?

🤾🏽‍♂️ 정의

$$A = V \Lambda V^{-1}$$

· A: nxn 정사각행렬

· V: A의 고유벡터들을 열로 갖는 행렬

· $\Lambda$: 고유값들을 대각성분으로 갖는 행렬 ($\Lambda = diag(\lambda_1, \lambda_2, ... , \lambda_n$)

 

🤾🏽‍♂️ ex) A는 2x2 정사각행렬, eigenvector $v_1$과 $v_2$, 그리고 두 개의 eigenvalue($\lambda_1, \lambda_2)$를 대각성분으로 갖는 $\Lambda$

 

① $\lambda_1, \lambda_2$는 각각 행렬 A의 eigenvalue이므로

$$Av_1 = \lambda_1v_1, Av_2 = \lambda_2v_2$$

 

② eigenvector $v_1, v_2$의 집합을 V라고 하면

$$v_1 = \begin{bmatrix}
v_{11} \\ v_{12}
\end{bmatrix},

v_2 = \begin{bmatrix}
v_{21} \\ v_{22}
\end{bmatrix}

V =  \begin{bmatrix}
v_{11} & v_{21} \\
v_{12} & v_{22} \\
\end{bmatrix}$$

 

③ ①과 ②

$$A \begin{bmatrix}
v_1 & v_2 \\
\end{bmatrix}
=
\begin{bmatrix}
\lambda_1v_1 & \lambda_2v_2 \\
\end{bmatrix} 
=
\begin{bmatrix}
v_1 & v_2 \\
\end{bmatrix}
\begin{bmatrix}
\lambda_1 & 0 \\
0 & \lambda_2 \\
\end{bmatrix} $$

 

④ 즉,

$$AV = V\Lambda$$

$v_1$과 $v_2$는 linearly independent하므로 V의 rank는 2, 즉 V는 invertible

 

$$A = V \Lambda V^{-1}$$

행렬 A를 eigendecomposition 하였다.

 

$$V^{-1}AV = \Lambda$$

행렬 A가 diagonalizable한 matrix이며, independent eigenvector가 n개 존재 (nxn A matrix)

 

🤾🏽‍♂️ 기하학적 의미 (돌리고 - 늘리고 돌리고)

eigendecomposition을 이용한 여러 계산

행렬 A의 거듭제곱 계산

$$A^k = V \Lambda V^{-1} V \Lambda V^{-1} ... = V \Lambda^k V^{-1}$$

$$(\Lambda^k = \begin{bmatrix}
\lambda_1^k & 0 \\
0 & \lambda_2^k \\
\end{bmatrix})$$

 

행렬 A의 역행렬 계산

$$A^{-1} = (V \Lambda V^{-1})^{-1} = V \Lambda^{-1} V^{-1}$$

 

행렬 A의 determinant(det(A)) 계산 (모든 eigenvalue의 곱)

$$det(A)$$

$$= det(V \Lambda V^{-1}) = det(V)det(\Lambda)det(V^{-1})$$

$$= det(\Lambda) = \lambda_1 \lambda_2 \lambda_3 ... = \prod_{i=1}^{n} \lambda_i$$

 

행렬 A의 대각합 tr(A) 계산 (모든 eigenvalue의 합)

$$tr(A)$$

$$= tr(V\Lambda V^{-1}) = tr(\Lambda V^{-1} V)$$

$$= tr(\Lambda) = \lambda_1 + \lambda_2 + ... = \sum_{i=1}^{n} \lambda_i$$

 

rank-deficient한 A는 det(A) = 0 이고 ③에 의해 0인 eigenvalue가 적어도 1개 이상 존재

python code

① $AV = V\Lambda$ 보이기

import numpy as np
A = np.array([[5,1],
              [3,3]])

eigVals, V = np.linalg.eig(A)

v1 = V[:, 0]
v2 = V[:, 1]

np.dot(A, v1) #array([4.24264069, 4.24264069])
eigVals[0]*v1 #array([4.24264069, 4.24264069])

np.dot(A, v2) #array([-0.63245553,  1.8973666 ])
eigVals[1]*v2 #array([-0.63245553,  1.8973666 ])

np.linalg.matrix_rank(V) #2 (number of eigenvalues)

 

② $A = V\Lambda V^{-1}$ 확인

#eigendecomposition 
L = np.diag(eigVals)

print(np.dot(np.dot(V,L),np.linalg.inv(V)))

'''
array([[5., 1.],
       [3., 3.]])
'''

* 출처1) https://rfriend.tistory.com/183

* 출처2) 혁펜하임 💚 https://youtu.be/PP9VQXKvSCY

 

'Math & Linear Algebra > Concepts' 카테고리의 다른 글

Probability fundamentals  (0) 2023.02.27
SVD(Singular Value Decomposition)  (0) 2023.02.20
vector similarity  (0) 2023.02.09
Linear Equation & Linear System / Rank & det(A)  (0) 2023.02.01
Matrix (fundamentals)  (0) 2022.07.31

댓글