我需要计算python中的特征值和特征向量。 numpy和scipy不起作用。他们都写Illegal instruction (core dumped)
。我发现要解决这个问题,我需要检查我的blas/lapack。所以,我认为可能更简单的方法是编写/寻找解决特征值问题的小函数。有谁知道这种解决方案是否存在?如何找到没有numpy和scipy的特征向量和特征值?
1
A
回答
2
任何有效的解决方案都会在内部使用相同的blas/lapack库。我仍然认为解决你的库问题不会那么困难。
但是如果你觉得它更容易,你可以实现你自己的http://en.wikipedia.org/wiki/List_of_numerical_analysis_topics#Eigenvalue_algorithms。
我想最容易实现的将是power algorithm,但怀疑它会有效。
0
编写一个解决特征值问题的程序大约是修复库不匹配问题的100倍。
2
您可以使用sympy(python计算机代数系统)在不使用本机库的情况下使用Berkowitz方法解决特征值问题。这并不快,但如果你有少量的小矩阵,那就不成问题了。
例子:
>>> from sympy import Matrix
>>> m = Matrix([[10,2,3], [3,12,5], [5,5,8]])
>>> print m.eigenvals()
# this gets the eigenvalues along with their multiplicity
{10 - (-77/2 + sqrt(1019751)*I/18)**(1/3) - 50/(3*(-77/2 + sqrt(1019751)*I/18)**(1/3)): 1,
10 - (-77/2 + sqrt(1019751)*I/18)**(1/3)*(-1/2 + sqrt(3)*I/2) - 50/(3*(-77/2 + sqrt(1019751)*I/18)**(1/3)*(-1/2 + sqrt(3)*I/2)): 1,
10 - 50/(3*(-77/2 + sqrt(1019751)*I/18)**(1/3)*(-1/2 - sqrt(3)*I/2)) - (-77/2 + sqrt(1019751)*I/18)**(1/3)*(-1/2 - sqrt(3)*I/2): 1}
>>> print map(complex, m.eigenvals().keys())
[(8.374025140524024+2.117582368135751e-22j), (3.8835463038416105-2.117582368135751e-22j), (17.742428555634365-1.0587911840678754e-22j)]
# check with numpy
>>> import numpy as np
>>> print np.linalg.eigvals(np.array(m.tolist(), dtype=float))
array([ 17.74242856, 8.37402514, 3.8835463 ])
+0
谢谢,它的作品!我实际上设法安装numpy(通过过时的python和library版本的处理),但下次这可能会很方便。 – jdm
相关问题
- 1. cvBlobsLib的特征向量和特征值
- 2. cvBlobsLib的特征向量和特征值
- 3. 蟒蛇找到特征值和特征向量
- 4. OPENCV如何计算特征值和特征向量?
- 5. 找到与最小特征值对应的特征向量
- 6. Numpy特征向量不是特征向量?
- 7. [R特征值/特征向量
- 8. 在scikit-learn中查找和利用PCA中的特征值和特征向量
- 9. Java中的特征值和相应的特征向量
- 10. 使用Numpy的特征向量值
- 11. 使用两个最低特征值和特征向量在图中绘制numpy
- 12. Hessian矩阵的特征向量和特征值
- 13. 网格上的排序特征值和特征向量
- 14. 特征值和特征向量的方程组
- 15. SciPy - 计算对称矩阵中特定特征值的特征向量
- 16. 谱聚类特征向量和特征值
- 17. 四元精度特征值,特征向量和矩阵对数
- 18. 如何找出与矩阵的特定特征值对应的特征向量?
- 19. 如何在Matlab中给出矩阵和特征值的特征向量?
- 20. 如何计算Fortran中的第一个特征值和特征向量
- 21. 在sympy中查找特征值和特征向量返回空括号
- 22. 如何从sklearn谱聚类中获得特征值和特征向量?
- 23. 英特尔数学核心中的特征值和特征向量计算
- 24. 复数矩阵的Numpy特征值/特征向量似乎是错误的?
- 25. 特征库中的广义特征值和矢量
- 26. 如何使用Accelerate框架从矩阵中找到特征值和特征向量?
- 27. 用于C Sharp的特征向量和特征值计算的库
- 28. 如何使用R从特定的特征值中获得特征向量?
- 29. 有没有人有来自imagenet数据集的Alexnet PCA噪声的特征值和特征向量?
- 30. 复特征向量
有不止一个方法,但你们中的大多数最终会执行矩阵分解/角化和没有用于数值计算像样的图书馆,很难做一个简明的时间办法。此外,每个简单的方法都是有条件的,没有一些优化,就不能保证你会得到甚至远离真正解决方案的东西。 – zero323
我也想为此解决方案。我必须计算小矩阵的特征值(4x4),所以速度不是一个大问题。我不能使用numpy/scipy(由于技术原因,无法安装它),但仅限于纯python。我宁愿不自己实现一个算法(我也可以在纸上解决它,只是实现所得到的方程!)。必须有一个简单的片段! – jdm