일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- eigenvalue
- vector
- 컴퓨터밑바닥의비밀
- 코드포스
- 다익스트라
- unity
- 재배치
- 알고리즘
- 스레드전용저장소
- 동적링크
- 행렬
- CS정리
- column space
- 대상파일
- 다이나믹 프로그래밍
- 정적링크
- 링커
- 심벌 해석
- 컴파일러
- matrix
- Rust
- 스레드전용리소스
- 적재도구loader
- 선형대수학
- 벡터
- linear algebra
- c++
- rust 스터디
- 백준
- 구문트리
- Today
- Total
개발_기록용
[선형대수학 정리] 17. 고윳값과 고유벡터(eigen value & eigen vector) 본문
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라는 결과가 나왔다고 생각하자. 이를 선형변환 과정이라 본다.
선형변환의 조건
선형변환 과정의 선형 이라함은 Scaling과 Additivity가 성립해야 한다.
- 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) 이라 한다.
'선형대수학' 카테고리의 다른 글
[선형대수학 정리] 19. 주성분 분석 (PCA : Pricipal Component Analysis) (7) | 2024.07.24 |
---|---|
[선형대수학 정리] 18. 고윳값 분해 (eigen decomposition) (7) | 2024.07.24 |
[선형대수학 정리] 16. 최소자승법 (5) | 2024.07.22 |
[선형대수학 정리] 15. trace (3) | 2024.07.22 |
[선형대수학 정리] 14. determinant (행렬식) (4) | 2024.07.22 |