Sympy:将符号表达式用作数字积分

问题描述:

我需要以符号方式操作函数,然后对函数进行数值积分。如何在被积函数中正确使用我的表达式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) 

lambdify返回一个函数对象,不需要使用包装函数。还要注意,lambdify的第一个参数应该是代表sympy符号(在这种情况下为r)的变量的元组,该符号包含在作为其第二个参数提供的sympy表达式中(在本例中为f_sym)。

​​

(25.0, 2.7755575615628914e-13)