为什么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])
答案 0 :(得分:3)
因为您目前正在制作不同的值:
numpy
生成矩阵的特征值; scipy
生成矩阵的特征值,假设矩阵是hermitian 。矩阵不埃尔米特,因此scipy
结果不正确。
您也可以使用numpy
函数从numpy.linalg.eigh
生成类似的错误特征值。