更新:2025/03/09

クロネッカー積⊗の意味と計算例、性質について

1. クロネッカー積とは?

クロネッカー積(Kronecker product)とは、二つの行列から新しい行列を作る演算のことです。二つの行列 \( A \) と \( B \) のクロネッカー積は、単に要素ごとに積を取るのではなく、片方の行列の各要素をもう片方の行列全体に掛け合わせる という特殊な形をしています。

はるか
はるか
クロネッカー積。行列の各要素をもう一方の行列全体に掛ける。
ふゅか
ふゅか
そう!普通の行列の掛け算とは違って、ブロックごとに展開されるのよね!

1.1. クロネッカー積の定義

行列 \( A \)(サイズ \( m \times n \))と行列 \( B \)(サイズ \( p \times q \))に対して、クロネッカー積 \( A \otimes B \) は次のように定義されます。

\[ A \otimes B = \begin{bmatrix} a_{11}B & a_{12}B & \cdots & a_{1n}B \\ a_{21}B & a_{22}B & \cdots & a_{2n}B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}B & a_{m2}B & \cdots & a_{mn}B \end{bmatrix} \]

つまり、行列 \( A \) の各要素を、行列 \( B \) 全体に掛けたブロック行列になります。結果として得られる行列のサイズは \( (m \cdot p) \times (n \cdot q) \) になります。

1.2. 具体例

例えば、以下のような \( 2 \times 2 \) 行列 \( A \) と \( B \) があったとします。

\[ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 0 & 5 \\ 6 & 7 \end{bmatrix} \]

これらのクロネッカー積 \( A \otimes B \) を計算すると、

\[\begin{align*} A \otimes B &= \begin{bmatrix} 1 \cdot B & 2 \cdot B \\ 3 \cdot B & 4 \cdot B \end{bmatrix} \\ &=\begin{bmatrix} 0 & 5 & 0 & 10 \\ 6 & 7 & 12 & 14 \\ 0 & 15 & 0 & 20 \\ 18 & 21 & 24 & 28 \end{bmatrix} \end{align*}\]

となります。

2. クロネッカー積の性質

2.1. スカラー倍とクロネッカー積の分配性の証明

\[ (kA) \otimes B = A \otimes (kB) = k (A \otimes B) \]

ただし、\( k \) はスカラー、\( A \) は \( m \times n \) の行列、\( B \) は \( p \times q \) の行列。

クロネッカー積の定義に従い、行列 \( A \) と \( B \) のクロネッカー積は、

\[ A \otimes B = \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} \]

行列 \( A \) のすべての要素をスカラー \( k \) 倍すると、

\[ kA = \begin{bmatrix} k a_{11} & k a_{12} & \cdots & k a_{1n} \\ k a_{21} & k a_{22} & \cdots & k a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ k a_{m1} & k a_{m2} & \cdots & k a_{mn} \end{bmatrix} \]

この行列と \( B \) のクロネッカー積を求めると、

\[ (kA) \otimes B = \begin{bmatrix} (k a_{11}) B & (k a_{12}) B & \cdots & (k a_{1n}) B \\ (k a_{21}) B & (k a_{22}) B & \cdots & (k a_{2n}) B \\ \vdots & \vdots & \ddots & \vdots \\ (k a_{m1}) B & (k a_{m2}) B & \cdots & (k a_{mn}) B \end{bmatrix} \]

ここで、スカラー \( k \) は各ブロック行列に掛かるため、

\[ (kA) \otimes B = k \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} = k (A \otimes B) \]

したがって、

\[ (kA) \otimes B = k (A \otimes B) \]

が成り立つ。

同様に、\( B \) のすべての要素をスカラー \( k \) 倍すると、

\[ kB = \begin{bmatrix} k b_{11} & k b_{12} & \cdots & k b_{1q} \\ k b_{21} & k b_{22} & \cdots & k b_{2q} \\ \vdots & \vdots & \ddots & \vdots \\ k b_{p1} & k b_{p2} & \cdots & k b_{pq} \end{bmatrix} \]

この行列と \( A \) のクロネッカー積を求めると、

\[ A \otimes (kB) = \begin{bmatrix} a_{11} (kB) & a_{12} (kB) & \cdots & a_{1n} (kB) \\ a_{21} (kB) & a_{22} (kB) & \cdots & a_{2n} (kB) \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} (kB) & a_{m2} (kB) & \cdots & a_{mn} (kB) \end{bmatrix} \]

ここでもスカラー \( k \) は各ブロック行列に掛かるため、

\[ A \otimes (kB) = k \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} = k (A \otimes B) \]

したがって、

\[ A \otimes (kB) = k (A \otimes B) \]

が成り立つ。

\[ (kA) \otimes B = A \otimes (kB) = k (A \otimes B) \]

が成立することが証明された。

2.2. 結合法則

\[ (A \otimes B) \otimes C = A \otimes (B \otimes C) \] ここで、\( A \) は \( m \times n \) 行列、\( B \) は \( p \times q \) 行列、\( C \) は \( r \times s \) 行列とする。

まず、\( A \otimes B \) を計算すると、

\[A \otimes B =\begin{bmatrix}a_{11} B & a_{12} B & \cdots & a_{1n} B \\a_{21} B & a_{22} B & \cdots & a_{2n} B \\\vdots & \vdots & \ddots & \vdots \\a_{m1} B & a_{m2} B & \cdots & a_{mn} B\end{bmatrix}\]

これに対して、さらにクロネッカー積を取ると、

\[(A \otimes B) \otimes C =\begin{bmatrix}(a_{11} B) \otimes C & (a_{12} B) \otimes C & \cdots & (a_{1n} B) \otimes C \\(a_{21} B) \otimes C & (a_{22} B) \otimes C & \cdots & (a_{2n} B) \otimes C \\\vdots & \vdots & \ddots & \vdots \\(a_{m1} B) \otimes C & (a_{m2} B) \otimes C & \cdots & (a_{mn} B) \otimes C\end{bmatrix}\]

クロネッカー積の性質より、

\[(a_{ij} B) \otimes C = a_{ij} (B \otimes C)\]

が成り立つので、

\[(A \otimes B) \otimes C =\begin{bmatrix}a_{11} (B \otimes C) & a_{12} (B \otimes C) & \cdots & a_{1n} (B \otimes C) \\a_{21} (B \otimes C) & a_{22} (B \otimes C) & \cdots & a_{2n} (B \otimes C) \\\vdots & \vdots & \ddots & \vdots \\a_{m1} (B \otimes C) & a_{m2} (B \otimes C) & \cdots & a_{mn} (B \otimes C)\end{bmatrix}\]

これは、\( A \) の各要素に \( B \otimes C \) を掛ける形になっており、まさに

\[A \otimes (B \otimes C)\]

の定義と一致する。

したがって、

\[(A \otimes B) \otimes C = A \otimes (B \otimes C)\]

が成り立つ。

2.3.  分配法則

\[ (A + B) \otimes C = A \otimes C + B \otimes C \]

\[ A \otimes (B + C) = A \otimes B + A \otimes C \]

2.3.1.  $(A + B) \otimes C$の証明

\[ (A + B) \otimes C = A \otimes C + B \otimes C \]

ここで、\( A \) と \( B \) は同じサイズの行列(\( m \times n \))、\( C \) は \( p \times q \) 行列とする。

クロネッカー積の定義を使うと、

\[ (A + B) \otimes C = \begin{bmatrix} (a_{11} + b_{11})C & (a_{12} + b_{12})C & \cdots & (a_{1n} + b_{1n})C \\ (a_{21} + b_{21})C & (a_{22} + b_{22})C & \cdots & (a_{2n} + b_{2n})C \\ \vdots & \vdots & \ddots & \vdots \\ (a_{m1} + b_{m1})C & (a_{m2} + b_{m2})C & \cdots & (a_{mn} + b_{mn})C \end{bmatrix} \]

分配法則を適用すると、

\[ \begin{bmatrix} a_{11}C + b_{11}C & a_{12}C + b_{12}C & \cdots & a_{1n}C + b_{1n}C \\ a_{21}C + b_{21}C & a_{22}C + b_{22}C & \cdots & a_{2n}C + b_{2n}C \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}C + b_{m1}C & a_{m2}C + b_{m2}C & \cdots & a_{mn}C + b_{mn}C \end{bmatrix} \]

これは \( A \otimes C + B \otimes C \) の定義と一致するため、

\[ (A + B) \otimes C = A \otimes C + B \otimes C \]

が成り立つ。

2.3.2. $A \otimes (B + C)$ の証明

\[ A \otimes (B + C) = A \otimes B + A \otimes C \] ただし、\( A \) は \( m \times n \) の行列、\( B \) と \( C \) はともに \( p \times q \) の行列であるとする。

[1]左辺をまず計算します。\( B \) と \( C \) の和を考えると、

\[ B + C = \begin{bmatrix} b_{11} + c_{11} & b_{12} + c_{12} & \cdots & b_{1q} + c_{1q} \\ b_{21} + c_{21} & b_{22} + c_{22} & \cdots & b_{2q} + c_{2q} \\ \vdots & \vdots & \ddots & \vdots \\ b_{p1} + c_{p1} & b_{p2} + c_{p2} & \cdots & b_{pq} + c_{pq} \end{bmatrix} \]

クロネッカー積を適用すると、

\[ A \otimes (B + C) = \begin{bmatrix} a_{11} (B + C) & a_{12} (B + C) & \cdots & a_{1n} (B + C) \\ a_{21} (B + C) & a_{22} (B + C) & \cdots & a_{2n} (B + C) \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} (B + C) & a_{m2} (B + C) & \cdots & a_{mn} (B + C) \end{bmatrix} \]

分配法則を適用すると、

\[ A \otimes (B + C) = \begin{bmatrix} a_{11} B + a_{11} C & a_{12} B + a_{12} C & \cdots & a_{1n} B + a_{1n} C \\ a_{21} B + a_{21} C & a_{22} B + a_{22} C & \cdots & a_{2n} B + a_{2n} C \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B + a_{m1} C & a_{m2} B + a_{m2} C & \cdots & a_{mn} B + a_{mn} C \end{bmatrix} \]

[2]次に、右辺の計算をします。

\[ A \otimes B + A \otimes C = \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} + \begin{bmatrix} a_{11} C & a_{12} C & \cdots & a_{1n} C \\ a_{21} C & a_{22} C & \cdots & a_{2n} C \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} C & a_{m2} C & \cdots & a_{mn} C \end{bmatrix} \]

成分ごとに加えると、

\[ A \otimes B + A \otimes C = \begin{bmatrix} a_{11} B + a_{11} C & a_{12} B + a_{12} C & \cdots & a_{1n} B + a_{1n} C \\ a_{21} B + a_{21} C & a_{22} B + a_{22} C & \cdots & a_{2n} B + a_{2n} C \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B + a_{m1} C & a_{m2} B + a_{m2} C & \cdots & a_{mn} B + a_{mn} C \end{bmatrix} \]

これは、左辺 \( A \otimes (B + C) \) と一致する。

2.4. 単位行列とのクロネッカー積の証明

\[ I_m \otimes I_n = I_{mn} \]

ここで、\( I_m \) は \( m \times m \) の単位行列、\( I_n \) は \( n \times n \) の単位行列。

単位行列 \( I_m \) と \( I_n \) のクロネッカー積を考えると、

\[ I_m \otimes I_n = \begin{bmatrix} 1 \cdot I_n & 0 \cdot I_n & \cdots & 0 \cdot I_n \\ 0 \cdot I_n & 1 \cdot I_n & \cdots & 0 \cdot I_n \\ \vdots & \vdots & \ddots & \vdots \\ 0 \cdot I_n & 0 \cdot I_n & \cdots & 1 \cdot I_n \end{bmatrix} \]

これは、\( mn \times mn \) の単位行列 \( I_{mn} \) に一致するため、

\[ I_m \otimes I_n = I_{mn} \]

が成り立つ。

2.5. 混合積

混合積とは、行列のクロネッカー積と通常の行列積の間に成り立つ次の等式です:

\[ (A \otimes B)(C \otimes D) = (AC) \otimes (BD) \]

ただし、行列 \( A, B, C, D \) は以下のようなサイズの行列とします:

  • \( A \) は \( m \times n \) 行列
  • \( B \) は \( p \times q \) 行列
  • \( C \) は \( n \times r \) 行列
  • \( D \) は \( q \times s \) 行列

このとき、行列積 \( AC \) は \( m \times r \) の行列となり、\( BD \) は \( p \times s \) の行列になります。そのクロネッカー積 \( (AC) \otimes (BD) \) のサイズは \( (m \cdot p) \times (r \cdot s) \) となります。


まず、クロネッカー積の定義を思い出します。

\[ A \otimes B = \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} \]

同様に、\( C \otimes D \) も次のように書けます:

\[ C \otimes D = \begin{bmatrix} c_{11} D & c_{12} D & \cdots & c_{1r} D \\ c_{21} D & c_{22} D & \cdots & c_{2r} D \\ \vdots & \vdots & \ddots & \vdots \\ c_{n1} D & c_{n2} D & \cdots & c_{nr} D \end{bmatrix} \]

行列積の定義に従い、各ブロックの積を求めます。

\[ (A \otimes B)(C \otimes D) = \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} \begin{bmatrix} c_{11} D & c_{12} D & \cdots & c_{1r} D \\ c_{21} D & c_{22} D & \cdots & c_{2r} D \\ \vdots & \vdots & \ddots & \vdots \\ c_{n1} D & c_{n2} D & \cdots & c_{nr} D \end{bmatrix} \]

この積は、ブロック行列の積の計算ルールに従い、

\[ \sum_{k=1}^{n} a_{ik} B c_{kj} D \]

となります。

各ブロック要素に着目すると、次のように変形できます。

\[ (A \otimes B)(C \otimes D) = \begin{bmatrix} \sum_{k} a_{1k} B c_{k1} D & \sum_{k} a_{1k} B c_{k2} D & \cdots & \sum_{k} a_{1k} B c_{kr} D \\ \sum_{k} a_{2k} B c_{k1} D & \sum_{k} a_{2k} B c_{k2} D & \cdots & \sum_{k} a_{2k} B c_{kr} D \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{k} a_{mk} B c_{k1} D & \sum_{k} a_{mk} B c_{k2} D & \cdots & \sum_{k} a_{mk} B c_{kr} D \end{bmatrix} \]

この形は、通常の行列積 \( AC \) の要素 \( (AC)_{ij} = \sum_{k} a_{ik} c_{kj} \) を用いると、

\[ (A \otimes B)(C \otimes D) = \begin{bmatrix} (AC)_{11} B D & (AC)_{12} B D & \cdots & (AC)_{1r} B D \\ (AC)_{21} B D & (AC)_{22} B D & \cdots & (AC)_{2r} B D \\ \vdots & \vdots & \ddots & \vdots \\ (AC)_{m1} B D & (AC)_{m2} B D & \cdots & (AC)_{mr} B D \end{bmatrix} \]

これは、\( AC \) の各要素を \( BD \) に掛けたものと一致するため、

\[ (A \otimes B)(C \otimes D) = (AC) \otimes (BD) \]

が成立することが証明されました。

2.6. 転置とクロネッカー積

\[ (A \otimes B)^\top = A^\top \otimes B^\top \]

ここで、\( A \) は \( m \times n \) の行列、\( B \) は \( p \times q \) の行列とする。

クロネッカー積の定義に従うと、

\[ A \otimes B = \begin{bmatrix} a_{11} B & a_{12} B & \cdots & a_{1n} B \\ a_{21} B & a_{22} B & \cdots & a_{2n} B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} B & a_{m2} B & \cdots & a_{mn} B \end{bmatrix} \]

ここで、転置を取ると行と列が入れ替わるので、

\[ (A \otimes B)^\top = \begin{bmatrix} (a_{11} B)^\top & (a_{21} B)^\top & \cdots & (a_{m1} B)^\top \\ (a_{12} B)^\top & (a_{22} B)^\top & \cdots & (a_{m2} B)^\top \\ \vdots & \vdots & \ddots & \vdots \\ (a_{1n} B)^\top & (a_{2n} B)^\top & \cdots & (a_{mn} B)^\top \end{bmatrix} \]

スカラー \( a_{ij} \) に対して転置は分配可能なので、

\[ (A \otimes B)^\top = \begin{bmatrix} a_{11} B^\top & a_{21} B^\top & \cdots & a_{m1} B^\top \\ a_{12} B^\top & a_{22} B^\top & \cdots & a_{m2} B^\top \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} B^\top & a_{2n} B^\top & \cdots & a_{mn} B^\top \end{bmatrix} \]

次に、\( A^\top \) を求めると、

\[ A^\top = \begin{bmatrix} a_{11} & a_{21} & \cdots & a_{m1} \\ a_{12} & a_{22} & \cdots & a_{m2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \cdots & a_{mn} \end{bmatrix} \]

これと \( B^\top \) のクロネッカー積を求めると、

\[ A^\top \otimes B^\top = \begin{bmatrix} a_{11} B^\top & a_{21} B^\top & \cdots & a_{m1} B^\top \\ a_{12} B^\top & a_{22} B^\top & \cdots & a_{m2} B^\top \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} B^\top & a_{2n} B^\top & \cdots & a_{mn} B^\top \end{bmatrix} \]

これは \( (A \otimes B)^\top \) の計算結果と一致するため、

\[ (A \otimes B)^\top = A^\top \otimes B^\top \]

が成り立つ。

2.7. 逆行列とクロネッカー積

クロネッカー積において、\( A \otimes B \) 、\( A \) と \( B \) が正則行列であるとき、その逆行列は

\[ (A \otimes B)^{-1} = A^{-1} \otimes B^{-1} \]

と表せる。

\( A \) を \( m \times m \) の正則行列、\( B \) を \( n \times n \) の正則行列とする。\( A \) と \( B \) がともに正則であれば、それぞれ逆行列 \( A^{-1} \) と \( B^{-1} \) が存在する。

まず、混合積を利用する。これは、適切なサイズの行列 \( A, B, C, D \) に対して、

\[ (A \otimes B)(C \otimes D) = (AC) \otimes (BD) \]

が成り立つことを示す。この性質を用いて、\( A^{-1} \) と \( B^{-1} \) をクロネッカー積の積として考える。

\( A \otimes B \) の逆行列として、\( A^{-1} \otimes B^{-1} \) を考えると、

\[ (A \otimes B)(A^{-1} \otimes B^{-1}) \]

を計算する。この混合積性質を用いると、

\[ (A \otimes B)(A^{-1} \otimes B^{-1}) = (A A^{-1}) \otimes (B B^{-1}) \]

となる。ここで、\( A A^{-1} = I_m \)(\( m \times m \) の単位行列)および \( B B^{-1} = I_n \)(\( n \times n \) の単位行列)なので、

\[ I_m \otimes I_n = I_{mn} \]

が成り立つ。したがって、

\[ (A \otimes B)(A^{-1} \otimes B^{-1}) = I_{mn} \]

となる。

PR