개발_기록용

[선형대수학 정리] 17. 고윳값과 고유벡터(eigen value & eigen vector) 본문

선형대수학

[선형대수학 정리] 17. 고윳값과 고유벡터(eigen value & eigen vector)

나폴나폴 2024. 7. 24. 16:38
728x90

1. 배경

 


그래픽스 공부에 들어가기 전, 근본 중에서도 근본인 선형대수학을 먼저 파야겠다고 생각했다!
 
Chris Ohk 님의 Game Developer Roadmap 2022를 보고 내가 부족한 부분을 채워나가기로 결심했기 때문이다.
 

https://github.com/utilForever/game-developer-roadmap

 

GitHub - utilForever/game-developer-roadmap: Roadmap to becoming a game developer in 2022

Roadmap to becoming a game developer in 2022. Contribute to utilForever/game-developer-roadmap development by creating an account on GitHub.

github.com

.

2. 정리


 

고윳값(eigen value)

 

 

고윳값(eigen value)은 람다( λ )로 표기하며 행렬 A에 벡터 v를 곱해서

 

$$Av = \lambda v$$

 

와 같이 방향은 그대로, 크기만 바뀌는 경우 이를 만족하는  λ  고윳값,

이를 만족하는 벡터 v를 고유벡터 라고 한다.

 

 

그리고 여기서 행렬 A는 정사각행렬 이어야 한다.


if) A가 m x n이라면 v는 n x 1이어야 하고

Av는 m x 1일 것이며 그 결과인 λv 도 v만 벡터라 n x 1이다.

 

따라서, m = n이어야 함.


그러면 이 과정을 v라는 벡터가 행렬 A를 통과해

Av라는 결과가 나왔다고 생각하자. 이를 선형변환 과정이라 본다.

 

선형변환의 조건

 

 

선형변환 과정의 선형 이라함은 ScalingAdditivity가 성립해야 한다.


  • v가 A 통과 후 Av가 된 것처럼, 상수배한 av가 A를 통과하면 a(Av)가 된다. (Scaling)
  • v1과 v2가 각각 A를 통과해 Av1, Av2가 된 것과 (v1+v2)가 A를 통과해 A(v1+v2)가 된게 같다. (Additivity)

변환은 v가 A를 통과해 Av로 변환된 것에서 따왔다.


 

 

선형변환 관점에서 행렬 A가 invertable한지 보는 것은 간단하다.

서로 다른 입력에 대해 서로 다른 출력을 내보내야 한다.

 

v가 A를 통과해 Av가 된 과정에 대해

역행렬은 Av가 역행렬을 통과해 v가 되는 과정으로 설명되기 때문.

 

따라서, 다른 입력에 대해 같은 출력이 나오면 invertable하지 않다.

 

예를 들어 2 x 2 짜리 항등행렬은 서로 다른 입력에 대해

같은 출력을 내보내서 역행렬이 존재하지 않는다.


 

그러면 서로 다른 v1, v2가 A를 통과해 변환된 것을

그래프 위에 나타내면 처음과 다른 크기, 다른 방향을 가리키는 것을 알 수 있다.

 

 

반면, 

 

\begin{bmatrix}
2 & -1\\
-1 & 2
\end{bmatrix}

 

에 대해 [1 -1]^{T}, [1 1]^[T} 벡터가 통과하면

그 결과가 처음과 똑같거나, 크기만 다르고 방향이 같은 결과가 나온다.

 

이 경우가 바로 고윳값과 고유벡터가 나오는 순간.

 

 

문제는 이런 고윳값과 고유벡터가 나오기까지 모든 벡터를

다 대입해서 일일이 구하기는 무리라는 점이다.

 

그래서 Av = λv 식을 전개해 보려 한다.

 

$$Av-\lambda v=(A-\lambda I)v = 0$$

 

그러면 v=0인 경우는 너무나 당연하고, 우리가 구하려는 상황이 아니니까

v가 0이 아닌 경우를 다루다보니 A- λI = 0이다.


 

**만약 A- λI가 역행렬을 가지면 양변에 그 역행렬을 곱해 좌변에 v만 남겨

$$v = 0$$

 

이라는 결론이 나오게 된다.

 

따라서, A- λI는 역행렬을 가지지 않는 singular matrix이다.

 

A-λI는 역행렬을 가지지 않는 singular matrix이다. (not invertable)

 

그러면 A-λI 는 not invertable하므로

det(A-λI) = 0인 λ를 찾아야 한다.

 

det(A-λI) = 0

 

그리고 그런 λ를 찾았을 때 (A-λI)v = 0 를 만족하는 벡터 v는

Ax = 0을 만족하는 null space 처럼 (A-λI)의 Null space에 존재한다.

 

→ 그래서 고유벡터 v는 그 개수가 아예 없거나 무한하며, 그 중에서 대표하는 것들만 쓴다.

→ N(A-λI)에 존재하는 v의 basis를 우리가 다룰 고유벡터로 삼는다.


 

여러 예제들을 풀어보면 고윳값과 고유벡터를 구하는 과정을 익힐 수 있다.

특히, 고유벡터는 basis만을 취한다는 것을 알 수 있다.

 


만약 예제 5번처럼 고윳값과 고유벡터가 모두 없다면

A를 통과했을 때 모든 벡터의 방향이 달라진다는 의미이다.

 

→ 이런 행렬 A를 회전행렬 (Rotation matrix) 이라 한다.

반응형
Comments