두 벡터의 외적(텐서곱)
📂행렬대수두 벡터의 외적(텐서곱)
정의
두 열벡터 u=u1⋮un와 v=v1⋮vn의 외적outer product을 다음과 같이 정의한다.
u⊗v=uvT=u1u2⋮un[v1v2⋯vn]=u1v1u2v1⋮unv1u1v2u2v2⋮unv2⋯⋯⋱⋯u1vnu2vn⋮unvn
이때 T는 행렬의 전치이다.
설명
벡터와 행렬에 대한 여러가지 연산들이 있어 헷갈리지 않도록 주의해야 한다.
- 3차원 공간에서 정의된 cross product도 외적으로 번역되는 경우가 많아 주의가 필요하다. 영어 단어와 그 성질을 봤을 때 cross product는 가위곱 혹은 벡터곱으로 부르는 것이 적절해보인다.
- 크로네커곱(텐서곱)의 특수한 경우로 볼 수 있다. A⊗B에서 A가 열벡터, B가 행벡터인 경우이다.
- 행렬곱의 특수한 경우로 볼 수 있다. A×B에서 A가 열벡터, B가 행벡터인 경우이다.
두 벡터의 스칼라곱(점곱, 내적)은 계산 결과가 스칼라이고, 두 벡터의 벡터곱은 계산 결과가 벡터이다. 두 벡터의 외적은 계산 결과가 행렬(텐서)이 된다.
연산 | 스칼라곱(내적) scalar product inner product | 벡터곱(가위곱) vector product cross product | 텐서곱(외적) tensor product outer product |
---|
차원 | n차원 벡터 | 3차원 벡터 | n차원 벡터 |
표기 | u⋅v=uTv | u×v | u⊗v=uvT |
결과 | 스칼라 =1×1 행렬 | 3차원 벡터 | n×n 행렬 |
값 | ∑iuivi=u1v1+⋯+unvn | u2v3−u3v2u3v1−u1v3u1v2−u2v1 | u1v1u2v1⋮unv1u1v2u2v2⋮unv2⋯⋯⋱⋯u1vnu2vn⋮unvn |
일반화
사실 스칼라곱, 벡터곱과는 다르게 연산할 두 벡터의 크기가 달라도 잘 정의된다. 예를 들어 두 벡터 u=u1⋮un와 v=v1⋮vm의 외적은 다음과 같이 정의할 수 있다.
u⊗v=u1⋮un[v1⋯vm]T=u1v1u2v1⋮unv1u1v2u2v2⋮unv2⋯⋯⋱⋯u1vmu2vm⋮unvm
성질
u=[u1⋯un]T, v=[v1⋯vn]T, w=[w1⋯wn]T라고 하자. 다음이 성립한다.
(u⊗v)T=v⊗u(1)
(2)선형성:
(v+w)⊗u=v⊗u+w⊗u
u⊗(v+w)=u⊗v+u⊗w
α∈R을 상수라 하자.
(αv)⊗u=α(v⊗u)=(αv)⊗u
(u⊗v)w=(v⋅w)u(3)
wT(u⊗v)=(w⋅u)vT(4)
(5)결합법칙:
⊗를 크로네커곱으로 확장하면 다음이 성립한다.
(u⊗Kronv)⊗Kronw=u⊗Kron(v⊗Kronw)
증명
(1)
전치의 성질로 보인다.
(u⊗v)T=(uvT)T=vuT=v⊗u
(2)
행렬곱이 선형이므로 성립한다.
(v+w)⊗u=(v+w)uT=vuT+wuT=v⊗u+w⊗u
전치가 선형이므로 성립한다.
u⊗(v+w)=u(v+w)T=u(vT+wT)=uvT+uwT=u⊗v+u⊗w
(αv)⊗u=(αv)uT=α(vuT)=α(v⊗u)
■
(3)
(u⊗v)w=(uvT)w=u(vTw)=u(v⋅w)=(v⋅w)u
vTw는 스칼라라는 것에 유의하자.
■
(4)
wT(u⊗v)=wT(uvT)=(wTu)vT=(w⋅u)vT
■