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)