# ric_desc

Riccati equation

## Calling Sequence

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

## Arguments

H,E

  real square matrices

X1,X2

  real square matrices

zero

  real number

## Description

Riccati solver with hamiltonian matrices as inputs.

In the continuous time case calling sequence is `ric_descr(H)` (one input):

Riccati equation is:

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

Defining the hamiltonian matrix `H` by:

    H = [A  R;
         Q -A']

with the calling sequence `[X1,X2,zero]=ric_descr(H)`, the solution `X` is given by `X=X1/X2`.

`zero` = L1 norm of rhs of (`Ec`)

The solution `X` is also given by `X=riccati(A,Q,R,'c'))`

In the discrete-time case calling sequence is `ric_descr(H,E)` (two inputs):

The Riccati equation is:

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

Defining `G=B/R*B'` and the hamiltonian pencil `(E,H)` by:

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

with the calling sequence `[X1,X2,err]=ric_descr(H,E)`, the solution `X` is given by `X=X1/X2`.

`zero`= L1 norm of rhs of (`Ed`)

The solution `X` is also given by `X=riccati(A,G,C,'d')` with `G=B/R*B'`

## Examples

    h=[0.5,4;
    0,-0.5]
    x=ric_desc(h)

## See Also

- riccati