数学 における行列のクロネッカー積 (クロネッカーせき、英 : Kronecker product )⊗ は任意サイズの行列 の間に定義される二項演算 で、その結果は区分行列 として与えられる。行列単位からなる標準基底に関する線型空間のテンソル積 の行列として与えられる。クロネッカー積は通常の行列の積 とはまったく異なる概念であるので、混同すべきではない。名称はレオポルト・クロネッカー に因む。
A = (a ij ) を m × n 行列、B = (b kl ) を p × q 行列とすると、それらのクロネッカー積 A ⊗ B は
A ⊗ B = [ a 11 B ⋯ a 1 n B ⋮ ⋱ ⋮ a m 1 B ⋯ a m n B ] {\displaystyle A\otimes B={\begin{bmatrix}a_{11}B&\cdots &a_{1n}B\\\vdots &\ddots &\vdots \\a_{m1}B&\cdots &a_{mn}B\end{bmatrix}}} で与えられる mp × nq 区分行列である。もっとはっきり成分を示せば、 A ⊗ B は
[ a 11 b 11 a 11 b 12 ⋯ a 11 b 1 q ⋯ ⋯ a 1 n b 11 a 1 n b 12 ⋯ a 1 n b 1 q a 11 b 21 a 11 b 22 ⋯ a 11 b 2 q ⋯ ⋯ a 1 n b 21 a 1 n b 22 ⋯ a 1 n b 2 q ⋮ ⋮ ⋱ ⋮ ⋱ ⋱ ⋮ ⋮ ⋱ ⋮ a 11 b p 1 a 11 b p 2 ⋯ a 11 b p q ⋯ ⋯ a 1 n b p 1 a 1 n b p 2 ⋯ a 1 n b p q ⋮ ⋮ ⋱ ⋮ ⋱ ⋱ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋱ ⋮ ⋱ ⋱ ⋮ ⋮ ⋱ ⋮ a m 1 b 11 a m 1 b 12 ⋯ a m 1 b 1 q ⋯ ⋯ a m n b 11 a m n b 12 ⋯ a m n b 1 q a m 1 b 21 a m 1 b 22 ⋯ a m 1 b 2 q ⋯ ⋯ a m n b 21 a m n b 22 ⋯ a m n b 2 q ⋮ ⋮ ⋱ ⋮ ⋱ ⋱ ⋮ ⋮ ⋱ ⋮ a m 1 b p 1 a m 1 b p 2 ⋯ a m 1 b p q ⋯ ⋯ a m n b p 1 a m n b p 2 ⋯ a m n b p q ] {\displaystyle {\begin{bmatrix}a_{11}b_{11}&a_{11}b_{12}&\cdots &a_{11}b_{1q}&\cdots &\cdots &a_{1n}b_{11}&a_{1n}b_{12}&\cdots &a_{1n}b_{1q}\\a_{11}b_{21}&a_{11}b_{22}&\cdots &a_{11}b_{2q}&\cdots &\cdots &a_{1n}b_{21}&a_{1n}b_{22}&\cdots &a_{1n}b_{2q}\\\vdots &\vdots &\ddots &\vdots &\ddots &\ddots &\vdots &\vdots &\ddots &\vdots \\a_{11}b_{p1}&a_{11}b_{p2}&\cdots &a_{11}b_{pq}&\cdots &\cdots &a_{1n}b_{p1}&a_{1n}b_{p2}&\cdots &a_{1n}b_{pq}\\\vdots &\vdots &\ddots &\vdots &\ddots &\ddots &\vdots &\vdots &\ddots &\vdots \\\vdots &\vdots &\ddots &\vdots &\ddots &\ddots &\vdots &\vdots &\ddots &\vdots \\a_{m1}b_{11}&a_{m1}b_{12}&\cdots &a_{m1}b_{1q}&\cdots &\cdots &a_{mn}b_{11}&a_{mn}b_{12}&\cdots &a_{mn}b_{1q}\\a_{m1}b_{21}&a_{m1}b_{22}&\cdots &a_{m1}b_{2q}&\cdots &\cdots &a_{mn}b_{21}&a_{mn}b_{22}&\cdots &a_{mn}b_{2q}\\\vdots &\vdots &\ddots &\vdots &\ddots &\ddots &\vdots &\vdots &\ddots &\vdots \\a_{m1}b_{p1}&a_{m1}b_{p2}&\cdots &a_{m1}b_{pq}&\cdots &\cdots &a_{mn}b_{p1}&a_{mn}b_{p2}&\cdots &a_{mn}b_{pq}\end{bmatrix}}} と書ける。行列 A および B が線型写像 V 1 → W 1 および V 2 → W 2 をそれぞれ表現するならば A ⊗ B はそれらの写像のテンソル積 V 1 ⊗ V 2 → W 1 ⊗ W 2 を表現する。
例えば、
[ 1 2 3 4 ] ⊗ [ 0 5 6 7 ] = [ 1 ⋅ 0 1 ⋅ 5 2 ⋅ 0 2 ⋅ 5 1 ⋅ 6 1 ⋅ 7 2 ⋅ 6 2 ⋅ 7 3 ⋅ 0 3 ⋅ 5 4 ⋅ 0 4 ⋅ 5 3 ⋅ 6 3 ⋅ 7 4 ⋅ 6 4 ⋅ 7 ] = [ 0 5 0 10 6 7 12 14 0 15 0 20 18 21 24 28 ] {\displaystyle {\begin{bmatrix}1&2\\3&4\end{bmatrix}}\otimes {\begin{bmatrix}0&5\\6&7\end{bmatrix}}={\begin{bmatrix}1\cdot 0&1\cdot 5&2\cdot 0&2\cdot 5\\1\cdot 6&1\cdot 7&2\cdot 6&2\cdot 7\\3\cdot 0&3\cdot 5&4\cdot 0&4\cdot 5\\3\cdot 6&3\cdot 7&4\cdot 6&4\cdot 7\\\end{bmatrix}}={\begin{bmatrix}0&5&0&10\\6&7&12&14\\0&15&0&20\\18&21&24&28\end{bmatrix}}} のような計算が成り立つ。
双線型性と結合性 [ 編集 ] クロネッカー積はテンソル積の特別な場合であるから、双線型性 と結合性 を持つ。すなわち、A , B , C を適当なサイズの行列、k をスカラーとして
A ⊗ ( B + C ) = A ⊗ B + A ⊗ C , {\displaystyle A\otimes (B+C)=A\otimes B+A\otimes C,} ( A + B ) ⊗ C = A ⊗ C + B ⊗ C , {\displaystyle (A+B)\otimes C=A\otimes C+B\otimes C,} ( k A ) ⊗ B = A ⊗ ( k B ) = k ( A ⊗ B ) , {\displaystyle (kA)\otimes B=A\otimes (kB)=k(A\otimes B),} ( A ⊗ B ) ⊗ C = A ⊗ ( B ⊗ C ) {\displaystyle (A\otimes B)\otimes C=A\otimes (B\otimes C)} が成り立つ。
クロネッカー積は可換 でなく、一般には A ⊗ B と B ⊗ A は異なる行列となる。しかし A ⊗ B と B ⊗ A とは置換同値、すなわち置換行列 P , Q で
A ⊗ B = P ( B ⊗ A ) Q {\displaystyle A\otimes B=P(B\otimes A)Q} となるものが存在する。さらに A , B が正方行列の場合には、A ⊗ B と B ⊗ A とは置換相似 、すなわち置換同値であって P = Q ⊤ とすることができる。
混合積性質 [ 編集 ] 行列 A , B , C , D は行列の積 AC および BD が定義できるようなサイズの行列とすれば、
( A ⊗ B ) ( C ⊗ D ) = A C ⊗ B D {\displaystyle (A\otimes B)(C\otimes D)=AC\otimes BD} が成立する。これは行列の通常の積とクロネッカー積が混じっているので、混合積性質と呼ばれる。
上記の混合積性質から、A ⊗ B が正則行列 となるための必要十分条件は A と B がともに正則となることであって、実際に逆元を
( A ⊗ B ) − 1 = A − 1 ⊗ B − 1 {\displaystyle (A\otimes B)^{-1}=A^{-1}\otimes B^{-1}} と書くことができる。
転置行列 [ 編集 ] 行列の転置をとる操作はクロネッカー積に分配的である。すなわち、
( A ⊗ B ) ⊤ = A ⊤ ⊗ B ⊤ {\displaystyle (A\otimes B)^{\top }=A^{\top }\otimes B^{\top }} が成立する。
クロネッカー和と行列の指数 [ 編集 ] n -次正方行列 A , m -次正方行列 B および k -次単位行列 I k に対して、クロネッカー和 と呼ばれる演算 ⊕ を
A ⊕ B = A ⊗ I m + I n ⊗ B {\displaystyle A\oplus B=A\otimes I_{m}+I_{n}\otimes B} で定義する(これは行列の直和 とは異なる ものであることに注意)。この演算はリー環 のテンソル積に関係がある。
行列の指数函数 に関する公式
e A ⊕ B = e A ⊗ e B {\displaystyle e^{A\oplus B}=e^{A}\otimes e^{B}} はある種の連続時間マルコフ過程 の数値的評価において有用である [要出典 ] 。物理学においても、相互作用しない形の集まりを考えるとき、クロネッカー和が自然に現れる。H i をそのような系の i -番目のハミルトニアンとすれば、系の集まり全体のハミルトニアンは
H T o t = ⨁ i H i {\displaystyle H_{\mathrm {Tot} }=\bigoplus _{i}H^{i}} で与えられる。
スペクトル [ 編集 ] A , B はそれぞれ m , n -次正方行列とし、重複度までこめて A の固有値 が λ1 , …, λm , B の固有値が μ1 , …, μn であるとすると、A ⊗ B の固有値は
λ i μ j ( i = 1 , … , m ; j = 1 , … , n ) {\displaystyle \lambda _{i}\mu _{j}\quad (i=1,\ldots ,m;\;j=1,\ldots ,n)} で与えられる。従って、クロネッカー積の蹟 と行列式 に関して
tr ( A ⊗ B ) = tr A tr B , {\displaystyle \operatorname {tr} (A\otimes B)=\operatorname {tr} \,A\ \operatorname {tr} \,B,} det ( A ⊗ B ) = ( det A ) n ( det B ) m {\displaystyle \det(A\otimes B)=(\det A)^{n}(\det B)^{m}} が成立することが分かる。
特異値 [ 編集 ] 矩形行列 A , B に関してその特異値 を考えることができる。行列 A が r A 個の非零特異値
σ A , i ( i = 1 , … , r A ) {\displaystyle \sigma _{A,i}\quad (i=1,\ldots ,r_{A})} を持つものとし、同様に B の非零特異値を
σ B , i ( i = 1 , … , r B ) {\displaystyle \sigma _{B,i}\quad (i=1,\ldots ,r_{B})} で表せば、クロネッカー積 A ⊗ B は r A r B 個の特異値
σ A , i σ B , j ( i = 1 , … , r A ; j = 1 , … , r B ) {\displaystyle \sigma _{A,i}\sigma _{B,j}\qquad (i=1,\ldots ,r_{A};\;j=1,\ldots ,r_{B})} を持つ。行列の階数 はその非零特異値の個数に等しいから、
rank ( A ⊗ B ) = rank A rank B {\displaystyle \operatorname {rank} (A\otimes B)=\operatorname {rank} A\ \operatorname {rank} B} も分かる。
抽象テンソル積との関係 [ 編集 ] 行列のクロネッカー積は線型写像に対する抽象的なテンソル積に対応する。具体的に、ベクトル空間 V , W , X , Y がそれぞれ基底 {v 1 , …, v m }, {w 1 , …, w n }, {x 1 , …, x d }, {y 1 , …, y e } を持つものとすると、行列 A , B がそれぞれ線型写像 S : V → X , T : W → Y を所期の基底に関して表現するならば、クロネッカー積 A ⊗ B は写像のテンソル積 S ⊗ T : V ⊗ W → X ⊗ Y を、V ⊗ W の基底 {v 1 ⊗ w 1 , v 1 ⊗ w 2 , …, v 2 ⊗ w 1 , …, v m ⊗ w n } および X ⊗ Y の同様の基底に関して表現するもので、
A ⊗ B (v i ⊗ w j ) = (Av i )⊗(Bw j ) なる性質が満たされる[1] 。ただし、i , j は適当な範囲を動く整数とする。
V , W がリー環 で、S : V → V , T : W → W がリー環準同型 のとき、A と B のクロネッカー積は誘導されたリー環準同型 V ⊗ W → V ⊗ W を表現する。
グラフの積との関係 [ 編集 ] グラフ の隣接行列 のクロネッカー積はグラフのテンソル積 の隣接行列になる。また、グラフの隣接行列のクロネッカー和は直積グラフ の隣接行列である[2] 。
行列方程式 [ 編集 ] クロネッカー積はある種の行列方程式の簡便な表現を得るのに利用することができる。例えば、A , B , C が与えられていて、X を未知とするときの、方程式 AXB = C を考えると、この方程式は
( B ⊤ ⊗ A ) vec ( X ) = vec ( A X B ) = vec ( C ) {\displaystyle (B^{\top }\otimes A)\operatorname {vec} (X)=\operatorname {vec} (AXB)=\operatorname {vec} (C)} の形に書き下すことができる。ここで、vec(X ) は、行列 X の各列を縦に積んで一つの列ベクトル の形にした、X のベクトル化である。このときクロネッカー積の性質から、方程式 AXB = C がただ一つの解をもつための必要十分条件が A および B がともに非特異であること (Horn & Johnson 1991 , Lemma 4.3.1) が従う。
X を行順に列ベクトルとしたものを x とすれば AXB は (A ⊗ B ⊤ )x と書ける (Jain 1989 , 2.8 Block Matrices and Kronecker Products)。
多変量統計 [ 編集 ] 多変量統計におけるモーメントはクロネッカー積を用いて表すことができる。 x = (X1 , X2 , ... ) を多変量のベクトルとすれば、[3]
一次のモーメントは、 μ 1 = E [ x ] = ( E [ X 1 ] , E [ X 2 ] , . . . ) {\displaystyle \mu _{1}=E[x]=(E[X_{1}],E[X_{2}],...)} 二次のモーメントは、 μ 2 = E [ x ⊗ x t ] = ( E [ X 1 2 ] , E [ X 2 2 ] , . . . , E [ X 1 X 2 ] , E [ X 1 X 3 ] , . . . ) {\displaystyle \mu _{2}=E[x\otimes x^{t}]=(E[X_{1}^{2}],E[X_{2}^{2}],...,E[X_{1}X_{2}],E[X_{1}X_{3}],...)} 三変数での例
[ a b c ] ⊗ [ a b c ] = [ a ⋅ a a ⋅ b a ⋅ c b ⋅ a b ⋅ b b ⋅ c c ⋅ a c ⋅ b c ⋅ c ] {\displaystyle {\begin{bmatrix}a\\b\\c\end{bmatrix}}\otimes {\begin{bmatrix}a&b&c\end{bmatrix}}={\begin{bmatrix}a\cdot a&a\cdot b&a\cdot c\\b\cdot a&b\cdot b&b\cdot c\\c\cdot a&c\cdot b&c\cdot c\end{bmatrix}}} で共分散行列となる。
同様に、
三次モーメントは、 μ 3 = E [ x ⊗ x t ⊗ x t ] {\displaystyle \mu _{3}=E[x\otimes x^{t}\otimes x^{t}]} 2変数での例
[ a b ] ⊗ [ a b ] ⊗ [ a b ] = [ a ⋅ a a ⋅ b b ⋅ a b ⋅ b ] ⊗ [ a b ] = [ a a ⋅ a a a ⋅ b a b ⋅ a a b ⋅ b b a ⋅ a b a ⋅ b b b ⋅ a b b ⋅ b ] {\displaystyle {\begin{bmatrix}a\\b\end{bmatrix}}\otimes {\begin{bmatrix}a&b\end{bmatrix}}\otimes {\begin{bmatrix}a&b\end{bmatrix}}={\begin{bmatrix}a\cdot a&a\cdot b\\b\cdot a&b\cdot b\end{bmatrix}}\otimes {\begin{bmatrix}a&b\end{bmatrix}}={\begin{bmatrix}aa\cdot a&aa\cdot b&ab\cdot a&ab\cdot b\\ba\cdot a&ba\cdot b&bb\cdot a&bb\cdot b\end{bmatrix}}} 四次モーメントは、 μ 4 = E [ x ⊗ x t ⊗ x t ⊗ x t ] {\displaystyle \mu _{4}=E[x\otimes x^{t}\otimes x^{t}\otimes x^{t}]} 一般に k 次モーメントは、 μ k = E [ x ⊗ k ] {\displaystyle \mu _{k}=E[x^{\otimes k}]} と書かれる。
クロネッカー積はレオポルト・クロネッカー にその名を由来するが、クロネッカーが最初に定義をして用いたという証拠はわずかしかない。実際に過去には、ヨハン・ゲオルク・ツェーフス に因んでツェーフス行列 (Zehfuss matrix ) と呼ばれたこともある。
関連項目 [ 編集 ] ^ Pages 401–402 of ^ D. E. Knuth: "Pre-Fascicle 0a: Introduction to Combinatorial Algorithms" , zeroth printing (revision 2), to appear as part of D.E. Knuth: The Art of Computer Programming Vol. 4A answer to Exercise 96. ^ Tõnu Kollo, D. Von Rosen (Jan 1, 2005), Advanced Multivariate Statistics with Matrices , Mathematics and Its Applications, 579 (M. Hazewinkel ed.), Springer, pp. 172-173(489), ISBN 978-1-4020-3419-0 , http://link.springer.com/book/10.1007/1-4020-3419-9/page/1 参考文献 [ 編集 ] Horn, Roger A.; Johnson, Charles R. (1991), Topics in Matrix Analysis , Cambridge University Press, ISBN 0-521-46713-6 . Jain, Anil K. (1989), Fundamentals of Digital Image Processing , Prentice Hall, ISBN 0-13-336165-9 . Steeb, Willi-Hans (1997), Matrix Calculus and Kronecker Product with Applications and C++ Programs , World Scientific Publishing, ISBN 9810232411 Steeb, Willi-Hans (2006), Problems and Solutions in Introductory and Advanced Matrix Calculus , World Scientific Publishing, ISBN 9812569162 外部リンク [ 編集 ]