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 新版功能.
示例
给定的 a , b ,以及 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