벡터의 사영(projection)

2024. 9. 29. 20:39APPLIED/선형대수학(Linear Algebra)

반응형


 벡터 \( u = (2, 1) \)과 \( v = (1, 2) \) 에서
벡터 \( v \)를 \( u \)에 사영한 값(projection of \( v \) onto \( u \))을 구하면
   \[
   \text{proj}_u(v) = \left( \frac{8}{5}, \frac{4}{5} \right)
   \]
벡터 \( v \)와 사영된 벡터의 직교 성분을 구한 결과는:
   \[
   \text{perp}_u(v) = v - \text{proj}_u(v) = \left( \frac{-3}{5}, \frac{6}{5} \right)
   \]

 

 

 

사영 공식

벡터 \( v \)를 벡터 \( u \)에 사영하는 공식은 다음과 같다:

\[
\text{proj}_u(v) = \frac{v \cdot u}{u \cdot u} u
\]

여기서,
- \( v \cdot u \)는 두 벡터 \( v \)와 \( u \)의 내적(inner product)이다.
- \( u \cdot u \)는 벡터 \( u \)의 크기의 제곱이다.

 주어진 값

1. \( u = (2, 1) \)
2. \( v = (1, 2) \)

 


1단계: 내적 계산

먼저, 두 벡터 \( v \)와 \( u \)의 내적을 계산한다:

\[
v \cdot u = (1, 2) \cdot (2, 1) = 1 \cdot 2 + 2 \cdot 1 = 2 + 2 = 4
\]

2단계: \( u \cdot u \) 계산

다음으로, 벡터 \( u \)의 크기를 계산한다:

\[
u \cdot u = (2, 1) \cdot (2, 1) = 2^2 + 1^2 = 4 + 1 = 5
\]

 

 

 


3단계: 사영 값 계산

이제 사영을 구할 수 있다:

\[
\text{proj}_u(v) = \frac{v \cdot u}{u \cdot u} u = \frac{4}{5} u
\]

벡터 \( u \)를 다음과 같이 표현할 수 있다:

\[
u = (2, 1)
\]

따라서, \( \text{proj}_u(v) \)는 다음과 같이 계산된다:

\[
\text{proj}_u(v) = \frac{4}{5} (2, 1) = \left( \frac{8}{5}, \frac{4}{5} \right)
\]

이로써 벡터 \( v \)를 \( u \)에 사영한 값이 \( \left( \frac{8}{5}, \frac{4}{5} \right) \)임을 확인할 수 있다.

 

 


결론

- 벡터 \( v = (1, 2) \)의 \( u = (2, 1) \)에 대한 사영은 \( \text{proj}_u(v) = \left( \frac{8}{5}, \frac{4}{5} \right) \)이며, 이는 벡터 \( u \)의 방향으로 벡터 \( v \)의 "그림자"를 나타낸다.

 

 

 

 


벡터 \( v \)는 \( \text{proj}_u(v) \)와 \( \text{perp}_u(v) \)의 합으로 표현할 수 있다:
   \[
   (1, 2) = \left( \frac{8}{5}, \frac{4}{5} \right) + \left( \frac{-3}{5}, \frac{6}{5} \right)
   \]

이 두 벡터 \( \left( \frac{8}{5}, \frac{4}{5} \right) \)와 \( \left( \frac{-3}{5}, \frac{6}{5} \right) \)는 서로 직교함을 확인할 수 있다

 

 

 

벡터의 사영(projection)과 직교 성분(orthogonal component)을 이해

 벡터 \( u \)와 \( v \)를 정의하고, 벡터 \( v \)를 \( u \)에 사영한 값을 계산한 후, 직교 성분을 구한다.

1. 벡터  \( u \)와 \( v \)를 정의한다.
2. 사영 계산: \( v \)를 \( u \)에 사영한 값을 계산한다.
3. 직교 성분 계산: \( v \)에서 사영된 벡터를 빼서 직교 성분을 계산한다.
4. 벡터 시각화: 각 벡터를 화살표로 나타내어, 사영과 직교 성분을 시각적으로 표시한다.

 

 


결과 해석
- 파란색 화살표는 벡터 \( u \)를 나타낸다.
- 빨간색 화살표는 벡터 \( v \)를 나타낸다.
- 초록색 화살표는 벡터 \( v \)의 \( u \)에 대한 사영을 나타낸다.
- 주황색 화살표는 벡터 \( v \)와 사영된 벡터 간의 직교 성분을 나타낸다.

 

 


 사영된 벡터의 의미
1. 사영된 벡터: 초록색 화살표로 나타내는 \( \text{proj}_u(v) \)는 벡터 \( v \)가 벡터 \( u \)의 방향으로 "얼마나 영향을 받는지"를 나타낸다. 즉, \( v \)가 \( u \)와 얼마나 유사한지를 나타내는 척도이다.

2. 직교 성분: 주황색 화살표로 나타내는 \( \text{perp}_u(v) \)는 벡터 \( v \)가 벡터 \( u \)의 방향과는 무관하게 얼마나 다른지를 보여준다. 이는 \( v \)의 \( u \)에 대한 "나머지 부분"을 나타낸다.

사영을 통해 할 수 있는 일
 고차원 데이터에서 특정 변수에 대한 영향력을 분석할 때 유용한다. 주성분 분석(PCA)에서 데이터 포인트를 특정 축(주성분)으로 사영하여 데이터의 변동성을 이해하고, 주요 성분을 찾아낼 수 있다.
 물리학에서는 힘, 속도, 가속도 등의 벡터를 특정 방향으로 사영하여 물체의 운동을 분석하고 경사면에서의 물체의 운동을 분석할 때 중력 벡터를 경사면의 방향으로 사영하여 경사면을 따라 작용하는 힘을 계산할 수 있다.

import numpy as np
import matplotlib.pyplot as plt

# 벡터 정의
u = np.array([2, 1])
v = np.array([1, 2])

# 벡터 v를 u에 사영(projection of v onto u)
proj_u_v = (np.dot(v, u) / np.dot(u, u)) * u

# 직교 성분(perpendicular component)
perp_u_v = v - proj_u_v

# 결과 출력
print("프로젝션 (proj_u(v)): ", proj_u_v)
print("직교 성분 (perp_u(v)): ", perp_u_v)

# 그래프 설정
plt.figure(figsize=(8, 8))
plt.quiver(0, 0, u[0], u[1], angles='xy', scale_units='xy', scale=1, color='blue', label='u = (2, 1)')
plt.quiver(0, 0, v[0], v[1], angles='xy', scale_units='xy', scale=1, color='red', label='v = (1, 2)')
plt.quiver(0, 0, proj_u_v[0], proj_u_v[1], angles='xy', scale_units='xy', scale=1, color='green', label='proj_u(v)')
plt.quiver(proj_u_v[0], proj_u_v[1], perp_u_v[0], perp_u_v[1], angles='xy', scale_units='xy', scale=1, color='orange', label='perp_u(v)')

# 그래프 설정
plt.xlim(-1, 3)
plt.ylim(-1, 3)
plt.grid()
plt.axhline(0, color='black',linewidth=0.5, ls='--')
plt.axvline(0, color='black',linewidth=0.5, ls='--')
plt.gca().set_aspect('equal', adjustable='box')
plt.title('Vector Projection and Orthogonal Component')
plt.legend()
plt.show()

 

 
 

 

 

반응형