Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

ordqz

在 QZ 分解中将特征值重新排序

说明

[AAS,BBS,QS,ZS] = ordqz(AA,BB,Q,Z,select) 对由 [AA,BB,Q,Z] = qz(A,B) 生成的 QZ 分解 Q*A*Z = AAQ*B*Z = BB 重新排序,并返回重新排序后的矩阵对组 (AAS,BBS) 以及正交矩阵 (QS,ZS),从而使得 QS*A*ZS = AASQS*B*ZS = BBS

在此重新排序中,选定的特征值组出现在拟三角对组 (AAS,BBS) 的主(左上方)对角块中。对应的不变子空间为 ZS 的前导列所涵盖。逻辑向量 select 指定选定的组为 e(select),其中 e = ordeig(AA,BB)

示例

[AAS,BBS,QS,ZS] = ordqz(AA,BB,Q,Z,keyword) 设置选定的组以包含 keyword 指定的区域中的所有特征值。

[AAS,BBS,QS,ZS] = ordqz(AA,BB,Q,Z,clusters) 同时对多个组重新排序。ordqz 沿 (AAS,BBS) 的对角线按降序排列指定的组,具有最高索引的组位于左上角。

示例

全部折叠

计算一对矩阵的 QZ 分解,然后根据指定的特征值顺序对因子重新排序。

计算一对矩阵 AB 的 QZ 分解或广义 Schur 分解。此分解生成因子 AA=QAZBB=QBZ

A = magic(5);
B = hilb(5);
[AA,BB,Q,Z] = qz(A,B)
AA = 5×5

   14.5272   -2.3517    8.5757   -0.2350   -1.4432
         0  -19.7471    2.1824    4.5417    7.2059
         0         0  -17.9538    8.9292   -9.6961
         0         0         0   30.3449  -47.9191
         0         0         0         0   32.4399

BB = 5×5

    0.0000    0.0005    0.0018    0.0465    0.2304
         0    0.0008    0.0199    0.1662    0.7320
         0         0    0.0210    0.1006   -0.1341
         0         0         0    0.0623   -1.1380
         0         0         0         0    0.7434

Q = 5×5

   -0.1743   -0.1099   -0.0789   -0.4690    0.8552
   -0.7567   -0.1151   -0.0846    0.6172    0.1617
   -0.4010    0.6782    0.5478   -0.2664   -0.0901
    0.4178   -0.0297    0.6473    0.4883    0.4089
   -0.2484   -0.7168    0.5173   -0.2995   -0.2593

Z = 5×5

    0.0057   -0.0424   -0.2914   -0.5860   -0.7549
   -0.1125    0.4109    0.7635    0.1734   -0.4533
    0.4995   -0.6746    0.1486    0.4053   -0.3303
   -0.7694   -0.2140   -0.2614    0.4749   -0.2616
    0.3818    0.5731   -0.4917    0.4866   -0.2173

由于 AABB 都是三角矩阵,因此使用 ordeigAABB 的对角块中提取特征值。

e = ordeig(AA,BB)
e = 5×1
106 ×

    2.8871
   -0.0257
   -0.0009
    0.0005
    0.0000

将特征值分成组,由正实数特征值 (e>0) 构成起始组。根据此特征值顺序,对矩阵 AABBQZ 重新排序。

[AAS,BBS,QS,ZS] = ordqz(AA,BB,Q,Z,'rhp')
AAS = 5×5

   14.5272   -1.2849    1.0391   -7.6821    4.4119
         0   21.7128  -19.1784   -1.8380    9.1187
         0         0   60.3083    8.4452   -6.4304
         0         0         0  -18.2081    3.3783
         0         0         0         0  -14.6375

BBS = 5×5

    0.0000    0.0114    0.1908    0.1119    0.0788
         0    0.0446    0.0377    0.1107    0.1978
         0         0    1.3820    0.6325    0.2807
         0         0         0    0.0007   -0.0137
         0         0         0         0    0.0171

QS = 5×5

   -0.1743   -0.1099   -0.0789   -0.4690    0.8552
   -0.6353    0.1853    0.4099    0.5765    0.2483
   -0.7034   -0.4518   -0.3456   -0.2295   -0.3591
    0.1415   -0.2036   -0.7054    0.6065    0.2703
   -0.2263    0.8414   -0.4568   -0.1647   -0.0705

ZS = 5×5

    0.0057   -0.0088   -0.5288   -0.3591   -0.7690
   -0.1125   -0.6095   -0.3858   -0.4737    0.4926
    0.4995    0.6478   -0.2711   -0.3644    0.3529
   -0.7694    0.4176   -0.4090    0.1750    0.1890
    0.3818   -0.1855   -0.5752    0.6952    0.0758

检查新的特征值顺序。

E2 = ordeig(AAS,BBS)
E2 = 5×1
106 ×

    2.8871
    0.0005
    0.0000
   -0.0257
   -0.0009

输入参数

全部折叠

矩阵因子,指定为由 [AA,BB,Q,Z] = qz(A,B) 返回的矩阵。这些矩阵满足 Q*A*Z = AAQ*B*Z = BB。对于复矩阵,AABB 都是三角矩阵。

如果 AABB 不能形成有效的 QZ 分解,则 ordqz 不会报错,但返回的结果不正确。

数据类型: single | double
复数支持:

酉矩阵,指定为由 [AA,BB,Q,Z] = qz(A,B) 返回的矩阵。这些矩阵满足 Q*A*Z = AAQ*B*Z = BB

数据类型: single | double
复数支持:

组选择器,指定为逻辑向量,其长度等于广义特征值的数量。广义特征值沿 AA-λ*BB 的对角线排列。

数据类型: logical

特征值区域关键字,指定为下表中的选项之一。

选项

选定区域

(e = ordeig(AA,BB))

'lhp'

左半平面 (real(e) < 0)

'rhp'

右半平面 (real(e) >= 0)

'udi'

单位圆盘的内部 (abs(e) < 1)

'udo'

单位圆盘的外部 (abs(e) >= 1)

组索引,指定为正整数向量,其长度等于特征值的数量。clusterse = ordeig(AA,BB) 返回的每个特征值赋给不同的组。clusters 中具有相同索引值的所有特征值形成一个组。

示例: ordqz(AA,BB,Q,Z,[1 1 2 3 3]) 将五个特征值分成三个组。

数据类型: single | double

输出参数

全部折叠

重新排序后的矩阵,返回满足 QS*A*ZS = AASQS*B*ZS = BBS 的矩阵。

QSZS 是酉矩阵,而 AAS拟三角矩阵BBS 是三角矩阵。

详细信息

全部折叠

拟三角矩阵

上部拟三角矩阵可由实矩阵的 Schur 分解或广义 Schur (QZ) 分解产生。这些矩阵是分块上三角矩阵,对角线上为 1×1 和 2×2 的分块。

6-by-6 matrix with 1-by-1 and 2-by-2 blocks of nonzeros along the diagonal

这些对角块的特征值也是矩阵的特征值。1×1 块对应于实数特征值,2×2 块对应于复共轭特征值对。

提示

  • 如果 AA 具有复共轭对(非零元素在子对角线上),则应将该对移动到相同的组中。否则,ordqz 将使该对保持在一起:

    • 如果一个共轭对的两个特征值具有不同的 select 设置,ordqz 会认为二者都被选中。

    • 如果一个共轭对的两个特征值具有不同的 clusters 设置,ordqz 会认为二者都属于索引值较大的那个组。

参考

[1] Kressner, Daniel. “Block Algorithms for Reordering Standard and Generalized Schur Forms.” ACM Transactions on Mathematical Software 32, no. 4 (December 2006): 521–532. https://doi.org/10.1145/1186785.1186787.

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| |