我想要一个自定义的python函数:
f(x)
,积分x1,x2
和期望容差的范围tol
sympy.integrate(y, x)
检查是否有解析/符号解决方案,如果有,则使用sympy.integrate(y, (x,x1,x2).evalf())
sympy
之外的分析解决方案,那么它会使用scipy.integrate.quad
或other numerical functions来计算积分。原因在于,使用这种方法,它可能更快,更准确,因为我使用的大多数数学表达式都具有分析积分。
但我有一些问题
scipy.integrate.quad
和sympy.integrate
两种截然不同的功能形式。 scipy采用python def y(x): return f(x)
或lambda y=lambda x: f(x)
函数。但同情采用mathematica表达式y=f(x)
,其中x
已由sympy.Symbol('x')
表示。我需要找到一种方法将一个同情符号数学表达式转换为python / lambda函数,反之亦然。evalf()
中的容忍度。我认为scipy.integrate.quad
可以通过epsabs
输入来控制容差吗?如果您能告诉我是否可行以及如何做,我将不胜感激。