2011-05-30 79 views
4

我已經開始使用numpy以及連接UMFPACK的pysparse包,但是浮點結果與numpy存在問題。順便說一下,這是一個針對結構問題的lanczos特徵值求解器。numpy和pysparse浮點表示法問題

當我在MATLAB中做同樣的操作時,我得到了不同的結果,很好的結果是1e-6,1e-8的順序,並且用MATLAB的表示法,我得到了正確的特徵值。 NumPy和PySparse的結果也不是那麼遠,至少在訂單級別上,但是使用它們來創建一個三對角矩陣來尋找特徵值是問題的根源。我不明白髮生了什麼問題,好的問題是浮點表示,但如果可能的話如何解決這個問題?我試圖使用'Float64'作爲我的數據類型,但是這不會改變問題的結果。如

q = ones(n, dtype = 'Float64') 

一多,什麼是最成熟的稀疏包蟒蛇,並提供什麼樣的接口,如果有的話?正如所告訴的,PySparse對我來說一見鍾情...

+2

我認爲你需要提供更多的信息。你打電話給什麼功能給出不正確的結果?你如何構建這些函數的輸入值? (你可以發佈一個簡單的代碼示例來演示這個問題嗎?) – Luke 2011-07-06 01:13:44

回答

2

float64是Numpy中的默認數據類型。你可以嘗試使用float128來獲得更高的精確度,但是要注意的是某些函數(以及基本上Windows上的所有函數)都會將其強制爲float64

我會建議使用scipy.sparse爲你稀疏的特徵向量問題。我已經嘗試了PySparse和scipy.sparse,並且我會得出結論,雖然PySparse更易於使用,但scipy.sparse更加成熟。

這裏的稀疏線性代數文檔:http://docs.scipy.org/doc/scipy/reference/sparse.linalg.html