dlyap

Solve discrete-time Lyapunov equation by Schur decomposition

Syntax

   X = dlyap(A,Q)

Arguments

See also Common variable names and data structures.

input

   A          square matrix with spectral radius < 1
   Q          symmetric positive-definite matrix

output

   X          solution of discrete-time Lyapunov equation X = A*X*A'+Q

Description

Solves the discrete-time Lyapunov equation

using Schur decomposition and column-by-column solution [1,2] (this is quite likely the same algorithm as in the Matlab Control System Toolbox dlyap, except that no balancing is performed). This function is substantially slower than dlyap; if the Matlab Control System Toolbox is not available, the user might like to consider using dlyap_aitr instead.

The caller should test that Q is positive-definite and that the spectral radius of A is < 1 before calling.

Adapted from an early scripted (i.e. non- SLICOT) version of Octave's dlyap function.

References

[1] X. Kitagawa, "An algorithm for solving the matrix equation X = F X F'+S", Internat. J. Control 25(5), 1977.

[2] S. Hammarling, "Numerical solution of the stable, non-negative definite Lyapunov equation", IMA J. Numer. Anal. 2, 1982.

See also

dlyap_aitr | var_to_autocov