dlyap_aitr

Solve discrete-time Lyapunov equation by Smith's accelerated iterative method

Syntax

   [X,iters] = dlyap_itr(A,Q,maxiters,maxrelerr)

Arguments

See also Common variable names and data structures.

input

   A          square matrix with spectral radius < 1
   Q          symmetric positive-definite matrix
   maxiters   maximum iterations (default: 100)
   maxrelerr  maximum relative error (default: 1e-8)

output

   X          solution of discrete-time Lyapunov equation X = A*X*A'+Q
   iters      number of iterations performed

Description

Solves the discrete-time Lyapunov equation (cf. dlyap in the Matlab Control System Toolbox)

using Smith's accelerated iterative method [1]:

maxiters is the maximum iterations, maxrelerr the maximum relative error of with respect to Q before a convergence test kicks in. The actual number of iterations performed is returned in iters. If the algorithm fails to converge within maxiters iterations, an exception MVGC:XMaxItrs is thrown (this is for consistency with dlyap). The convergence rate depends on the problem dimensions and maximum absolute eigenvalue (spectral radius) of A. In general this algorithm actually appears to be faster than the Matlab Control System Toolbox dlyap.

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

References

[1] R. A. Smith, "Matrix Equation XA + BX = C", SIAM J. Appl. Math. 16(1), 1968.

See also

dlyap | dlyap_schur | var_to_autocov