直積 (ベクトル)





線型代数学における直積(ちょくせき、英: direct product[1])あるいは外積(がいせき、英: outer product)は典型的には二つのベクトルのテンソル積を言う。座標ベクトル(英語版)の外積をとった結果は行列になる。外積の名称は内積に対照するもので、内積はベクトルの対をスカラーにする。外積は、クロス積の意味で使われることもあるため、どちらの意味で使われているか注意が必要である。


u⊗v=uv⊤=(u1u2u3u4)(v1v2v3)=(u1v1u1v2u1v3u2v1u2v2u2v3u3v1u3v2u3v3u4v1u4v2u4v3).{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}}.}{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 などいくつかの計算機プログラム言語では高階函数でもある。




目次






  • 1 定義


    • 1.1 行列表現


    • 1.2 テンソルの外積


    • 1.3 抽象的な定義




  • 2 応用


  • 3 関連項目


    • 3.1 乗法


    • 3.2 双対性




  • 4 出典





定義



行列表現



ふたつのベクトル u, v の外積 uv は、um × 1 列ベクトル、vn × 1 列ベクトル(従って v は行ベクトル)としたときの行列の積 uv に等価である[2]。成分を用いて


u=(u1,u2,…,um),v=(v1,v2,…,vn){displaystyle {boldsymbol {u}}=(u_{1},u_{2},dotsc ,u_{m}),quad {boldsymbol {v}}=(v_{1},v_{2},dotsc ,v_{n})}{displaystyle {boldsymbol {u}}=(u_{1},u_{2},dotsc ,u_{m}),quad {boldsymbol {v}}=(v_{1},v_{2},dotsc ,v_{n})}

と書けば、外積 uvm × n 行列 A で各成分は u の各成分と v の各成分の積であたえられ[3][4]


u⊗v=A=(u1v1u1v2…u1vnu2v1u2v2…u2vn⋮umv1umv2…umvn).{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}}.}{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=uv∗{displaystyle {boldsymbol {u}}otimes {boldsymbol {v}}={boldsymbol {u}}{boldsymbol {v}}^{*}}{displaystyle {boldsymbol {u}}otimes {boldsymbol {v}}={boldsymbol {u}}{boldsymbol {v}}^{*}}

とする。つまり得られる行列 Au の各成分と v の各成分の複素共軛との積を成分とするものになる。



内積との対比


m = n のときは別な仕方で行列の積を施してスカラー(1 × 1 行列)が得られる。つまり、数ベクトル空間の標準内積(点乗積)u, v〉 = uv である。内積は外積のトレースに等しい。

行列としての階数


u, v がともに非零ならば、外積 uv の行列としての階数は常に 1 である。このことを見るにはベクトル x に掛けて (uv)x = u(vx) とすればよい。これはベクトル u のスカラー vx-倍に他ならない。

("行列の階数" をテンソルの階数 ("order" / "degree") と混同してはならない)。



テンソルの外積


テンソルに対する外積はふつうテンソル積と呼ばれる。テンソル a は階数 q で各次元 (i1, …, iq), b は階数 r で各次元が (j1, …, jr) とすれば、これらの外積 c は階数 q + r で各次元 (k1, …, kq+r) は先に i の次元を並べた後に j の次元を並べたものになる。これを を用いた座標に依存しない表記で書き、その成分を添字表記で書けば


c=a⊗b,cij=aibj{displaystyle {boldsymbol {c}}={boldsymbol {a}}otimes {boldsymbol {b}},quad c_{ij}=a_{i}b_{j}}{displaystyle {boldsymbol {c}}={boldsymbol {a}}otimes {boldsymbol {b}},quad c_{ij}=a_{i}b_{j}}

となる[5]。高階テンソルの場合も同様で、例えば


T=a⊗b⊗c,Tijk=aibjck{displaystyle {boldsymbol {T}}={boldsymbol {a}}otimes {boldsymbol {b}}otimes {boldsymbol {c}},quad T_{ijk}=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 の成分 a2,2,4 = 11 および B の成分 b8,88 = 13 に対応する外積 C の成分として c2,2,4,8,88 = 11*13 = 143 が決まる。


外積の行列としての定義をテンソル積の言葉で理解するには:



  1. ベクトル v は一階の M-次元テンソルとして解釈できる。同様に u が一階の N-次元テンソルである。これらのテンソル積の結果は二階の (M, N)-テンソルになる。


  2. q-階および r-階の二つのテンソルの内積の結果は、階数が q + r − 2 または 0 の大きい方になる。二つの行列の内積は二つのベクトルの外積(テンソル積)と階数が一致する。

  3. テンソルの構造を変えることなくテンソルの先頭または末尾にひとつずついくらでも次元を追加することができる。降れら追加された次元によってテンソルに対する演算の型も変わるため、得られる式の間の同値性は明示的に述べる必要がある。

  4. ふたつの行列 V は次元 (d, e), U は次元 (e, f) とするとこれらの内積は
    j=1eVijUjk(i=1,2,…,dk=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)}sum_{j = 1}^e V_{ij} U_{jk}quad left({i = 1, 2, ldots, datop k = 1, 2, ldots, f}right)

    である。e = 1 の場合にはこの和は自明である(一つの項しかない)。

  5. 次元 (m, n)の行列 V と次元 (p, q) の行列 U の外積は
    Cst=VijUhk,(s=1,2,…,mp−1,mpt=1,2,…,nq−1,nq){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)} C_{st} = V_{ij} U_{hk}, quad left({s = 1, 2, ldots, mp - 1, mpatop t = 1, 2, ldots, nq - 1, nq}right)





抽象的な定義


ベクトル空間 V, WWW の双対空間とする。
ベクトル xV および yW に対してテンソル積 yx


w↦y∗(w)x{displaystyle wmapsto y^{*}(w)x}w mapsto y^*(w)x

で与えられる写像 A: W → V に対応する。ここで y(w) は線型汎函数 y(これは W の双対空間の元)をベクトル wW において評価した値である。これはスカラーであり、これを最終的に V の元である x に掛けたものがテンソル積の値である。


ベクトル空間 V, W が有限次元ならば、W から V への線型変換全体の成す空間 Hom(W, V) は外積で生成される。実は行列の階数は、外積を和として表すために必要な項の最小数(行列のテンソル階数)に一致する。今の場合、Hom(W, V)WV に線型同型である。



双対性内積との対比


W = V のとき、余ベクトル wV とベクトル vV とを写像 (w, v) ↦ w(v) を通して対にすることができる。これは V とその双対空間との間に定まる双対性を表す内積である。



応用


外積は物理量(例えば慣性テンソルなど)の計算や、デジタル信号処理やデジタル画像処理における変形操作を行うのに有用である。また統計的解析においても、二つの確率変数の共分散および自己共分散行列の計算に有用である。



関連項目



  • 線型代数学

  • ノルム

  • スカッター行列(英語版)

  • リッチ解析(英語版)



乗法



  • 交叉積

  • 外積

  • デカルト積



双対性



  • 複素共軛

  • 随伴行列

  • 転置行列

  • ベクトルの直積のブラケット記法(英語版)



出典





  1. ^ Rowland, Todd and Weisstein, Eric W.. "Tensor Direct Product". MathWorld(英語). CS1 maint: Multiple names: authors list


  2. ^ Linear Algebra (4th Edition), S. Lipcshutz, M. Lipson, Schaum’s Outlines, McGraw Hill (USA), 2009, ISBN 978-0-07-154352-1


  3. ^ Weisstein, Eric W. "Kronecker Product". MathWorld(英語). CS1 maint: Multiple names: authors list


  4. ^ 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


  5. ^ 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






Popular posts from this blog

Accessing regular linux commands in Huawei's Dopra Linux

Can't connect RFCOMM socket: Host is down

Kernel panic - not syncing: Fatal Exception in Interrupt