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



numpy 或 scipy 的等价物是什么

[V, D]= eig(A,-B)

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

看看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')

请注意,通常不会得到完全相同的结果。 特征值可能采用不同的顺序,特征向量可能具有不同的缩放比例(特征向量不是唯一的(。

我相信你正在寻找的是:numpy.linalg.eig()numpy.linalg.eigh(),但也有一些scipy对应物scipy.linalg.eig()scipy.linalg.eigh()可能被编译提供略有不同的行为和性能。

最新更新