may*_*wsw 2 python numpy eigenvalue
我正在使用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.]])
Run Code Online (Sandbox Code Playgroud)
我用,np.eigh 因为我的矩阵是对称的.
> 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. ]]))
Run Code Online (Sandbox Code Playgroud)
我的问题是,这些价值中的许多都有错误的标志.特别是,主要的特征向量(矩阵中最右边的列)在它应该是正的时候都是负的.我已经对matlab和octave进行了检查.这只是一个精确的错误,还是我缺少的东西?
如果是错误,有没有办法检查这样的错误并纠正它?
编辑:此计算是枢纽和权威的一部分,上面的矩阵是A*A ^ T. 这是的结果的原始文件(见第9页,第10页),该轮毂分数收敛到A*A ^ T的主本征向量.最终,我们希望将这些中心分数相互比较,因此符号实际上很重要.
在第10页,该论文还说,"另外(作为推论),如果M只有非负条目,那么M的主要特征向量只有非负条目." 这就是我问这个问题的原因.