2015-04-02 102 views
0

我正在使用Eigen库和Eclipse C++。我想知道是否有一种方法或函数可用于重新排序由RealSchur函数产生的Schur分解U',并返回重排的Schur矩阵TS和累积正交变换US,使得X = US * TS *美国”重新排列特征库中Schur因子分解的特征值

我想要的是类似功能的MATLAB “ordschur” 的东西:http://de.mathworks.com/help/matlab/ref/ordschur.html

提前非常感谢。

+0

我怀疑这个功能存在于这一刻。您可能需要使用std :: sort自行重新排序。 – kevin 2015-11-12 00:34:22

+0

我正在开发一个开源库,我正在寻找相同的功能来解决Riccati方程。你到目前为止是否找到任何代码? – ar2015 2016-01-29 22:03:39

回答

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