【发布时间】:2011-03-20 21:17:02
【问题描述】:
谁能告诉我如何为python的odeint函数输入参数以获得积分。
我试图让 e^x 的积分从 0 到 2,但我不确定如何输入参数。文档对我来说不是那么清楚。
谢谢
【问题讨论】:
谁能告诉我如何为python的odeint函数输入参数以获得积分。
我试图让 e^x 的积分从 0 到 2,但我不确定如何输入参数。文档对我来说不是那么清楚。
谢谢
【问题讨论】:
这是一个假设 y(0) = 1 的示例。
import scipy
import scipy.integrate
def integrateExp(y0, a, b):
limits = [a, b]
integral = scipy.integrate.odeint(lambda y, t : scipy.exp(t), y0, limits)
return integral[1]
print integrateExp(1, 0, 2)
第一个参数应该采用 (y,t) 并返回相应的导数。我在这里使用了 lambda,因为 d/dt exp(t) 是微不足道的。
【讨论】:
如果你只想计算积分,而不是求解微分方程,你也可以使用
from numpy import exp
from scipy.integrate import quad
def f(x):
return exp(x)
result, error = quad(f, 0, 2)
【讨论】: