由numpy.linalg.eig创建的特征向量似乎不正确 [英] eigenvectors created by numpy.linalg.eig don't seem correct
本文介绍了由numpy.linalg.eig创建的特征向量似乎不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建一个任意的2x2矩阵:
I create an arbitrary 2x2 matrix:
In [87]: mymat = np.matrix([[2,4],[5,3]])
In [88]: mymat
Out[88]:
matrix([[2, 4],
[5, 3]])
我尝试使用numpy.linalg.eig计算特征向量:
I attempt to calculate eigenvectors using numpy.linalg.eig:
In [91]: np.linalg.eig(mymat)
Out[91]:
(array([-2., 7.]),
matrix([[-0.70710678, -0.62469505],
[ 0.70710678, -0.78086881]]))
In [92]: eigvec = np.linalg.eig(mymat)[1][0].T
In [93]: eigvec
Out[93]:
matrix([[-0.70710678],
[-0.62469505]])
我将特征向量之一与矩阵相乘,期望结果是一个向量,该向量是特征向量的标量倍数.
I multiply one of my eigenvectors with my matrix expecting the result to be a vector that is a scalar multiple of my eigenvector.
In [94]: mymat * eigvec
Out[94]:
matrix([[-3.91299375],
[-5.40961905]])
但是不是.谁能告诉我这里出了什么问题?
However it is not. Can anyone explain to me what is going wrong here?
推荐答案
查看全文