Python odeint 使用方法

0 投票
2 回答
3234 浏览
提问于 2025-04-16 14:05

有人能告诉我怎么给python里的odeint函数传参数,以便计算积分吗?

我想计算从0到2的e^x的积分,但我不太确定该怎么传参数。文档对我来说不是很清楚。

谢谢

2 个回答

3

这里有一个例子,假设 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),并返回相应的导数。我在这里用了一个简单的写法,因为对 exp(t) 求导是很简单的。

1

如果你只是想计算积分,而不是解决微分方程,你也可以使用

from numpy import exp
from scipy.integrate import quad

def f(x):
    return exp(x)

result, error = quad(f, 0, 2)

撰写回答