Suhwanc

 

이번엔 eigen vector와 eigen value에 대해 알아보려 한다.

 

eigen vector란?

eigenvector란 우리말로 고유 벡터라고 하는데, 선형 변환(transform)이 일어난 후에도

방향이 변하지 않는 영 벡터가 아닌 벡터이다.

 

eigen value란?

eigenvalue는 우리말로 고윳값이라 하며, eigenvector의 길이가 변하는 배수를

선형 변환의 그 eigenvector에 대응하는 eigenvalue라고 부른다.

여기서 주의할 점은 길이가 변하는 것이지 방향의 변화는 없다는 것이다.

 

이 둘을 식으로 나타내자면,

 

matrix A에 대하여, Ax = λx (lambda는 상수)가 성립하는 0이 아닌 x vector가 존재할 때

λ를 matrix A의 eigenvalue, x를 eigenvector라고 한다.

 

eigenvector, value 구하기

컴퓨터로 작업하기가 너무 힘들어서 직접 써보았습니다..ㅠ

 

계산 과정을 간단히 글로 써보자면..

 

Av = λv

(A-λI)v = 0 (I는 단위행렬)

값을 만족시키기 위해선 A-λI = 0을 찾아야 하고, 즉 det(A-λI) = 0이다.

2차원 matrix에서 구할 땐 상당히 간단하게 풀 수 있다.

 

numpy eigenvector, value 구하기

numpy로 구하기는 정말 너무~쉽다.

왜냐하면 바로 linalg Library에 eig라는 eigenvector, value를 구하는 함수가 내장되어 있기 때문이다.

바로 코드를 보자.

 

numpy.linalg.eig 함수는 인자로 eigenvector, value가 계산될 수 있는 행렬을 받으며

eigenvalue와 vector를 순차적으로 반환한다. 

만약 eigenvalue 값이 수렴하지 않을 경우 LinAlgError를 발생시킬 수 있다 하니 유의하도록 하자!