文档说,特征值根据其多重性重复,并且不排序。当我打印w时,它会给我[5,3,5,1]。为什么特征值按此顺序出现。特征向量的存储顺序是什么?和特征值一样吗?
B = np.array([[5,-2,6,-1],[0,3,-8,0],[0,0,5,4],[0,0,0,1]])
print(B)
print(B.shape)
w, v= np.linalg.eig(B)
print("eigenvalues are: ", w)
答案 0 :(得分:0)
是的,特征向量的顺序相同,您可以通过在代码中仅添加两行来验证这一点
import numpy as np
B=np.array([[5,-2,6,-1],[0,3,-8,0],[0,0,5,4],[0,0,0,1]])
print(B)
print(B.shape)
w,v= np.linalg.eig(B)
print("eigenvalues are: ", w)
for i in range(4):
print (np.dot((B-w[i]*np.eye(4)),v[:,i]))
就多重性概念而言,单个特征值可以与多个线性独立的特征向量相关联。您可以阅读有关此here
的更多信息答案 1 :(得分:0)
documentation提供了有关特征向量的以下信息。
归一化(单位为“长度”)特征向量,使得v [:,i]列是对应于特征值w [i]的特征向量。
换句话说,特征值的顺序原则上是任意的。但是无论特征值的顺序如何,该顺序都将与特征向量匹配。
您可以通过计算B
对v
的列向量的应用来验证特征值和特征向量顺序是否匹配。在代码中,
for i in range(B.shape[0]):
# Apply B to the eigenvectors
scaled = np.dot(B, v[:, i])
# Check that applying B only applies a scaling to the eigenvector
np.testing.assert_allclose(scaled, w[i] * v[:, i])