當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy linalg.solve_sylvester用法及代碼示例

本文簡要介紹 python 語言中 scipy.linalg.solve_sylvester 的用法。

用法:

scipy.linalg.solve_sylvester(a, b, q)#

計算 Sylvester 方程 的解 (X)。

參數

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 矩陣采用 quasi-triangular 形式(或者,當 R、S 或 F 為複數時,為三角形形式)。然後使用 LAPACK 中的*TRSYL 直接求解簡化方程。

例子

給定 a、b 和 q 求解 x:

>>> import numpy as np
>>> 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

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.linalg.solve_sylvester。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。