リアプノフ方程式の一意解の存在条件の証明

#シルベスター方程式（Sylvester方程式）
$A$:$n \times n$行列
$B$:$m \times m$行列
$C$:$n \times m$行列
を与えた，

```math
AX+XB = C
```
この方程式の一意解$X$:$n \times m$行列が存在する条件は

```math
\lambda_i(A)+\lambda_j(B) \neq 0
```

#リアプノフ方程式
シルベスター方程式に

```math
B=A^*
```
を代入した

```math
AX+XA^* = C
```
が，リアプノフ方程式です．
この方程式の一意解$X$:$n \times m$行列が存在する条件は

```math
\lambda_i(A)+\bar{\lambda_j(A)} \neq 0
```

ちなみに，リアプノフ方程式はリカッチ方程式と等価です．リカッチ方程式では，ハミルトン行列が虚軸上に固有値を持たないという条件が，リアプノフ方程式での一意解の存在条件になります．


#クロネッカー積
クロネッカー積$\otimes$を次のように定義します．
$A$:$m \times n$行列
$B$:$p \times q$行列

```math
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
：こちらもご覧ください

例

```math
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)\\
```
とすると

```math
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$行列

```math
A\oplus B =(A \otimes I_m)+(I_n \otimes B)
```

例：

```math
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)\\
```
としたとき，

```math
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$行列としたとき

```math
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$を列で分解し，縦に並べたものです．

例

```math
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$行列

```math
vec(AXB) = (B^T \otimes A)vec(X)
```
が成立する．

###証明
左辺を展開していくと，右になるという形で証明します．

$B^T \otimes A$は次の形になります．

```math
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$のベクトルです．

```math
X=
\left(
    \begin{array}{ccc}
      x_1&x_2&\cdots &x_n\\   
    \end{array}
  \right)\\
```
左辺を計算します．

```math
(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の行数）成分までを考えると

```math
(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の第一列)
```
よって，

```math
vec(AXB) = (B^T \otimes A)vec(X)
```
が成立する．

#定理2


```math
vec(AX+XB) =(B^T \oplus A)vec(X)
```
とても，リアプノフ方程式に近い形の式が出てきました．

###証明
$A$:$m \times m$行列
$B$:$n \times n$行列
$X$:$m \times n$行列

```math
\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}
```
それぞれの項を計算します．

```math
(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)$になりました．




```math
\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}
```
以上より，

```math
\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個)となる．

###証明

```math
\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)$であることが示せた．

#シルベスター方程式の解の存在条件の証明

```math
vec(AX+XB) =(B^T \oplus A)vec(X)
```
より，

```math
AX+XB = C
```
この方程式の一意解$X$:$n \times m$行列は

```math
(B^T \oplus A)vec(X) = vec(C)
```
が成立する．ここで，$X$が一意になることは，$(B^T \oplus A)$が正則であることと同値である．
正則であることは，固有値0を持たないことと同値

よって，

```math
\lambda_i(A)+\lambda_j(B^T) \neq 0
```
が一意解の存在条件である．

```math
\lambda_j(B^T) = \lambda_j(B)
```
である．

#追記:リアプノフ方程式の解

```math
AX+XA^* = C
```
の解は

```math
X=\int^{\infty}_{0} e^{At}(-C)e^{A^*t}dt
```

###証明

```math
X=\int^{\infty}_{0} e^{At}(-C)e^{A^*t}dt
```
とすると，リアプノフ方程式を満たすという流れで証明します．

```math
\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}
```
よって

```math
AX+XA^* = C
```
を成立させました！QED