Matlab的eig()和eigs()函数的numpy等价物

时间:2018-07-09 14:32:54

标签: matlab numpy scipy

等于

的numpy或scipy是什么
[V, D]= eig(A,-B)

还有

[V, D]= eigs(A,-B, 60, ‘SM')

2 个答案:

答案 0 :(得分:2)

我相信您正在寻找的是:numpy.linalg.eig()numpy.linalg.eigh(),但是还有scipy个对应的scipy.linalg.eig()scipy.linalg.eigh(),它们可能会被汇编行为和性能略有不同。

答案 1 :(得分:1)

看看scipy.linalg.eigscipy.sparse.linalg.eigs

import scipy.linalg as la
import scipy.sparse.linalg as sla

# Matlab: [V, D] = eig(A, -B)
D, V = la.eig(A, -B)

# Matlab: [V, D]= eigs(A, -B, 60, ‘SM')
D, V = sla.eigs(A, 60, -B, which='SM')

请注意,通常您不会获得完全相同的结果。特征值的顺序可能不同,特征向量的缩放比例也可能不同(特征向量不是唯一的)。

相关问题