python numpy 特征值 特征向量 算的不对啊,求救!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python numpy 特征值 特征向量 算的不对啊,求救!相关的知识,希望对你有一定的参考价值。

import numpy as npx= np.mat([[4,-1,-1,-1,-1,0,0,0],[-1,3,-1,0,0,-1,0,0],[-1,-1,3,-1,0,0,0,0],[-1,0,-1,3,0,0,0,-1],[-1,0,0,0,2,0,0,-1],[0,-1,0,0,0,2,-1,0],[0,0,0,0,0,-1,2,-1],[0,0,0,-1,-1,0,-1,3]])a,b=np.linalg.eig(x)

python 算的结果 不对啊
有没有人 知道怎么回事?

print np.round(a,1)

参考技术A 看了半天,是一致的啊,你把python算的结果保留两位有效数字再看看追问

最小特征值应该是0
并没有。。。
特征向量也不对应

为啥用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃?

【中文标题】为啥用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃?【英文标题】:Why calculations of eigenvectors of a 2 by 2 matrix with numpy crashes my Python session?为什么用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃? 【发布时间】:2013-10-06 08:40:20 【问题描述】:

我尝试执行以下操作:

import numpy as np
from numpy import linalg as la
w, v = la.eig(np.array([[1, -1], [1, 1]]))

因此,python 会话崩溃并显示以下消息:

Illegal instruction (core dumped)

我尝试使用 scipy 而不是 numpy。结果是一样的。

【问题讨论】:

你应该检查你的 blas/lapack 安装。 “非法指令”表示您安装了支持 SSE/SSE3 的二进制文件,而您的 CPU 不支持这些功能。 【参考方案1】:

我怀疑你的 python/numpy/scipy 安装有问题,因为当我尝试它时我没有问题。

Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> from numpy import linalg as la
>>> w, v = la.eig(np.array([[1, -1], [1, 1]]))
>>> w
array([ 1.+1.j,  1.-1.j])
>>> v
array([[ 0.70710678+0.j        ,  0.70710678+0.j        ],
       [ 0.00000000-0.70710678j,  0.00000000+0.70710678j]])
>>> 

我建议您尝试全新安装。

【讨论】:

以上是关于python numpy 特征值 特征向量 算的不对啊,求救!的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中查找特征值/向量的最快方法是啥?

numpy求解特征值和特征向量

用 numpy 计算 k 个最大特征值和相应特征向量的最快方法

线代&NumPy第八章 - 特征值和特征向量 | Eigenvalue and Eigenvector | 简述并提供代码

转:numpy.linalg.eig() 计算矩阵特征向量

python与数据分析Numpy数值计算基础——补充