2011-05-30 43 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