【问题标题】:Diagonalization hermitian matrices julia vs fortran对角化厄米矩阵 julia vs fortran
【发布时间】:2014-07-01 22:57:05
【问题描述】:

我有一个用 Fortran 和 Julia 编写的程序,其中一种情况是我有对称矩阵 我得到的结果或多或少与这两个程序相似。当我切换到我有厄米矩阵的情况时,Julia 中的程序和 Fortran 中的程序给了我不同的东西。我猜可能差异来自对角化过程,在我使用的 Fortran 中:

ZHEEVD(..)

在 Julia 中我只是使用:

eig(matrix)

我注意到的第一件事是ZHEEVD 将特征向量矩阵的第一行固定为实数(没有虚部),而eig 将最后一行固定为实数。

知道如何克服这些微小的差异吗?在处理 julia 的线性代数内置时,还有什么有用的信息吗?

【问题讨论】:

    标签: fortran90 numerical-methods lapack julia


    【解决方案1】:

    深入研究 Julia 方法(@less 宏对此非常方便),您会发现它最终调用了 LAPACK.syevr! 方法,在 Complex128 情况下为 is a wrapper for the ZHEEVR LAPACK method(向下滚动有点看实际定义)。

    如果您想继续使用ZHEEVD,可以通过ccall 接口访问它:请参阅Calling C and Fortran code 的手册部分。上面链接的 LAPACK 包装器应该提供大量示例(LAPACK 是 OpenBLAS 的一部分,它包含在 Julia 中,因此您不需要安装其他任何东西)。

    【讨论】:

      猜你喜欢
      • 2013-04-06
      • 2022-01-25
      • 1970-01-01
      • 2020-09-06
      • 2015-06-15
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多