2015-06-11 65 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