2015-04-02 101 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