2020/07/26 15:13 更新
行列のテンソル積と行列方程式
6761 いいね ブックマーク
目次

前提知識

線形代数

前書き

行列には実はテンソル積が定義できる. テンソル積を用いると行列方程式が簡単に扱えるようになる. 行列方程式とは例えば以下のようなものである.

$$ X-AXB = C$$

ここで, $A, B, C$は適当な行列で$X$は行列の変数である. この方程式に解はあるのかと問われるとすぐには答えられないだろう. しかし, 行列のテンソル積にある程度慣れると簡単な思考プロセスの後, 答が導ける. 本記事はこのような行列方程式を簡単に扱えるようにするための方法の入門を提示するものである.

本題

以下では行列$X$の複素共役転置を$X^{\dag}$と表す.

テンソル積と諸定義

行列のテンソル積を次のように定義する.

定義 1. $X = (x_{ij})\in \mathbb{C}^{m \times n}, Y = (y_{ij}) \in \mathbb{C}^{p \times q}$とする. このとき, $X$と$Y$のテンソル積$X \otimes Y \in \mathbb{C}^{mp \times nq}$を

$$ X \otimes Y := \begin{pmatrix} x_{11}Y & x_{12}Y & \cdots & x_{1n}Y \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1}Y & x_{m2}Y & \cdots & x_{mn}Y \end{pmatrix}$$

と定める.

$$\gdef\C{\mathbb{C}} \gdef\vec{\mathrm{vec}}$$

今後のため, $m \times n$行列全体の空間$\C^{m\times n}$を$mn$次元ベクトル空間$\C^{mn}$に一対一対応させるような線形写像$\mathrm{vec}$を以下のように定義する.

$$\begin{aligned} X = \begin{pmatrix} x_1 & x_2 & \cdots & x_n \end{pmatrix} &= \begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{pmatrix} \in \C^{m \times n}, \\ \vec(X) &= \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix}. \end{aligned}$$

テンソル積の簡単な応用

テンソル積の簡単な応用を一つ述べる.

線形写像$\vec$を用いると, $\C^{m\times n}$と$\C^{mn}$を一対一対応させることができるが, ここで気になるのがこの対応により$\C^{m \times n}$上の線形作用素(または線形写像)は$\C^{mn}$上ではどのように表現されるのかということである.

少し厳密かつ一般化して述べるならば, $n\times p$行列から$m\times q$行列への線形作用素全体の空間$L(\C^{n\times p}, \C^{m\times q})$と$np$次元ベクトル空間から$mq$次元ベクトル空間への線形作用素全体の空間$L(\C^{np}, \C^{mq})$を考えたとき,$L(\C^{n\times p}, \C^{m\times q})$から$L(\C^{np}, \C^{mq})$へ写像$\vec: \C^{n\times p}\to \C^{np}$及び$\vec:\C^{m\times q}\to \C^{mq}$によって自然に誘導される写像(ここではこれを$\vec^{*}$と表記する)はどのようなものか調べたいということである.

簡単にわかることの一つとして$f \in L(\C^{n\times p}, \C^{m\times q})$に対して, $\vec^{*}(f) = \vec \circ f \circ \vec^{-1}$と書けるので, $\vec^{*}$は線形写像である.

また, 次のような定理が知られている. この定理は, テンソル積の応用として最も基本的なものである. なお, $L(\C^{n}, \C^{m})$は$\C^{m\times n}$と自然な対応があるので, 以降この対応により$L(\C^{n}, \C^{m})$と$\C^{m\times n}$を同一視する.

定理 2. $A, B, X, Y$をそれぞれ$m\times n, p\times q, n\times p, m\times q$行列とする.
(i) 線形作用素$f \in L(\C^{n\times p}, \C^{m\times q})$を対応$f:X \mapsto Y = AXB$によって定義する. このとき,

$$\begin{aligned} \vec^{*}(f) = B^{\top}\otimes A. \end{aligned} $$

(ii) $m=n, p=q$のとき, 線形作用素$g\in L(\C^{n\times p}, \C^{n\times p})$を対応$g: X \mapsto Y = AX + XB$によって定義する. このとき,

$$\begin{aligned} \vec^{*}(g) = I_p \otimes A + B^{\top} \otimes I_n. \end{aligned}$$

ただし, ここで$I_p, I_n$はそれぞれ$p$次, $n$次の単位行列を表す.

証明. (i) $X = \left(x_1, x_2, \cdots, x_p\right) , Y = \left(y_1, y_2, \cdots, y_q \right) , B = (b_{ij})$とする. このとき,

$$\begin{aligned} Y = AXB = (Ax_1, \cdots, Ax_p)(b_{ij}) = \left(\sum_{i=1}^p b_{i1}Ax_i, \cdots, \sum_{i=1}^p b_{iq}Ax_i\right). \end{aligned}$$

したがって,

$$\begin{aligned} \vec(Y) = \begin{pmatrix} y_1 \\ \vdots \\ y_q \end{pmatrix} = \begin{pmatrix} b_{11}A & \cdots & b_{p1}A \\ \vdots & \ddots & \vdots \\ b_{1q}A & \cdots & b_{pq}A \end{pmatrix} \begin{pmatrix} x_1 \\ \vdots \\ x_p \end{pmatrix} = \left(B^{\top} \otimes A\right) \begin{pmatrix} x_1 \\ \vdots \\ x_p \end{pmatrix} = \left(B^{\top} \otimes A\right) \vec(X). \end{aligned}$$

(ii) 線形作用素$g_1, g_2\in L(\C^{n\times p}, \C^{n\times p})$をそれぞれ対応$g_1: X \mapsto Y = AX, g_2: X \mapsto Y = XB$によって定義する. このとき, $\vec^{*}$の線形性から,

$$\begin{aligned} \vec^{*}(g) = \vec^{*}(g_1+g_2) = \vec^{*}(g_1)+\vec^{*}(g_2) = I_p \otimes A + B^{\top} \otimes I_n. \end{aligned}$$

行列のテンソル積の性質

次にテンソル積の基本的な性質をいくつか述べる. どれも定義どおりに根気よく計算すれば証明できるものである. 詳しくは参考文献を見ていただきたい.

定理 3. $A, \tilde{A}, B, \tilde{B}$をそれぞれ$m \times n, n\times l, p \times q, q \times r$行列とするとき,

$$\begin{aligned} \left(A\otimes B\right)\left(\tilde{A}\otimes \tilde{B}\right) = \left(A\tilde{A}\right)\otimes \left(B\tilde{B}\right). \end{aligned}$$

定理 4. $A,B$をそれぞれ$m\times n, p\times q$行列とするとき,

$$\begin{aligned} \left(A\otimes B\right)^{\dag} = A^{\dag} \otimes B^{\dag}, \quad \left(A\otimes B\right)^\top = A^\top \otimes B^\top. \end{aligned}$$

上の定理3,4から直接下記の系が得られる.

系 5. $A,B$をそれぞれ$m$次, $n$次の行列とする.
(i) $A,B$が上三角行列ならば$A \otimes B$も上三角行列である. また, $A,B$が下三角行列ならば$A \otimes B$も下三角行列である. したがって, 特に$A,B$が対角行列ならば$A \otimes B$も対角行列である.
(ii) $A,B$がHermite行列ならば$A \otimes B$もHermite行列である. $A,B$が対称行列ならば$A \otimes B$も対称行列である.
(iii) $A,B$がユニタリ行列ならば$A \otimes B$もユニタリ行列である.

次にテンソル積によって定義された行列の固有値がどのようなものになるかを調べる.

定理 6. $A,B$を$m$次, $n$次の正方行列とする. それらの固有値を$\lambda_1, ..., \lambda_m$及び$\mu_1, ..., \mu_n$としたとき$A \otimes B$の固有値は

$$\begin{aligned} \lambda_i\mu_j \quad (1\le i \le m, 1\le j \le n) \end{aligned}$$

となる.

証明. Schurの定理から, 適当なユニタリ行列$U, V$により,

$$\begin{aligned} U^{\dag}AU = \left( \begin{array}{ccc} \lambda_1 & & * \\ & \ddots & \\ 0 & & \lambda_m \end{array} \right) \eqqcolon S, \quad V^{\dag}BV = \left( \begin{array}{ccc} \mu_1 & & * \\ & \ddots & \\ 0 & & \mu_n \end{array} \right) \eqqcolon T \end{aligned}$$

とできる. このとき, 定理3, 4から,

$$\begin{aligned} A \otimes B &= \left(USU^{\dag}\right)\otimes\left(VTV^{\dag}\right) = \left(U \otimes V\right)\left(S \otimes T\right)\left(U^{\dag} \otimes V^{\dag}\right) = \left(U \otimes V\right)\left(S \otimes T\right)\left(U \otimes V\right)^{\dag}. \end{aligned}$$

$S \otimes T$は先程の系5から上三角行列であり, 更に対角要素を計算すると$\lambda_i\mu_j\hspace{0.1cm} (1\le i \le m, 1\le j \le n)$となる. また, 再び先程の系5から, $U \otimes V$はユニタリ行列であり, したがって, $A \otimes B$の固有値は$\lambda_i\mu_j\hspace{0.1cm} (1\le i \le m, 1\le j \le n)$となる.

行列方程式への応用

定理 7. $A, B, C, X$を$n$次行列とする. $\rho(A)\rho(B) < 1$ならば$X$を変数とする行列方程式

$$\begin{aligned} \tag{1} X - AXB = C \end{aligned}$$

をみたす$X$はただ一つ存在し,

$$\begin{aligned} X = \sum_{k=0}^\infty A^kCB^k \end{aligned}$$

と表される.

証明. $A,B$の固有値をそれぞれ$\lambda_1, ..., \lambda_n$及び$\mu_1, ..., \mu_n$とする. $\vec(X), \vec(C)$を考えることにより, 上の行列方程式(1)は以下のように書き直せる.

$$\begin{aligned} \left(I_n \otimes I_n - B^\top \otimes A\right)\vec(X) = \vec(C). \end{aligned}$$

$\left(I_n \otimes I_n - B^\top \otimes A\right)$の固有値は定理6を踏まえると$1-\lambda_i \mu_j \hspace{0.1cm} (1 \le i,j \le n)$となる. 仮定より, $|\lambda_i\mu_j| \le \rho(A)\rho(B) < 1$であるから$\left(I_n \otimes I_n - B^\top \otimes A\right)$は正則で, したがって行列方程式(1)は一意的な解を持つ. 次に後半を示す. まず,

$$\begin{aligned} \vec(X) = \left(I_n \otimes I_n - B^\top \otimes A\right)^{-1}\vec(C) = \left(I_n \otimes I_n + \sum_{k=1}^\infty \left(B^\top \otimes A\right)^k\right) \vec(C). \end{aligned}$$

と表される. 仮定から, $B^\top \otimes A$の固有値は$1$未満なので, この無限級数は収束する. ここで, $\left(B^\top \otimes A\right)^k = \left(B^k\right)^\top \otimes A^k$であり, また, $X= (x_1,...,x_n),\hspace{0.1cm} C = (c_1, ..., c_n),\hspace{0.1cm} B^k=\left(b_1^{(k)}, ..., b_n^{(k)}\right)=(b_{ij}^{(k)})$とおけば,

$$\begin{aligned} \left(B^k\right)^\top \otimes A^k \left( \begin{array}{c} c_1 \\ \vdots \\ c_n \\ \end{array} \right) = \left( \begin{array}{c} \sum_{j=1}^n b_{j1}^{(k)} A^k c_j \\ \vdots \\ \sum_{j=1}^n b_{jn}^{(k)} A^k c_j \\ \end{array} \right) = \left( \begin{array}{c} A^k\sum_{j=1}^n b_{j1}^{(k)}c_j \\ \vdots \\ A^k\sum_{j=1}^n b_{jn}^{(k)}c_j \\ \end{array} \right) = \left( \begin{array}{c} A^kCb_1^{(k)} \\ \vdots \\ A^kCb_n^{(k)}\\ \end{array} \right). \end{aligned}$$

したがって,

$$\begin{aligned} \left( \begin{array}{c} x_1 \\ \vdots \\ x_n \\ \end{array} \right) = \vec(X) &= \left(I_n \otimes I_n + \sum_{k=1}^\infty \left(B^{\top} \otimes A\right)^k\right)\vec(C) \\ &= \left(I_n \otimes I_n + \sum_{k=1}^\infty \left(B^\top \otimes A\right)^k\right) \left( \begin{array}{c} c_1 \\ \vdots \\ c_n \\ \end{array} \right) \\ &= \left( \begin{array}{c} c_1 \\ \vdots \\ c_n \\ \end{array} \right) + \left( \begin{array}{c} \sum_{k=1}^\infty A^kCb_1^{(k)} \\ \vdots \\ \sum_{k=1}^\infty A^kCb_n^{(k)} \\ \end{array} \right). \end{aligned}$$

よって,

$$\begin{aligned} X &= (x_1, ..., x_n) = (c_1, ..., c_n) + \left(\sum_{k=1}^\infty A^kCb_1^{(k)}, ..., \sum_{k=1}^\infty A^kCb_n^{(k)}\right) \\ &= \sum_{k=0}^\infty A^kCB^k \end{aligned}$$

となり, 結論を得る.

以上から, テンソル積を応用することにより行列方程式がものすごく扱いやすくなることがわかった.

応用面で見ると, 行列方程式はDirichlet問題を有限差分法によって解くときなどに現れる. 詳しくは参考文献を見てください.

参考文献

山本哲朗(2010). 『行列解析の基礎: Advanced 線形代数』. サイエンス社, 臨時別冊・数理科学 [SGCライブラリ ; 79], pp. 168-178.