0

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

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

提前谢谢了。

4

1 回答 1

0

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

这也是此功能帮助的摘录:

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 可用,称为CLAPACK

于 2016-06-09T08:56:39.300 回答