2011-03-20 131 views
0

有人能告诉我如何把python的odeint函数的参数放到积分中。Python odeint的使用

我想从0到2得到e^x的积分,但我不知道如何放入参数。这些文件对我来说都不是那么清楚。

由于

回答

1

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

from numpy import exp 
from scipy.integrate import quad 

def f(x): 
    return exp(x) 

result, error = quad(f, 0, 2) 
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)是微不足道的。

+0

你好,有没有可能你告诉我,我怎么能在一个函数中使用。我的意思是我可以定义一个像def calc(x,a,b)这样的函数:并将代码粘贴到那里?如果函数是在参数中指定的,我无法弄清楚如何在odeint中放置函数。它说x没有宣布 – Kartik 2011-03-20 23:17:50

+0

嗨Kartik,我编辑了这个例子。 – mjbommar 2011-03-20 23:47:28

+0

嗨,谢谢。我一直在玩同样的事情,但我不知道如何把其他功能..如x ** 2从0-1 .. 请查看此线程 http://stackoverflow.com/questions/5372321/python-using-lambda-within-a-function/ – Kartik 2011-03-20 23:50:33