# scipy.linalg.solve_sylvester¶

scipy.linalg.solve_sylvester(a, b, q)[source]

Computes a solution (X) to the Sylvester equation $$AX + XB = Q$$.

Parameters: a : (M, M) array_like Leading matrix of the Sylvester equation b : (N, N) array_like Trailing matrix of the Sylvester equation q : (M, N) array_like Right-hand side x : (M, N) ndarray The solution to the Sylvester equation. LinAlgError If solution was not found

Notes

Computes a solution to the Sylvester matrix equation via the Bartels- Stewart algorithm. The A and B matrices first undergo Schur decompositions. The resulting matrices are used to construct an alternative Sylvester equation (RY + YS^T = F) where the R and S matrices are in quasi-triangular form (or, when R, S or F are complex, triangular form). The simplified equation is then solved using *TRSYL from LAPACK directly.

New in version 0.11.0.

Examples

Given a, b, and q solve for x:

>>> from scipy import linalg
>>> a = np.array([[-3, -2, 0], [-1, -1, 3], [3, -5, -1]])
>>> b = np.array([[1]])
>>> q = np.array([[1],[2],[3]])
>>> x = linalg.solve_sylvester(a, b, q)
>>> x
array([[ 0.0625],
[-0.5625],
[ 0.6875]])
>>> np.allclose(a.dot(x) + x.dot(b), q)
True


#### Previous topic

scipy.linalg.fractional_matrix_power

#### Next topic

scipy.linalg.solve_continuous_are