我在Eclipse C ++中使用Eigen库。我想知道是否有一种方法或功能可以用来重新排序Schur分解X = U T U'由RealSchur
函数产生并返回重新排序的Schur矩阵TS和累积正交变换US,使得X = US * TS * US'
我想要的是类似于MATLAB的功能" ordschur":http://de.mathworks.com/help/matlab/ref/ordschur.html
非常感谢提前。
答案 0 :(得分:0)
此功能在函数DGEES的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).
还有一个可用的LAPACK C版本,名为CLAPACK