2011-03-20 132 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