求解一对迭代微分方程

时间:2018-11-28 18:30:41

标签: python iteration differential-equations

我有一对微分方程,我已经学会了如何求解:

dc/dt=r*c+c^2-c^3-b*c*u,
du/dt=-g*u+(b*c*u)/2,

其中r,b,g是常数(没有假设r,但b和g是正数)。所以我解决这些的代码是:

from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plt


b=2
g=0.1

def func(z,t):
    c = z[0]
    u = z[1]
    dcdt = r*c+c**2-c**3-b*c*u**2
    dudt = -g*u+0.5*b*c*u
    return [dcdt,dtaudt]

#inital conditions
z0 = [1,0.2] #u[0] =!0.0

#time points
t = np.linspace(0,20,100)

#solve ODE
z = odeint(func,z0,t)

#seperating answers out

c = z[:,0]
u = z[:,1]

我希望这是正确的方法。如果没有,请让我知道我的错误。我有两个问题。

  1. 有什么方法可以使我的函数依赖于(c,u,t)而不是(z,t)?
  2. 我需要迭代这些方程式。所以我需要一个变量n=6

我们可以在python上为i求解dcdt [i]的微分方程,直到6。我想要这样做是因为我想更改方程,以便dcdt [i]可能取决于dcdt [i-1]或dcdt [i + 1]等。

有人可以帮我吗?预先感谢。

0 个答案:

没有答案