使用quad(scipy.integrate)和小数

时间:2015-12-10 17:12:58

标签: python scipy decimal

我需要集成一个具有很多精度的函数,例如:

from decimal import * 
from scipy.integrate import quad
getcontext().prec = 30
a = Decimal('1.1') + Decimal('1.2') 
print type(a)

def f(X):
    return quad(lambda x: X, 0, 1)[0]

b = f(a)
print "{0:.30f}".format(b), type(b)

我得到了

<class 'decimal.Decimal'>
2.300000000000000266453525910038 <type 'float'>

我想使用quad作为我的集成工具,但遗憾的是它似乎将输出转换为浮点数。我希望集成的输出具有更高的精度。我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我会考虑使用mpmath库。它支持高精度集成(http://mpmath.org/doc/0.19/calculus/integration.html)。