vals, vecs = numpy.linalg.eig([[1 , 2], [2, 1]])
print vals #Output : [ 3. -1.]
print vecs #Output : [[ 0.70710678 -0.70710678]
# [ 0.70710678 0.70710678]]
我不明白这个结果。 设矢量A是([1,2],[2,1]),我将其输入eig参数。根据输出, A * vecs应该等于vals * vec ,基于特征值和特征向量。 A * vecs和vals * vecs给出了下面的值不相同的值。为什么会这样?
>>> a.dot(vecs)
array([[ 2.12132034, 0.70710678],
[ 2.12132034, -0.70710678]])
>>> vals.dot(vecs)
array([ 1.41421356, -2.82842712])