2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-12-24

シルベスター方程式(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

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?