对角化的hermitian matrices julia vs fortran

时间:2014-07-01 22:57:05

标签: fortran90 numerical-methods lapack julia

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

ZHEEVD(..)

而在朱莉娅,我只是使用:

eig(matrix)

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

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

1 个答案:

答案 0 :(得分:1)

深入研究Julia方法(@less宏非常方便),你会发现它最终会调用LAPACK.syevr!方法,Complex128 { {3}}(向下滚动一下以查看实际定义)。

如果您希望继续使用ZHEEVD,可以通过ccall界面访问它:请参阅is a wrapper for the ZHEEVR LAPACK method上的手册部分。上面链接的LAPACK包装器应该提供大量示例(LAPACK是OpenBLAS的一部分,它包含在Julia中,因此您不需要安装任何其他内容)。