特征库中Schur因子分解中的重排序特征值

Reorder eigenvalues in Schur factorization in Eigen library

本文关键字:排序 分解 特征值 Schur 特征      更新时间:2023-10-16

我正在将Eigen库与Eclipse C++一起使用。我想知道是否有一种方法或函数可以用来重新排序RealSchur函数产生的Schur因子分解X=UTU',并返回重新排序的Schur矩阵TS和累积正交变换US,使得X=US*TS*US'

我想要的是类似于MATLAB函数"ordschur"的东西:http://de.mathworks.com/help/matlab/ref/ordschur.html

非常感谢。

此功能在函数DGES的LAPACK库中可用。

以下也是这个功能的帮助摘录:

DGEES computes for an N-by-N real nonsymmetric matrix A, the
eigenvalues, the real Schur form T, and, optionally, the matrix of
Schur vectors Z.  This gives the Schur factorization A = Z*T*(Z**T).
Optionally, it also orders the eigenvalues on the diagonal of the 
real Schur form so that selected eigenvalues are at the top left.
The leading columns of Z then form an orthonormal basis for the
invariant subspace corresponding to the selected eigenvalues.
A matrix is in real Schur form if it is upper quasi-triangular with
1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in the
form
         [  a  b  ]
         [  c  a  ]
where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).

还有一个C版本的LAPACK可用,它被称为CLABACK