sympy 中涉及集成的函数
Functions involving integration in sympy
我想定义一个函数 f(x),然后定义另一个函数作为其积分。
from sympy import *
x = symbols('x')
f = lambda x: x**2
我想做这样的事情:
g = lambda x: integrate(f(x),x)
问题是,如果我输入
g(2)
它失败了。这是因为在我调用它之前,它保持 g(x) 的右侧未计算。它将 2 传递给积分,并尝试对 2 进行积分。
我可以强制正确的行为,如果我写:
g = lambda x: integrate(f(s),s).subs(s,x)
但这看起来真的很笨重。
有没有办法根据x符号化求积分,然后定义函数g(x) 结果呢?
使用虚拟变量 foo
定义您的 g
-- x
是您的真实变量,不能用作 lambda 变量:
>>> g = lambda foo: integrate(f(x), (x, foo))
>>> g(2)
8/3
我想定义一个函数 f(x),然后定义另一个函数作为其积分。
from sympy import *
x = symbols('x')
f = lambda x: x**2
我想做这样的事情:
g = lambda x: integrate(f(x),x)
问题是,如果我输入
g(2)
它失败了。这是因为在我调用它之前,它保持 g(x) 的右侧未计算。它将 2 传递给积分,并尝试对 2 进行积分。
我可以强制正确的行为,如果我写:
g = lambda x: integrate(f(s),s).subs(s,x)
但这看起来真的很笨重。
有没有办法根据x符号化求积分,然后定义函数g(x) 结果呢?
使用虚拟变量 foo
定义您的 g
-- x
是您的真实变量,不能用作 lambda 变量:
>>> g = lambda foo: integrate(f(x), (x, foo))
>>> g(2)
8/3