Python 使用四元(scipy.integrate)和小数

Python 使用四元(scipy.integrate)和小数,python,scipy,decimal,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) 我得到 &

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

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'>

2.300000000000000266453525910038 

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

我将考虑使用该库。它支持高精度集成()
quad
是QUADPACK的包装,QUADPACK是使用双精度浮点编写的Fortran代码。