LAPACK 中的 DGGEV 或 DSYGV Eigen 求解器实现了哪种算法?是 MATLAB 使用的 'QZ' 算法吗?
http://www.netlib.org/lapack/explore-html/d9/d52/dggev_8f_source.html
http://www.netlib.org/lapack/explore-html/d5/d2e/dsygv_8f.html
有谁知道我在哪里可以找到QZ 算法(广义 Schur 分解)的实现来计算 C++ 中的特征值和 vector ?
编辑:
我实现了一些 LAPACK 例程并在这个链接中提到了一些观察结果:
https://scicomp.stackexchange.com/questions/16220/eigenvectors-matlab-vs-lapack-dggev-or-dggevx
最佳答案
MATLAB 曾经在其文档中包含 eig
函数使用的 LAPACK 例程列表,但出于某种原因决定将其删除。
这是来自 archived docs of R2009a 的表格截图:
我不能保证从那以后事情没有改变。
编辑:
qz
function 的文档页面有一个类似的 LAPACK 例程表:
作为引用,你也可以看看其他科学框架是如何实现这个功能的:
Octave:具有等效的
qz
function .这是源代码:http://hg.octave.org/octave/file/tip/libinterp/corefcn/qz.ccSciPy:还实现了 generalized Schur decomposition . You can see它最终也会调用 DGGES来自 LAPACK。
Julia:这里引用了 Julia 对 Schur decomposition 的实现。 : https://github.com/JuliaLang/julia/blob/master/base/linalg/factorization.jl#L697 , https://github.com/JuliaLang/julia/blob/master/base/linalg/lapack.jl#L3358
R:这是广义特征值问题的等效 R 包。您可以检查源代码:http://cran.r-project.org/web/packages/geigen/index.html
关于c++ - LAPACK 中的 DGGEV 或 DSYGV Eigen 求解器执行哪种算法? MATLAB使用的是 'QZ'算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808510/