LAPACK中的DGGEV或DSYGV本征求解器执行哪种算法? 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的doc页面具有类似的LAPACK rountines表:



作为引用,您还可以查看其他科学框架如何实现此功能:

  • Octave :具有等效的 qz function。这是源代码:http://hg.octave.org/octave/file/tip/libinterp/corefcn/qz.cc
  • SciPy :还实现generalized Schur decompositionYou can see也最终从LAPACK调用DGGES
  • 朱莉娅:这是朱莉娅对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本征求解器执行哪种算法? MATLAB使用的 'QZ'算法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26808510/

    10-12 17:33