scipy.linalg.solve_sylvester

scipy.linalg.solve_sylvester(a, b, q)[源代码]

计算西尔维斯特方程的解(X) \(AX + XB = Q\)

参数
a(M,M)类数组

Sylvester方程的前导矩阵

b(n,N)类数组

Sylvester方程的拖尾矩阵

q(M,N)类数组

右手边

退货
x(M,N)ndarray

西尔维斯特方程的解。

加薪
LinAlgError

如果未找到解决方案

注意事项

通过Bartels-Stewart算法计算Sylvester矩阵方程的解。A和B矩阵首先进行Schur分解。所得到的矩阵被用来构造可选的西尔维斯特(Sylvester)方程 (RY + YS^T = F )其中R和S矩阵为准三角形(或者,当R、S或F为复数时,为三角形)。然后使用以下方法求解简化的方程 *TRSYL 直接从LAPACK发来的。

0.11.0 新版功能.

示例

给定的 ab ,以及 q 解算 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