Skip to Main Content Skip to Search
Product Documentation

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

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

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

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.

Algorithms

lyap first transforms the A and B matrices to complex Schur form, and then computes the solution of the resulting triangular system. Finally it transforms this solution back[1].

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

Limitations

The continuous Lyapunov equation has a unique solution if the eigenvalues of A and of B satisfy

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

where

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

where

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

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] Bryson, A.E. and Y.C. Ho, Applied Optimal Control, Hemisphere Publishing, 1975. pp. 328–338.

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

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

[5] Higham, N.J., "FORTRAN codes for estimating the one-norm of a real or complex matrix, with applications to condition estimation," A.C.M. Trans. Math. Soft., Vol. 14, No. 4, pp. 381–396, 1988.

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

[7] 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.

See Also

covar | dlyap

  


Free Control Systems Interactive Kit

Learn more about resources for designing, testing, and implementing control systems.

Get free kit

Trials Available

Try the latest control systems products.

Get trial software
 © 1984-2012- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS