Main Content

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

ordschur

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

说明

[US,TS] = ordschur(U,T,select)[U,T] = schur(X) 生成的 Schur 分解 X = U*T*U' 重新排序,并返回重新排序后的 Schur 矩阵 TS 以及正交矩阵 US,从而使得 X = US*TS*US'

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

[US,TS] = ordschur(U,T,keyword) 设置选定的组以包含 keyword 指定的区域中的所有特征值。

示例

[US,TS] = ordschur(U,T,clusters) 同时对多个组重新排序。ordschur 沿 TS 的对角线按降序排列指定的组,具有最高索引的组位于左上角。

示例

全部折叠

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

计算矩阵 X 的 Schur 分解。Schur 分解生成上拟三角矩阵 T 和酉矩阵 U,从而使得 X=UTU*

X = magic(6);
[U,T] = schur(X)
U = 6×6

    0.4082   -0.2887    0.4082    0.5749    0.5000   -0.0530
    0.4082    0.5774    0.4082   -0.3333    0.0000   -0.4714
    0.4082   -0.2887    0.4082   -0.2416   -0.5000    0.5244
    0.4082    0.2887   -0.4082    0.5749   -0.5000   -0.0530
    0.4082   -0.5774   -0.4082   -0.3333   -0.0000   -0.4714
    0.4082    0.2887   -0.4082   -0.2416    0.5000    0.5244

T = 6×6

  111.0000    0.0000    0.0000    0.0000    0.0000   -0.0000
         0   27.0000    0.0000  -28.3164  -15.5885  -13.0454
         0         0  -27.0000   18.0000   22.0454  -12.7279
         0         0         0    9.7980    0.0000    6.9282
         0         0         0         0   -0.0000    0.0000
         0         0         0         0         0   -9.7980

由于 T 是三角矩阵,因此 T 的对角线包含原始矩阵 X 的特征值。

对 Schur 分解进行重新排序,使特征值位于两个组中,负特征值组在 TS 的对角线上先出现。

[US,TS] = ordschur(U,T,'lhp')
US = 6×6

   -0.4082    0.2887   -0.2746   -0.4082   -0.4826    0.5244
   -0.4082    0.2887   -0.2990   -0.4082    0.5213   -0.4714
   -0.4082   -0.5774    0.5736   -0.4082   -0.0386   -0.0530
    0.4082   -0.2887   -0.2075   -0.4082    0.5151    0.5244
    0.4082   -0.2887   -0.3662   -0.4082   -0.4765   -0.4714
    0.4082    0.5774    0.5736   -0.4082   -0.0386   -0.0530

TS = 6×6

  -27.0000  -19.0919   18.6997    0.0000    9.7888  -12.7279
         0   -0.0000   -0.3800    0.0000   15.6493  -15.5227
         0         0   -9.7980   -0.0000    2.4773   -8.7185
         0         0         0  111.0000   -0.0000   -0.0000
         0         0         0         0   27.0000  -26.3600
         0         0         0         0         0    9.7980

输入参数

全部折叠

酉矩阵,指定为由 [U,T] = schur(X) 返回的矩阵 U。矩阵 U 满足属性 X = U*T*U'U'*U = eye(size(X))

如果 UT 不能形成有效的 Schur 分解,则 ordschur 不会报错,但返回的结果不正确。

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

Schur 矩阵,指定为由 [U,T] = schur(X) 返回的上逆三角矩阵 T。矩阵 T 满足 X = U*T*U'

如果 UT 不能形成有效的 Schur 分解,则 ordschur 不会报错,但返回的结果不正确。

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

组选择器,指定为逻辑向量,其长度等于特征值的数量。特征值沿 [U,T] = schur(X) 生成的矩阵 T 的对角线排列。

数据类型: logical

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

选项

选定区域

(e = ordeig(T))

'lhp'

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

'rhp'

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

'udi'

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

'udo'

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

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

示例: ordschur(U,T,[1 1 2 3 3]) 将五个特征值分成三个组。

数据类型: single | double

输出参数

全部折叠

重新排序后的矩阵,返回满足 X = US*TS*US' 的矩阵。

US 是酉矩阵,TS拟三角矩阵

详细信息

全部折叠

拟三角矩阵

上部拟三角矩阵可由实矩阵的 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 块对应于复共轭特征值对。

提示

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

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

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

参考

[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 之前推出

另请参阅

| |