선형대수학

[선형대수학 정리] 3. 내적과 정사영

나폴나폴 2024. 7. 16. 11:29
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. 정리


 

 

우선, 엄밀히 말하면 내적과 dot product는 다르다.

내적이 더 큰 개념임에 주의하자.

 

그러나, 이 강의에서는 내적과 dot product를 비슷한 개념으로

설명한다고 시작 전 언급하였음.

 

dot product

 

두 행렬 a, b가 있다면 a의 전치행렬 a^{T}와 b를 곱하는 것이다.

곱한 결과는 스칼라이므로, 전치해도 똑같다.

 

( b의 전치행렬 b^{T}와 a를 곱해도 똑같음.)

 

 

두 벡터 a, b에 대해 우리는 한 벡터의 내적을 하면

다른 한쪽 벡터 쪽으로

정사영 (projection)이라는 것을 알고 있다.

 

이는 제2코사인 법칙에 의해 a^{T}와 b를 곱한 것이

(벡터 a의 크기), (벡터 b의 크기) 그리고 둘 사이의 각도의 코사인 값을 곱한 것과

같기 때문이다.

 

 

그러면 a^{T}와 b를 곱할 때 b대신 a를 두면

a^{T}a 는 벡터 a의 크기의 제곱과 같다.

 

따라서,

$$\sqrt{a^{T}a}$$

는 a벡터의 크기이다.

 

 

방금 구한 a벡터의 크기를 벡터 a로 나눠주면

벡터 a의 방향을 나타내는 단위벡터도 구할 수 있다.

 

 

이런 식으로 벡터 b에 정사영한 a의 크기도 구하고,

그것에 b의 방향벡터를 곱하면 벡터 a와 b의 dot product이다.

 

(반대로 벡터 a에 정사영한 b 크기를 구하고, a의 방향 벡터 곱해도 마찬가지.)

 

**또다른 풀이로는

임의의 계수 x를 b에 곱해서 벡터 b에 내린 a의 정사영이라 하고,

a벡터에서 이를 뺀 (a-bx)와 bx는 서로 수직하므로

둘의 dot product는 0이다.

 

(a-bx)^{T}bx 는 0인데, x는 0이 아니므로

(a-bx)^{T}b = 0

 

따라서, a^{T} - b^{T}bx = 0 이므로 x를 구할 수 있다.

여기에 b를 곱하면 a의 정사영.

반응형