scipy.linalg.qz¶
- scipy.linalg.qz(A, B, output='real', lwork=None, sort=None, overwrite_a=False, overwrite_b=False, check_finite=True)[源代码]¶
矩阵对的广义特征值的QZ分解。
一对n乘n矩阵(A,B)的QZ或广义Schur分解为:
(A,B) = (Q @ AA @ Z*, Q @ BB @ Z*)
其中,如果BB是具有非负对角线的上三角的,并且AA是上三角形的,或者对于实QZ分解,则AA,BB是广义Schur形式 (
output='real'
)挡路上三角形,带1x1和2x2区块。在这种情况下,1x1块对应于实广义特征值,而2x2块通过使bb的对应元素具有以下形式而被“标准化”::[ a 0 ] [ 0 b ]
并且AA和BB中对应的2×2块对将具有广义特征值的复共轭对。如果 (
output='complex'
)或A和B是复矩阵,Z‘表示Z的共轭转置,Q和Z是酉矩阵。- 参数
- A(n,N)类数组
要分解的二维数组
- B(n,N)类数组
要分解的二维数组
- output{‘real’,‘Complex’},可选
构造实矩阵的实或复QZ分解。默认值为“REAL”。
- lwork整型,可选
工作数组大小。如果无或-1,则自动计算。
- sort{无,可调用,‘LHP’,‘RHP’,‘IUC’,‘OUC’},可选
注意:此输入暂时禁用。改用ordqz。
指定是否应对上特征值进行排序。可以传递一个可调用函数,该函数在给定特征值的情况下返回一个布尔值,该布尔值表示是否应该将该特征值排序到左上角(True)。对于实数矩阵对,排序函数接受三个实数参数(alphar、alphai、beta)。本征值
x = (alphar + alphai*1j)/beta
。对于复数矩阵对或output=‘Complex’,排序函数接受两个复数参数(alpha、beta)。本征值x = (alpha/beta)
。或者,可以使用字符串参数:“lhp”左侧平面(x.real<0.0)
“rhp”右侧平面(x.real>0.0)
单位圆内的‘iuc’(x*x.congiate()<1.0)
单位圆外的‘ouc’(x*x.congiate()>1.0)
默认为无(不排序)。
- overwrite_a布尔值,可选
是否覆盖中的数据(可能会提高性能)
- overwrite_b布尔值,可选
是否覆盖b中的数据(可能会提高性能)
- check_finite布尔值,可选
如果为true,则检查 A 和 B 都是有限的数字。如果为False,则不进行检查,并将矩阵传递给基础算法。
- 退货
- AA(N,N)ndarray
A的广义Schur形式。
- BB(N,N)ndarray
B的广义Schur形式。
- Q(N,N)ndarray
左舒尔矢量。
- Z(N,N)ndarray
右边的舒尔矢量。
参见
注意事项
Q相对于Matlab中的等价函数进行了转置。
0.11.0 新版功能.
示例
>>> from scipy import linalg >>> rng = np.random.default_rng() >>> A = np.arange(9).reshape((3, 3)) >>> B = rng.standard_normal((3, 3))
>>> AA, BB, Q, Z = linalg.qz(A, B) >>> AA array([[ 8.99591445e+00, -1.07917902e+01, -2.18309912e+00], [ 0.00000000e+00, -8.60837546e-01, 1.05063006e+00], [ 0.00000000e+00, 0.00000000e+00, -1.40584278e-15]]) >>> BB array([[ 0.2058989 , -0.6007898 , -0.5771396 ], [ 0. , 1.6997737 , -1.12160842], [ 0. , 0. , 1.76304656]]) >>> Q array([[ 0.10356118, 0.90697763, -0.40824829], [ 0.48575095, 0.31205664, 0.81649658], [ 0.86794072, -0.28286434, -0.40824829]]) >>> Z array([[ 0.78900531, 0.16010775, -0.59315776], [-0.21754047, -0.83009894, -0.51343148], [ 0.57458399, -0.53413598, 0.62012256]])