我需要以符号方式操作函数,然后以数字方式集成函数。如何在被积函数中正确使用我的表达式f。如果这是合理的方式,我如何正确使用lambdify?非常感谢。
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)
答案 0 :(得分:3)
lambdify
返回一个函数对象,不需要使用包装函数。另请注意,lambdify
的第一个参数应该是表示包含在sympy表达式中的sympy
符号(在本例中为r
)的变量元组(在本例中为{{ 1}})作为第二个参数提供。
f_sym
import sympy as sp from scipy.integrate import quad r = sp.symbols('r') f_sym = sp.diff(r*r, r) f_lam = sp.lambdify(r, f_sym) result = quad(f_lam, 0, 5) print(result)