在python中设置odes

时间:2013-05-25 07:57:46

标签: python numpy ode

如何在python中使用相应的初始条件设置以下odes?

  

x'(t) =x(t) - y(t) - e^t

     

y'(t) =x(t) + y(t) + 2e^t

     

x(0)= -1y(0)= -1以及0 <= t <= 4

以下是我目前的情况:

def f(u, t):
    x, y = u
    return [x+y-e**t, x+y+2*e**t]

x0, y0 = [-1.0,-1.0]
t = numpy.linspace( 0,4,50 )

1 个答案:

答案 0 :(得分:1)

我猜你正试图用odeint来解决它们。首先,我假设您在脚本中使用此序言:

import numpy as np
from scipy.integrate import odeint

你的等式是:

def equation(X, t):
    x, y = X
    return [ x+y-np.exp(t), x+y+2*np.exp(t) ]

然后你可以用

来解决它们
init = [ -1.0, -1.0 ]
t = np.linpsace(0, 4, 50)
X = odeint(equation, init, t)

您可以使用

提取x(t)和y(t)
x = X[:, 0]
y = X[:, 1]