35.ordschur函数

在MATLAB中,提供了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的对角线按降序排列指定的组,具有最高索引的组位于左上角。

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

由于T是三角矩阵,因此T的对角线包含原始矩阵X的特征值。对Schur分解进行重新排序,使特征值位于两个组中,负特征值组在TS的对角线上先出现。