シルベスター方程式(Sylvester方程式)
$A$:$n \times n$行列
$B$:$m \times m$行列
$C$:$n \times m$行列
を与えた,
AX+XB = C
この方程式の一意解$X$:$n \times m$行列が存在する条件は
\lambda_i(A)+\lambda_j(B) \neq 0
リアプノフ方程式
シルベスター方程式に
B=A^*
を代入した
AX+XA^* = C
が,リアプノフ方程式です.
この方程式の一意解$X$:$n \times m$行列が存在する条件は
\lambda_i(A)+\bar{\lambda_j(A)} \neq 0
ちなみに,リアプノフ方程式はリカッチ方程式と等価です.リカッチ方程式では,ハミルトン行列が虚軸上に固有値を持たないという条件が,リアプノフ方程式での一意解の存在条件になります.
クロネッカー積
クロネッカー積$\otimes$を次のように定義します.
$A$:$m \times n$行列
$B$:$p \times q$行列
A \otimes B =
\left(
\begin{array}{ccc}
a_{11}B&a_{12}B& \cdots &a_{1n}B\\
a_{21}B&a_{22}B& \cdots &a_{2n}B\\
\vdots&\vdots&\vdots&\vdots\\
a_{m1}B&a_{m2}B&\cdots &a_{mn}B\\
\end{array}
\right)\\
https://mathwords.net/kuronekaseki
:こちらもご覧ください
例
A=
\left(
\begin{array}{ccc}
1&2\\
3&4\\
\end{array}
\right)\\
B=
\left(
\begin{array}{ccc}
1&5&8\\
3&15&21\\
\end{array}
\right)\\
とすると
A \otimes B =
\left(
\begin{array}{ccc}
1&5&8 & 2&10&16\\
3&15&21 & 6&30&42\\
3&15&24 & 4&20&32\\
9&45&63 & 12&60&82\\
\end{array}
\right)\\
クロネッカー和
次のように,クロネッカー和を定義します.
$A$:$n \times n$行列
$B$:$m \times m$行列
A\oplus B =(A \otimes I_m)+(I_n \otimes B)
例:
A=
\left(
\begin{array}{ccc}
1&2\\
3&4\\
\end{array}
\right)\\
B=
\left(
\begin{array}{ccc}
1&5&8\\
3&15&21\\
7&3&2\\
\end{array}
\right)\\
としたとき,
A\oplus B =
\left(
\begin{array}{ccc}
1&0&0&2&0&0\\
0&1&0&0&2&0\\
0&0&1&0&0&2\\
3&0&0&4&0&0\\
0&3&0&0&4&0\\
0&0&3&0&0&4\\
\end{array}
\right)\\
+
\left(
\begin{array}{ccc}
1&0&5&0&8&0\\
0&1&0&5&0&8\\
3&0&15&0&21&0\\
0&3&0&15&0&21\\
7&0&3&0&2&0\\
0&7&0&3&0&2\\
\end{array}
\right)\\
=
\left(
\begin{array}{ccc}
2&0&5&2&8&0\\
0&2&0&5&2&8\\
3&0&16&0&21&2\\
3&3&0&19&0&21\\
7&3&3&0&6&0\\
0&7&3&3&0&6\\
\end{array}
\right)\\
vec
次に,$vec$という関数を定義します.
$X$:$n \times m$行列としたとき
vec(X) =
\left(
\begin{array}{ccc}
x_{11}\\
x_{12}\\
\vdots\\
x_{1n}\\
x_{21}\\
x_{22}\\
\vdots\\
x_{2n}\\
x_{31}\\
\vdots\\
x_{nm}\\
\end{array}
\right)\\
のように,$X$を列で分解し,縦に並べたものです.
例
A=
\left(
\begin{array}{ccc}
1&2\\
3&4\\
\end{array}
\right)\\
vec(A)=
\left(
\begin{array}{ccc}
1\\
2\\
3\\
4\\
\end{array}
\right)\\
定理
$A$:$k \times m$行列
$B$:$n \times l$行列
vec(AXB) = (B^T \otimes A)vec(X)
が成立する.
証明
左辺を展開していくと,右になるという形で証明します.
$B^T \otimes A$は次の形になります.
B^T \otimes A =
\left(
\begin{array}{ccc}
b_{11}A&b_{21}A& \cdots &b_{n1}A\\
b_{12}A&b_{22}A& \cdots &b_{n2}A\\
\vdots&\vdots&\vdots&\vdots\\
b_{1l}A&b_{2l}A&\cdots &b_{nl}A\\
\end{array}
\right)\\
$X$を列で分解し,次のように定義します.$x$は:$m\times 1$のベクトルです.
X=
\left(
\begin{array}{ccc}
x_1&x_2&\cdots &x_n\\
\end{array}
\right)\\
左辺を計算します.
(B^T \otimes A)vec(X)
=
\left(
\begin{array}{ccc}
b_{11}A&b_{21}A& \cdots &b_{n1}A\\
b_{12}A&b_{22}A& \cdots &b_{n2}A\\
\vdots&\vdots&\vdots&\vdots\\
b_{1l}A&b_{2l}A&\cdots &b_{nl}A\\
\end{array}
\right)
\left(
\begin{array}{ccc}
x_1\\
x_2\\
\vdots \\
x_n\\
\end{array}
\right)\\
これは,列1本の形状で,第一成分から,第(Aの行数)成分までを考えると
(B^T \otimes A)vec(X)_{1,1\cdots k}
=b_{11}Ax_1+b_{21}Ax_2+ \cdots +b_{n1}Ax_n\\
=Ax_1 b_{11}+Ax_2b_{21}+ \cdots +Ax_nb_{n1}\\
=AX(Bの第一列)
よって,
vec(AXB) = (B^T \otimes A)vec(X)
が成立する.
定理2
vec(AX+XB) =(B^T \oplus A)vec(X)
とても,リアプノフ方程式に近い形の式が出てきました.
証明
$A$:$m \times m$行列
$B$:$n \times n$行列
$X$:$m \times n$行列
\begin{eqnarray}
(B^T \oplus A)vec(X)
&=&((B^T \otimes I_m)+(I_n \otimes A))vec(X)\\
&=&(B^T \otimes I_m)vec(X)+(I_n \otimes A)vec(X)
\end{eqnarray}
それぞれの項を計算します.
(I_n \otimes A)vec(X)
=\left(
\begin{array}{ccc}
A&0&\cdots & 0\\
0&A&\cdots&0\\
\vdots\\
0&0&\cdots&A\\
\end{array}
\right)
\left(
\begin{array}{ccc}
x_1\\
x_2\\
\vdots \\
x_n\\
\end{array}
\right)\\
=
\left(
\begin{array}{ccc}
Ax_1\\
Ax_2\\
\vdots \\
Ax_n\\
\end{array}
\right)\\
=vec(AX)
よって,$vec(AX)$になりました.
\begin{eqnarray}
(B^T \otimes I_m)vec(X)
&=&\left(
\begin{array}{ccc}
b_{11}I_m&b_{21}I_m&\cdots & b_{n1}I_m\\
b_{12}I_m&b_{22}I_m&\cdots&b_{n2}I_m\\
\vdots\\
b_{1n}I_m&b_{2n}I_m&\cdots&b_{nn}I_m\\
\end{array}
\right)
\left(
\begin{array}{ccc}
x_1\\
x_2\\
\vdots \\
x_n\\
\end{array}
\right)\\
&=&
\left(
\begin{array}{ccc}
b_{11}x_1+b_{21}x_2+\cdots + b_{n1}x_n\\
b_{12}x_1+b_{22}x_2+\cdots+b_{n2}x_n\\
\vdots\\
b_{1n}x_1+b_{2n}x_2+\cdots+b_{nn}x_n\\
\end{array}
\right)\\
&=&
\left(
\begin{array}{ccc}
Xb_1\\
Xb_2\\
\vdots\\
Xb_n\\
\end{array}
\right)\\
&=&vec(XB)
\end{eqnarray}
以上より,
\begin{eqnarray}
(B^T \oplus A)vec(X)
&=&((B^T \otimes I_m)+(I_n \otimes A))vec(X)\\
&=&(B^T \otimes I_m)vec(X)+(I_n \otimes A)vec(X)\\
&=&vec(XB)+vec(AX)\\
&=&vec(AX+XB)
\end{eqnarray}
証明終了
クロネッカー積と固有値
$A$の固有値を$\lambda_i$(n個)とし,
$B$の固有値を$\mu_j$(m個)とすると,
$A\otimes B$の固有値は$\lambda_i * \mu_j$(n*m個)となる.
証明
https://mathwords.net/kuronekaseki
こちらで証明されているので省略
混合積という考え方が便利ですね
クロネッカー和と固有値
$A$の固有値を$\lambda_i$(n個)とし,
$B$の固有値を$\mu_j$(m個)とすると,
$A\oplus B$の固有値は$\lambda_i + \mu_j$(n*m個)となる.
証明
\begin{eqnarray}
(A \oplus B)(x_i \otimes y_j)
&=&((A \otimes I_m)+(I_n \otimes B))(x_i \otimes y_j)\\
&=&(A \otimes I_m)(x_i \otimes y_j) +(I_n \otimes B)(x_i \otimes y_j)\\
&=&(Ax_i \otimes I_m y_j) + (I_n x_i \otimes By_j) (混合積の公式を利用:リンク先の内容)\\
&=&(\lambda_i x_i \otimes y_j) + (x_i \otimes \mu_j y_j)\\
&=& (\lambda_i + \mu_j)(x_i \otimes y_j)
\end{eqnarray}
よって,固有ベクトル$(x_i \otimes y_j)$,
固有値$(\lambda_i + \mu_j)$であることが示せた.
シルベスター方程式の解の存在条件の証明
vec(AX+XB) =(B^T \oplus A)vec(X)
より,
AX+XB = C
この方程式の一意解$X$:$n \times m$行列は
(B^T \oplus A)vec(X) = vec(C)
が成立する.ここで,$X$が一意になることは,$(B^T \oplus A)$が正則であることと同値である.
正則であることは,固有値0を持たないことと同値
よって,
\lambda_i(A)+\lambda_j(B^T) \neq 0
が一意解の存在条件である.
\lambda_j(B^T) = \lambda_j(B)
である.
追記:リアプノフ方程式の解
AX+XA^* = C
の解は
X=\int^{\infty}_{0} e^{At}(-C)e^{A^*t}dt
証明
X=\int^{\infty}_{0} e^{At}(-C)e^{A^*t}dt
とすると,リアプノフ方程式を満たすという流れで証明します.
\begin{eqnarray}
A^*X+XA &=& \int^{\infty}_{0} \{ A^* e^{At}(-C)e^{A^*t} + e^{At}(-C)e^{A^*t} A \}dt\\
&=& \int^{\infty}_{0} \frac{d}{dt} \{ e^{At}(-C)e^{A^*t} \}dt\\
&=& [ e^{At}(-C)e^{A^*t} ]^{\infty}_0
&=&C
\end{eqnarray}
よって
AX+XA^* = C
を成立させました!QED