요약

  • 내적은 두 벡터의 곱을 스칼라로 만들어 길이·거리·각도·직교성을 다루고,
  • 외적은 두 벡터에 수직인 벡터를 만들어 면적·체적 계산에 쓰인다.

1. 벡터의 내적

1.1. 내적의 정의

내적 (Inner Product; Dot Product; ) 벡터×벡터 → 스칼라 두 벡터가 얼마나 같은 방향인지 비교하는 방법

(1) 기하학적 관점의 내적

  • (크기⋅크기⋅각)
  • (정사영⋅길이)
  • cf. 정사영(orthogonal projection): 벡터를 수직으로 내린 발

(2) 대수적 관점의 내적

= \sum_{i=1}^n u_i v_i = u_1 v_1 + \cdots + u_n v_n$$ - 두 벡터 $\mathbf{u}, \mathbf{v}$의 내적은 각 성분끼리 곱한 후 모두 더한 **스칼라 값**이다. #### Python ```python import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # 1. np.dot 함수 사용 result1 = np.dot(a, b) print("np.dot 결과:", result1) # 1*4 + 2*5 + 3*6 = 32 # 2. @ 연산자 사용 (Python 3.5 이상 지원, 가장 파이썬다운 방식) result2 = a @ b print("@ 연산자 결과:", result2) # 32 ``` ### 1.2. 내적의 기본 성질 - 내적은 공학에서 일을 구할 때 사용된다. - 두 벡터의 내적의 결과는 **스칼라**이다. - 하나 이상의 벡터가 영벡터이거나, 두 벡터가 서로 **직교**(orthogonal)/**수직**이면 내적은 0이다. ### 1.3. 내적의 연산법칙 - **내적공간**(inner product space) - u⋅u >= 0 - 교환법칙 성립 - 분배법칙 성립 - cu⋅v = c(u⋅v) - u⋅0=0⋅u=0 - $u⋅u=||u||^2$ - 코시-슈바르츠 부등식 - $||u⋅v||<=||u||||v||$ ### 1.4. 두 벡터의 수직, 평행 조건 - 두 벡터가 수직이면 $\vec{a}⋅\vec{b}=0$이다. - 두 벡터가 평행하면 $\vec{b}=k\vec{a}$이다. - $R^n$ 벡터들의 집합 S가 - $\vec{v_i}⋅\vec{v_j}=0$을 만족하면 **직교 집합**(orthogonal set) - $\vec{v_i}⋅\vec{v_j}=1$도 만족하면 **정규 직교 집합**(orthonormal set) ### 1.5. 노름과 두 벡터의 거리 - **노름** - $|\mathbf{u}| = \sqrt{\mathbf{u}\cdot\mathbf{u}}$ - **두 벡터 사이의 거리** - $|\mathbf{u}-\mathbf{v}| = \sqrt{(u_1-v_1)^2 + (u_2-v_2)^2 + \cdots}$ ### 1.6. 두 벡터의 사잇각 $$\cosθ=\frac{\vec{a}⋅\vec{b}}{|\vec{a}||\vec{b}|}$$ - 이를 이용해 부호로 각도를 판별할 수 있다. - 두 벡터의 사잇각이 **예각**이면 $\vec{a}⋅\vec{b}>0$ (양수) - 두 벡터가 **직교**하면 0 - 두 벡터의 사잇각이 **둔각**이면 $\vec{a}⋅\vec{b}<0$ (음수) ### 1.7. 직교와 주요 성질 - 직교(orthogonal): u·v = 0이면 두 벡터는 수직 - 정규직교집합: 서로 직교하면서 각 벡터의 노름이 1인 집합 (vᵢ·vⱼ = 0, vᵢ·vᵢ = 1) - 직교집합(영벡터 제외)은 선형독립 - **코시-슈바르츠 부등식**: $|\mathbf{u}\cdot\mathbf{v}| \le |\mathbf{u}||\mathbf{v}|$ - **삼각 부등식**: $|\mathbf{u}+\mathbf{v}| \le |\mathbf{u}| + |\mathbf{v}|$ - 정사영(orthogonal projection): 벡터 v를 u 방향으로 수직으로 내린 발 ## 2. 벡터의 외적 ### 2.1. 외적의 뜻과 기호 > $\vec{a}$와 $\vec{b}$의 **외적** (Cross Product; $\mathbf{u} × \mathbf{v}$) > $R^3$의 두 벡터에 정의, 벡터×벡터 → **벡터** > 두 벡터가 만드는 평면과 수직인 방향을 찾는 방법 #### (1) 기하학적 관점의 외적 - 3차원에서 외적은 두 벡터에 수직이며 크기가 평행사변형 넓이인 벡터이다. $$\mathbf{u} × \mathbf{v} = (|\mathbf{u}| |\mathbf{v}| \sin\theta) \mathbf{e}$$ - 여기서 e는 u, v가 만드는 평면에 수직인 단위벡터(법선벡터)로, 오른손 법칙으로 방향이 정해진다. - 3차원 공간상의 두 벡터 $\vec{a},\ \vec{b}$가 이루는 평행사변형의 면적이 S일 때 $\vec{a}$와 $\vec{b}$에 수직임과 동시에 크기가 S인 벡터는 $\vec{a}×\vec{b}$이다. - $|\vec{a}×\vec{b}|=|\vec{a}||\vec{b}|\sinθ$ (=두 벡터가 이루는 **평행사변형**의 면적 S) #### (2) 대수적 관점의 외적 $$\mathbf{u} × \mathbf{v} = \begin{bmatrix} \hat{i}& \hat{j}& \hat{k}\\ u_1& u_2& u_3\\ v_1& v_2& v_3\end{bmatrix} = (u_2v_3-u_3v_2,\ u_3v_1-u_1v_3,\ u_1v_2-u_2v_1)$$ - 두 벡터 $\mathbf{u}, \mathbf{v}$의 외적은 행렬식의 연산과 *유사*하다. ### 2.2. 성질 - 반교환: u×v = −(v×u) - u×v는 u, v 모두와 직교 - u, v가 평행이면 u×v = 0 - 크기 ‖u×v‖는 u, v가 만드는 평행사변형의 넓이와 같음 ### 2.3. 외적의 계산 법칙 - 하나 이상의 벡터가 영벡터이거나, 두 벡터가 서로 평행이면 외적은 0이다. - 교대법칙 - 배분법칙 - 외적과 심볼행렬 ### 2.4. 응용 - 평행사변형 면적 = $‖u×v‖$ - 삼각형 면적 = $½‖u×v‖$ - 평행육면체 체적 = $|u·(v×w)|$ (스칼라 삼중적) - **스칼라 삼중적** - $(\vec{a}×\vec{b})⋅\vec{c}$를 스칼라 삼중적이라 하며, - 기하학적으로 세 벡터 $\vec{a},\ \vec{b},\ \vec{c}$가 이루는 **평행육면체**의 (부호를 갖는) 부피를 뜻한다. - 사면체의 부피는 평행육면체 부피의 1/6이다. - **스칼라 삼중적의 연산순서 변경** - **스칼라 삼중적의 계산**: 사루스의 법칙 또는 라플라스 전개를 써서 구한다. $$\vec{a}⋅(\vec{b}×\vec{c})=\begin{vmatrix} a_1& a_2& a_3\\ b_1& b_2& b_3\\ c_1& c_2& c_3\end{vmatrix}$$ ## 3. 평면의 방정식 ### 3.1. 좌표평면에 평행한 평면의 방정식 - yz평면에 평행한 평면의 방정식 x=a - xz평면에 평행한 평면의 방정식 y=b - xy평면에 평행한 평면의 방정식 z=c ### 3.2. 한 점과 법선벡터가 주어졌을 때 평면의 방정식 - $P_0(x_0,\ y_0,\ z_0)$을 지나고 벡터 $\vec{n}=(a,\ b,\ c)$에 수직인 평면의 방정식은 다음과 같다. - $a(x-x_0)+b(y-y_0)+c(z-z_0)=0$ ### 3.3. 세 점이 주어졌을 때 평면의 방정식 - 세 점으로 두 벡터를 얻는다. - 두 벡터를 외적하여 평면의 법선벡터를 얻는다. - 법선벡터와 주어진 세 점 중 하나로 평면의 방정식을 세운다. ## 4. MATLAB `dot(u, v)` 함수로 내적을 계산합니다. 예를 들어 u=[2;-5;-1], v=[3;2;-3]일 때 `dot(u,v)`는 −1을 반환합니다. ## 5. 활용 > 내적은 신경망 연산과 거리 기반 분류에, > 외적은 물리학(토크, 로렌츠 힘)과 기하 계산에 응용된다. - **신경망에서의 활용** - 신경망 뉴런은 여러 입력값 $X_i$와 연결강도 $W_i$를 곱한 뒤 모두 더하고, 합성함수 f를 적용해 출력을 계산한다. - 이 "곱하고 더하는" 연산이 바로 벡터 내적이며, 행렬 곱으로 효율적으로 처리할 수 있다. - **유클리드 거리** - 이 거리는 패턴 분류에 쓰이며, K-means, K-NN 같은 클러스터링 기법에 활용된다. $$d = \sqrt{\sum_{i=1}^{n}(q_i - p_i)^2}$$ ## Python 실습 - [[A3_NumPy 선형대수 실습#14-내적-dot-product|NumPy 내적: 원소별 곱과 행렬 곱의 차이]]