我需要計算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