为什么Scipy和Np Linalg从同一个矩阵产生不同的特征值?
import numpy as np
newMat = np.array([[3,2],[1,0]])
np.linalg.eigvals(newMat)
#Eigenvalues: ([ 3.56155281, -0.56155281])
from scipy.linalg import eigh
eigvals, eigvecs = eigh(newMat)
#Eigenvalues: ([-0.30277564, 3.30277564])
字符串
2条答案
按热度按时间y53ybaqx1#
它们产生不同的值,因为您当前处于:
numpy
生成矩阵的特征值;scipy
生成矩阵 * 的特征值,假设矩阵是厄米特矩阵 *。矩阵是不是埃尔米特的,因此
scipy
的结果是不正确的。你也可以通过使用numpy.linalg.eigh
函数从numpy
生成类似的不正确特征值。6mzjoqzu2#
字符串