# ric_desc

リカッチ方程式

## 呼び出し手順

    X=ric_desc(H [,E))
                [X1,X2,zero]=ric_desc(H [,E])

## パラメータ

H,E

  実数正方行列

X1,X2

  実数正方行列

zero

  実数

## 説明

ハミルトン行列を入力とするリカッチソルバ.

連続系の場合, 呼び出し手順は `ric_descr(H)` (1入力)となります:

リカッチ方程式は次のようになります:

    (Ec)   A'*X + X*A + X*R*X -Q = 0.

ハミルトン行列 `H` は次のように定義できます:

    H = [A  R;
         Q -A']

呼び出し手順 `[X1,X2,zero]=ric_descr(H)`の場合, 解は`X=X1/X2`で得られます.

`zero` = (`Ec`)の右辺のL1ノルム

解`X` は, `X=riccati(A,Q,R,'c'))` によっても得られます.

離散時間の場合, 呼び出し手順は `ric_descr(H,E)` (2入力)となります:

リカッチ解は以下のようになります:

    (Ed)  A'*X*A-(A'*X*B*(R+B'*X*B)^-1)*(B'*X*A)+C-X = 0.

`G=B/R*B'`と定義すると, ハミルトン行列のペンシル`(E,H)`は 以下のようになります:

    E=[eye(n,n),G;               H=[A, 0*ones(n,n);
       0*ones(n,n),A']             -C, eye(n,n)];

呼び出し手順 `[X1,X2,err]=ric_descr(H,E)`の場合, `X`の解は`X=X1/X2`で得られます.

`zero`= (`Ed`)の右辺のL1ノルム

解 `X` `X=riccati(A,G,C,'d')` 'ただし,`G=B/R*B'`) によっても得られます.

## 参照

- riccati