我有一个非常简单的问题。它与计算误差有关。在
让我做一个矩阵a在特征向量V和对角特征值D中的本征分解,并用V ^-1*D*V的乘法重新构造它
得到的值与A相差甚远,误差较大。在
我想知道我是否使用了不正确的函数来完成这个任务,或者至少,我如何减少这个错误。提前谢谢你
in[1]:import numpy
from scipy import linalg
A=matrix([[16,-9,0],[-9,20,-11],[0,-11,11]])
D,V=linalg.eig(A)
D=diagflat(D)
matrix(linalg.inv(V))*matrix(D)*matrix(V)
out[1]:matrix([[ 15.52275377, 9.37603361, 0.79257097],
[9.37603361, 21.12538282, -10.23535271],
[0.79257097, -10.23535271, 10.35186341]])
这不是在倒退吗?
A*V = V*D
来自定义,所以A = V*D*V^(-1)
。在但是
^{pr2}$旁白:有recipes用于使用
np.dot
来避免所有这些转换为矩阵,比如我经常觉得更干净,但是YMMV。在
相关问题 更多 >
编程相关推荐