2016-10-22 44 views
2

我需要以符號方式操作函數,然後對函數進行數值積分。如何在被積函數中正確使用我的表達式f。我如何正確使用lambdify?如果這甚至是明智的做法呢?非常感謝。Sympy:將符號表達式用作數字積分

from sympy import * 
import scipy.integrate as integrate 

r = symbols('r')       #define symbol 
f = diff(r*r)       #carry out symbolic manipulation 

def integrand(x):      #define function to integrate 
    return lambdify(x, f)    #swap variable x into f 

result = integrate.quad(integrand, 0, 5) #integrate numerically 
print(result) 

回答

3

lambdify返回一個函數對象,不需要使用包裝函數。還要注意,lambdify的第一個參數應該是代表sympy符號(在這種情況下爲r)的變量的元組,該符號包含在作爲其第二個參數提供的sympy表達式中(在本例中爲f_sym)。

​​

(25.0, 2.7755575615628914e-13)