Loading [MathJax]/jax/output/HTML-CSS/jax.js
SciPy

This is documentation for an old release of SciPy (version 0.17.1). Read this page in the documentation of the latest stable release (version 1.15.1).

scipy.linalg.solve_discrete_lyapunov

scipy.linalg.solve_discrete_lyapunov(a, q, method=None)[source]

Solves the discrete Lyapunov equation AXAX=Q.

Parameters:

a : (M, M) array_like

A square matrix

q : (M, M) array_like

Right-hand side square matrix

method : {‘direct’, ‘bilinear’}, optional

Type of solver.

If not given, chosen to be direct if M is less than 10 and bilinear otherwise.

Returns:

x : ndarray

Solution to the discrete Lyapunov equation

See also

solve_lyapunov
computes the solution to the continuous Lyapunov equation

Notes

This section describes the available solvers that can be selected by the ‘method’ parameter. The default method is direct if M is less than 10 and bilinear otherwise.

Method direct uses a direct analytical solution to the discrete Lyapunov equation. The algorithm is given in, for example, [R106]. However it requires the linear solution of a system with dimension M2 so that performance degrades rapidly for even moderately sized matrices.

Method bilinear uses a bilinear transformation to convert the discrete Lyapunov equation to a continuous Lyapunov equation (BX+XB=C) where B=(AI)(A+I)1 and C=2(A+I)1Q(A+I)1. The continuous equation can be efficiently solved since it is a special case of a Sylvester equation. The transformation algorithm is from Popov (1964) as described in [R107].

New in version 0.11.0.

References

[R106](1, 2) Hamilton, James D. Time Series Analysis, Princeton: Princeton University Press, 1994. 265. Print. http://www.scribd.com/doc/20577138/Hamilton-1994-Time-Series-Analysis
[R107](1, 2) Gajic, Z., and M.T.J. Qureshi. 2008. Lyapunov Matrix Equation in System Stability and Control. Dover Books on Engineering Series. Dover Publications.