# lyap

Continuous Lyapunov equation solution

## Syntax

```lyap X = lyap(A,Q) X = lyap(A,B,C) X = lyap(A,Q,[],E) ```

## Description

`lyap ` solves the special and general forms of the Lyapunov equation. Lyapunov equations arise in several areas of control, including stability theory and the study of the RMS behavior of systems.

`X = lyap(A,Q) ` solves the Lyapunov equation

`$AX+X{A}^{T}+Q=0$`

where A and Q represent square matrices of identical sizes. If Q is a symmetric matrix, the solution `X` is also a symmetric matrix.

`X = lyap(A,B,C) ` solves the Sylvester equation

`$AX+XB+C=0$`

The matrices `A`, `B`, and `C` must have compatible dimensions but need not be square.

`X = lyap(A,Q,[],E)` solves the generalized Lyapunov equation

`$AX{E}^{T}+EX{A}^{T}+Q=0$`

where Q is a symmetric matrix. You must use empty square brackets `[]` for this function. If you place any values inside the brackets, the function errors out.

## Limitations

The continuous Lyapunov equation has a unique solution if the eigenvalues ${\alpha }_{1},{\alpha }_{2},...,{\alpha }_{n}$ of A and ${\beta }_{1},{\beta }_{2},...,{\beta }_{n}$ of B satisfy

`${\alpha }_{i}+{\beta }_{j}\ne 0\text{ }for\text{\hspace{0.17em}}all\text{\hspace{0.17em}}pairs\text{\hspace{0.17em}}\left(i,j\right)$`

If this condition is violated, `lyap` produces the error message:

```Solution does not exist or is not unique. ```

## Examples

### Example 1

Solve Lyapunov Equation

Solve the Lyapunov equation

`$AX+X{A}^{T}+Q=0$`

where

`$A=\left[\begin{array}{cc}1& 2\\ -3& -4\end{array}\right]\text{ }\text{ }Q=\left[\begin{array}{cc}3& 1\\ 1& 1\end{array}\right]$`

The A matrix is stable, and the Q matrix is positive definite.

```A = [1 2; -3 -4]; Q = [3 1; 1 1]; X = lyap(A,Q)```
These commands return the following X matrix:
```X = 6.1667 -3.8333 -3.8333 3.0000```
You can compute the eigenvalues to see that X is positive definite.

`eig(X)`

The command returns the following result:

```ans = 0.4359 8.7308```

### Example 2

Solve Sylvester Equation

Solve the Sylvester equation

`$AX+XB+C=0$`

where

`$A=5\text{ }\text{ }B=\left[\begin{array}{cc}4& 3\\ 4& 3\end{array}\right]\text{ }\text{ }C=\left[\begin{array}{cc}2& 1\end{array}\right]$`

```A = 5; B = [4 3; 4 3]; C = [2 1]; X = lyap(A,B,C)```

These commands return the following X matrix:

```X = -0.2000 -0.0500```

## Algorithms

`lyap` uses SLICOT routines SB03MD and SG03AD for Lyapunov equations and SB04MD (SLICOT) and ZTRSYL (LAPACK) for Sylvester equations.

## References

[1] Bartels, R.H. and G.W. Stewart, "Solution of the Matrix Equation AX + XB = C," Comm. of the ACM, Vol. 15, No. 9, 1972.

[2] Barraud, A.Y., “A numerical algorithm to solve A XA - X = Q,” IEEE® Trans. Auto. Contr., AC-22, pp. 883–885, 1977.

[3] Hammarling, S.J., “Numerical solution of the stable, non-negative definite Lyapunov equation,” IMA J. Num. Anal., Vol. 2, pp. 303–325, 1982.

[4] Penzl, T., ”Numerical solution of generalized Lyapunov equations,” Advances in Comp. Math., Vol. 8, pp. 33–48, 1998.

[5] Golub, G.H., Nash, S. and Van Loan, C.F., “A Hessenberg-Schur method for the problem AX + XB = C,” IEEE Trans. Auto. Contr., AC-24, pp. 909–913, 1979.