2015-06-11 82 views
1

可以使用sympy集成自定义函数吗?将自定义函数与sympy集成

我想是这样的:

def func(x, y): 
    return something_with(x, y) 

res = integrate(func, (y, x-2, 3), (x, 1, 2)) 

这可能吗?

+0

您可以继承'Function'。 –

回答

1

您可以将一些功能与sympy's integrate集成在一起。假设你有函数(一个变量,使其更简单)

def my_func(x): 
    return x**2 + x + 1 

然后,你可以用

x = Symbol('x') 
integrate(my_func(x), (x, a, b)) 

它集成虽然只有有限的数学函数是有可能的工作。

如果你只关心数字的答案,你可以尝试scipyintegrate.quad()(或scipy.integrate.dblquad()),这将做数值积分,并且可以在小误差范围内解决更广泛的功能。

scipy.integrate.quad(my_func, a, b) 
+0

嗨,是否有任何方法来处理积分的变量边界?类似于这样的东西:http://stackoverflow.com/questions/30758933/double-integral-with-variable-boundaries-in-python-scipy-sympy – gc5

+0

我假设你的意思与科学这与scipy这是涵盖在问题中你链接,你需要数字整合?我还没有遇到过使用数字集成的方法,但您可以尝试将其转换为迭代集成,然后使用'integrate.quad()'两次,但可能会很慢。如果你需要数值和可变边界,我会建议问另一个问题,或者可能指定一些关于你的函数的更多信息。 – camz

+1

哦,那是你的问题!没有发现这一点。 – camz