[선형대수] 09. 다양한 곱 연산
다양한 곱 연산. 외적, 벡터 곱, 삼중 곱
1. 외적
벡터의 외적(outer product) 또는 텐서 곱(tensor product)은 다음과 같은 연산을 의미한다.
u⊗v=uvT
Python으로 구현하면 아래와 같다. 하우스홀더 행렬 공식에서 이미 구현한 바 있다.
참고로 두 벡터의 내적은 두 벡터의 외적의 대각합과 같다.
⟨u,v⟩=u⋅v=tr(u⊗v)
2. 벡터 곱
벡터 곱(vector product)은 크로스 곱(cross product) 또는 가위 곱이라고 부르기도 하는데, 3차원 공간의 벡터들 간에서만 적용할 수 있는 연산으로, 다음과 같이 기저 벡터를 사용해 구할 수 있다.
i=100,j=010,k=001
u×v=iu1v1ju2v2ku3v3=u2v2u3v3i−u1v1u3v3j+u1v1u2v2k=(u2v3−u3v2)i−(u1v3−u3v1)j+(u1v2−u2v1)k
벡터 곱 u×v의 방향은 벡터 u와 v에 수직이고, 크기는 u와 v 두 벡터가 이루는 정사각형의 넓이, 즉 벡터 u와 벡터 v의 벡터 곱의 노름(norm)과 같다. 이를 수식으로 나타내면 다음과 같다.
∥u×v∥=∥u∥∥v∥∣sinθ∣
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
res = np.cross(a, b)
3. 삼중 곱
삼중 곱(triple product)은 벡터 3개를 특수하게 곱하는 방법으로 스칼라 삼중 곱과 벡터 삼중 곱 두 가지가 있다.
스칼라 삼중 곱
스칼라 삼중 곱은 아래와 같이 행렬식을 통해 계산한다.
u⋅(v×w)=u1v1w1u2v2w2u3v3w3
벡터 삼중 곱
벡터 삼중 곱은 아래와 같이 벡터 곱을 세번 하는 것을 의미한다.
u×(v×w)
Reference