SciPy

scipy.linalg.solve_sylvester

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

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

New in version 0.11.0.

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

Returns :

x : (M, N) ndarray

The solution to the Sylvester equation.

Raises :

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.