線型代数学 における直積 (ちょくせき、英 : direct product [ 1] )あるいは外積 (がいせき、英 : outer product )は典型的には二つのベクトル のテンソル積 を言う。座標ベクトル (英語版 ) の外積をとった結果は行列 になる。外積の名称は内積 に対照するもので、内積はベクトルの対をスカラー にする。外積は、クロス積 の意味で使われることもあるため、どちらの意味で使われているか注意が必要である。
u
⊗
v
=
u
v
⊤
=
(
u
1
u
2
u
3
u
4
)
(
v
1
v
2
v
3
)
=
(
u
1
v
1
u
1
v
2
u
1
v
3
u
2
v
1
u
2
v
2
u
2
v
3
u
3
v
1
u
3
v
2
u
3
v
3
u
4
v
1
u
4
v
2
u
4
v
3
)
.
{\displaystyle {\boldsymbol {u}}\otimes {\boldsymbol {v}}={\boldsymbol {u}}{\boldsymbol {v}}^{\top }={\begin{pmatrix}u_{1}\\u_{2}\\u_{3}\\u_{4}\end{pmatrix}}{\begin{pmatrix}v_{1}&v_{2}&v_{3}\end{pmatrix}}={\begin{pmatrix}u_{1}v_{1}&u_{1}v_{2}&u_{1}v_{3}\\u_{2}v_{1}&u_{2}v_{2}&u_{2}v_{3}\\u_{3}v_{1}&u_{3}v_{2}&u_{3}v_{3}\\u_{4}v_{1}&u_{4}v_{2}&u_{4}v_{3}\end{pmatrix}}.}
ベクトル同士の外積は行列のクロネッカー積 の特別な場合である。
「テンソルの外積」を「テンソル積」の同義語として用いる文献もある。外積は R , APL , Mathematica などいくつかの計算機プログラム言語では高階函数 でもある。
ふたつのベクトル u , v の外積 u ⊗ v は、u を m × 1 列ベクトル 、v を n × 1 列ベクトル(従って v ⊤ は行ベクトル)としたときの行列の積 uv ⊤ に等価である[ 2] 。成分を用いて
u
=
(
u
1
,
u
2
,
…
,
u
m
)
,
v
=
(
v
1
,
v
2
,
…
,
v
n
)
{\displaystyle {\boldsymbol {u}}=(u_{1},u_{2},\dotsc ,u_{m}),\quad {\boldsymbol {v}}=(v_{1},v_{2},\dotsc ,v_{n})}
と書けば、外積 u ⊗ v は m × n 行列 A で各成分は u の各成分と v の各成分の積であたえられ[ 3] [ 4] 、
u
⊗
v
=
A
=
(
u
1
v
1
u
1
v
2
…
u
1
v
n
u
2
v
1
u
2
v
2
…
u
2
v
n
⋮
⋮
⋱
⋮
u
m
v
1
u
m
v
2
…
u
m
v
n
)
.
{\displaystyle {\boldsymbol {u}}\otimes {\boldsymbol {v}}={\boldsymbol {A}}={\begin{pmatrix}u_{1}v_{1}&u_{1}v_{2}&\dots &u_{1}v_{n}\\u_{2}v_{1}&u_{2}v_{2}&\dots &u_{2}v_{n}\\\vdots &\vdots &\ddots &\vdots \\u_{m}v_{1}&u_{m}v_{2}&\dots &u_{m}v_{n}\end{pmatrix}}.}
と表される。
複素 ベクトルの場合には、これを少し変えて、v の転置の代わりに共軛転置 v ∗ を用い、
u
⊗
v
=
u
v
∗
{\displaystyle {\boldsymbol {u}}\otimes {\boldsymbol {v}}={\boldsymbol {u}}{\boldsymbol {v}}^{*}}
とする。つまり得られる行列 A は u の各成分と v の各成分の複素共軛との積を成分とするものになる。
内積との対比
m = n のときは別な仕方で行列の積を施してスカラー(1 × 1 行列)が得られる。つまり、数ベクトル空間 の標準内積 (点乗積 )⟨u , v ⟩ = u ⊤ v である。内積は外積のトレース に等しい。
行列としての階数
u , v がともに非零ならば、外積 uv ⊤ の行列としての階数 は常に 1 である。このことを見るにはベクトル x に掛けて (uv ⊤ )x = u (v ⊤ x ) とすればよい。これはベクトル u のスカラー v ⊤ x -倍に他ならない。
("行列の階数" をテンソルの階数 ("order" / "degree") と混同してはならない)。
テンソルに対する外積はふつうテンソル積 と呼ばれる。テンソル a は階数 q で各次元 (i 1 , …, i q ) , b は階数 r で各次元が (j 1 , …, j r ) とすれば、これらの外積 c は階数 q + r で各次元 (k 1 , …, k q +r ) は先に i の次元を並べた後に j の次元を並べたものになる。これを ⊗ を用いた座標に依存しない表記で書き、その成分を添字表記で書けば
c
=
a
⊗
b
,
c
i
j
=
a
i
b
j
{\displaystyle {\boldsymbol {c}}={\boldsymbol {a}}\otimes {\boldsymbol {b}},\quad c_{ij}=a_{i}b_{j}}
となる[ 5] 。高階テンソルの場合も同様で、例えば
T
=
a
⊗
b
⊗
c
,
T
i
j
k
=
a
i
b
j
c
k
{\displaystyle {\boldsymbol {T}}={\boldsymbol {a}}\otimes {\boldsymbol {b}}\otimes {\boldsymbol {c}},\quad T_{ijk}=a_{i}b_{j}c_{k}}
などと書ける。
例えば A が三階で各次元が (3, 5, 7) , B が二階で各次元が (10, 100) ならば、それらの外積 C は五階で各次元は (3, 5, 7, 10, 100) となる。また例えば A の成分 a 2,2,4 = 11 および B の成分 b 8,88 = 13 に対応する外積 C の成分として c 2,2,4,8,88 = 11*13 = 143 が決まる。
外積の行列としての定義をテンソル積の言葉で理解するには:
ベクトル v は一階の M -次元テンソルとして解釈できる。同様に u が一階の N -次元テンソルである。これらのテンソル積の結果は二階の (M , N ) -テンソルになる。 q -階および r -階の二つのテンソルの内積 の結果は、階数が q + r − 2 または 0 の大きい方になる。二つの行列の内積は二つのベクトルの外積(テンソル積)と階数が一致する。テンソルの構造を変えることなくテンソルの先頭または末尾にひとつずついくらでも次元を追加することができる。これら追加された次元によってテンソルに対する演算の型も変わるため、得られる式の間の同値性は明示的に述べる必要がある。 ふたつの行列 V は次元 (d , e ) , U は次元 (e , f ) とするとこれらの内積は
∑
j
=
1
e
V
i
j
U
j
k
(
i
=
1
,
2
,
…
,
d
k
=
1
,
2
,
…
,
f
)
{\displaystyle \sum _{j=1}^{e}V_{ij}U_{jk}\quad \left({i=1,2,\ldots ,d \atop k=1,2,\ldots ,f}\right)}
である。e = 1 の場合にはこの和は自明である(一つの項しかない)。 次元 (m , n ) の行列 V と次元 (p , q ) の行列 U の外積は
C
s
t
=
V
i
j
U
h
k
,
(
s
=
1
,
2
,
…
,
m
p
−
1
,
m
p
t
=
1
,
2
,
…
,
n
q
−
1
,
n
q
)
{\displaystyle C_{st}=V_{ij}U_{hk},\quad \left({s=1,2,\ldots ,mp-1,mp \atop t=1,2,\ldots ,nq-1,nq}\right)}
ベクトル空間 V , W と W ∗ は W の双対空間 とする。
ベクトル x ∈ V および y ∗ ∈ W ∗ に対してテンソル積 y ∗ ⊗ x は
w
↦
y
∗
(
w
)
x
{\displaystyle w\mapsto y^{*}(w)x}
で与えられる写像 A : W → V に対応する。ここで y ∗ (w ) は線型汎函数 y ∗ (これは W の双対空間の元)をベクトル w ∈ W において評価した値である。これはスカラーであり、これを最終的に V の元である x に掛けたものがテンソル積の値である。
ベクトル空間 V , W が有限次元ならば、W から V への線型変換全体の成す空間 Hom(W , V ) は外積で生成される。実は行列の階数は、外積を和として表すために必要な項の最小数(行列のテンソル階数)に一致する。今の場合、Hom(W , V ) は W ∗ ⊗ V に線型同型である。
双対性内積との対比
W = V のとき、余ベクトル w ∗ ∈ V ∗ とベクトル v ∈ V とを写像 (w ∗ , v ) ↦ w ∗ (v ) を通して対にすることができる。これは V とその双対空間との間に定まる双対性を表す内積 である。
外積は物理量(例えば慣性テンソル など)の計算や、デジタル信号処理 やデジタル画像処理 における変形操作を行うのに有用である。また統計的解析 においても、二つの確率変数 の共分散 および自己共分散行列の計算に有用である。
^ Rowland, Todd and Weisstein, Eric W. "Tensor Direct Product" . mathworld.wolfram.com (英語).
^ Linear Algebra (4th Edition), S. Lipcshutz, M. Lipson, Schaum’s Outlines, McGraw Hill (USA), 2009, ISBN 978-0-07-154352-1
^ Weisstein, Eric W. "Kronecker Product" . mathworld.wolfram.com (英語).
^ Encyclopaedia of Physics (2nd Edition), R.G. Lerner, G.L. Trigg, VHC publishers, 1991, (Verlagsgesellschaft) 3-527-26954-1, (VHC Inc.) 0-89573-752-3
^ Mathematical methods for physics and engineering, K.F. Riley, M.P. Hobson, S.J. Bence, Cambridge University Press, 2010, ISBN 978-0-521-86153-3