このページでは、クロネッカー積(Kronecker product)の定義、簡単な性質と証明、具体例を紹介します。
クロネッカー積の定義
2つの行列 $A$、$B$ に対して、クロネッカー積 $A\otimes B$ は以下のように定義されます。
$A\otimes B=\begin{pmatrix}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{pmatrix}$
ただし、$A$ は $m\times n$ 行列とし、$A$ の $ij$ 成分を $a_{ij}$ と表記しました。
クロネッカー積の例
例えば、$A=\begin{pmatrix}1&2\\3&4\end{pmatrix}$、$B=\begin{pmatrix}5&6\end{pmatrix}$ のとき、
$A\otimes B=\begin{pmatrix}5&6&10&12\\15&18&20&24\end{pmatrix}$
となります。
また、$B\otimes A=\begin{pmatrix}5&10&6&12\\15&20&18&24\end{pmatrix}$
となります。このように、一般には、$A\otimes B\neq B\otimes A$ となることが分かります(クロネッカー積は、普通の行列積と同じで非可換)。
クロネッカー積のサイズ
$A$ を $m_1\times n_1$ 行列、$B$ を $m_2\times n_2$ 行列とすると、そのクロネッカー積 $A\otimes B$ のサイズは $m_1m_2\times n_1n_2$ になります。かなり大きな行列です。
また、普通の行列の積と違って、$A$ と $B$ のサイズがどんなものであっても、クロネッカー積は定義されます。
参考:行列の積の計算方法と例題
混合積の性質
$(A\otimes B)(C\otimes D)=AC\otimes BD$
が成立します。
普通の行列積とクロネッカー積が混合しているような面白い等式です。
一般の場合も全く同じなので、各行列のサイズが $2\times 2$ の場合について証明します。
まず、左辺の各因子
$A\otimes B=\begin{pmatrix}a_{11}B&a_{12}B\\a_{21}B&a_{22}B\end{pmatrix}$
$C\otimes D=\begin{pmatrix}c_{11}D&c_{12}D\\c_{21}D&c_{22}D\end{pmatrix}$
の積は、
$\begin{pmatrix}(a_{11}c_{11}+a_{12}c_{21})BD&(a_{11}c_{12}+a_{12}c_{22})BD\\(a_{21}c_{11}+a_{22}c_{21})BD&(a_{21}c_{12}+a_{22}c_{22})BD\end{pmatrix}$
となります。これは、$BD$ を「$AC$ の各成分倍して」並べたような行列なので、$AC\otimes BD$ です。
クロネッカー積の固有値、固有ベクトル
以下、$A$ と $B$ は正方行列とします。
$A$ の固有値・固有ベクトルのペアを $\lambda_i,\overrightarrow{x}_i\:(i=1,\dots,m)$
$B$ の固有値・固有ベクトルのペアを $\mu_j,\overrightarrow{y}_j\:(j=1,\dots,n)$
とします。
このとき、$A\otimes B$ の固有値・固有ベクトルのペアは $\lambda_i\mu_j,\overrightarrow{x_i}\otimes\overrightarrow{y}_j$
$(i=1,\dots,m\:\mathrm{and}\:j=1,\dots,n)$
となります。
$A\overrightarrow{x}_i=\lambda_i\overrightarrow{x}_i$
$B\overrightarrow{y}_j=\mu_j\overrightarrow{x}_j$
のとき、さきほど証明した混合積の性質を使うと、
$(A\otimes B)(\overrightarrow{x}_i\otimes \overrightarrow{y}_j)\\
=A\overrightarrow{x}_i\otimes B\overrightarrow{y}_j\\
=\lambda_i\overrightarrow{x}_i\otimes \mu_j\overrightarrow{y}_j\\
=\lambda_i\mu_j\overrightarrow{x}_i\otimes\overrightarrow{y}_j$
となります。
クロネッカー積のトレース、行列式
行列のトレースは固有値の和なので、
$\mathrm{tr}(A\otimes B)\\
=\displaystyle\sum_{i=1}^m\sum_{j=1}^n\lambda_i\mu_j\\
=\displaystyle\sum_{i=1}^m\lambda_i\displaystyle\sum_{j=1}^n\mu_j\\
=(\mathrm{tr}\:A)(\mathrm{tr}\:B)$
となります。
同様に、行列式は固有値の積なので、
$\det(A\otimes B)=(\det A)^m(\det B)^n$
となることも分かります。
次回は ベクトルの微分、ベクトルで微分 を解説します。