# dlyapchol

Solves discrete-time Lyapunov equations with a square-root solver.

## Syntax

X = dlyapchol(A, B)

X = dlyapchol(A, B, E)

## Inputs

`A`- Real square matrix.
`B`- A real matrix.
`E`- Real square matrix.

## Outputs

- X
- A real matrix.

## Examples

```
A = [-5.0 0 -5.0;
0.5 0 0;
0 0 0.5];
B = [ 0.5 1 0.5;
1.5 1 1;
1 1 1.5];
U1 = dlyapchol (A, B)
```

`U1 = [Matrix] 3 x 3
0.50000 1.50000 1.00000
1.00000 1.00000 1.00000
0.50000 1.00000 1.50000`

```
A = [-5.0 0 -5.0;
0.5 0 0;
0 0 0.5];
B = [ 0.5 1 0.5;
1.5 1 1;
1 1 1.5];
E = [2 2 4;
1 0 5;
3 1 1];
U2 = dlyapchol (A, B, E)
```

`U2 = [Matrix] 3 x 3
0.50000 1.50000 1.00000
1.00000 1.00000 1.00000
0.50000 1.00000 0.00000`

## Comments

R = dlyapchol(A, B) solves AU'UA' - U'U = -BB' (Lyapunov matrix equation).

X = dlyapchol(A, B, E) solves AU'UA' - EU'UE' = -B B' (Sylvester equation).

Based on the SLICOT library functions SB03OD and SG03BD.