SciPy

scipy.linalg.solve_continuous_lyapunov

scipy.linalg.solve_continuous_lyapunov(a, q)[source]

Solves the continuous Lyapunov equation \(AX + XA^H = Q\).

Uses the Bartels-Stewart algorithm to find \(X\).

Parameters:
a : array_like

A square matrix

q : array_like

Right-hand side square matrix

Returns:
x : ndarray

Solution to the continuous Lyapunov equation

See also

solve_discrete_lyapunov
computes the solution to the discrete-time Lyapunov equation
solve_sylvester
computes the solution to the Sylvester equation

Notes

The continuous Lyapunov equation is a special form of the Sylvester equation, hence this solver relies on LAPACK routine ?TRSYL.

New in version 0.11.0.

Examples

Given a and q solve for x:

>>> from scipy import linalg
>>> a = np.array([[-3, -2, 0], [-1, -1, 0], [0, -5, -1]])
>>> b = np.array([2, 4, -1])
>>> q = np.eye(3)
>>> x = linalg.solve_continuous_lyapunov(a, q)
>>> x
array([[ -0.75  ,   0.875 ,  -3.75  ],
       [  0.875 ,  -1.375 ,   5.3125],
       [ -3.75  ,   5.3125, -27.0625]])
>>> np.allclose(a.dot(x) + x.dot(a.T), q)
True