我用numpy得到矩阵的特征值/特征向量。我的矩阵是对称的和正的。

> mat

  matrix([[ 1.,  1.,  0.,  0.,  0.,  0.,  0.],
          [ 1.,  2.,  0.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  1.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  0.,  2.,  1.,  1.,  0.],
          [ 0.,  0.,  0.,  1.,  2.,  1.,  0.],
          [ 0.,  0.,  0.,  1.,  1.,  1.,  0.],
          [ 0.,  0.,  0.,  0.,  0.,  0.,  1.]])


> import numpy.linalg as la
> la.eigh(mat)

  (array([ 0.27,  0.38,  1.  ,  1.  ,  1.  ,  2.62,  3.73]),
   matrix([[ 0.  , -0.85, -0.  ,  0.  ,  0.  ,  0.53,  0.  ],
          [ 0.  ,  0.53, -0.  ,  0.  ,  0.  ,  0.85,  0.  ],
          [ 0.  ,  0.  , -0.  ,  1.  ,  0.  ,  0.  ,  0.  ],
          [-0.33, -0.  , -0.71, -0.  , -0.  , -0.  , -0.63],
          [-0.33, -0.  ,  0.71, -0.  , -0.  , -0.  , -0.63],
          [ 0.89, -0.  , -0.  , -0.  , -0.  , -0.  , -0.46],
          [-0.  , -0.  , -0.  , -0.  ,  1.  , -0.  , -0.  ]]))

。。。这只是一个精确的错误,还是我遗漏了什么?

编辑:这个计算是Hubs and Authorities的一部分,上面的矩阵是A*A^T。hub分数收敛到A*A^T的主特征向量是the original paper (see p.9, p.10)的结果。最终,我们想比较这些hub分数,所以符号实际上很重要。

最佳答案

特征向量的符号是任意的。据我所知,在这方面没有对错的答案。

关于python - 多个本征向量不正确的计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21741076/

10-12 22:09