решение пары итерированных дифференциальных уравнений - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть пара дифференциальных уравнений, которые я научился решать:

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

, где r, b, g - константы (нет предположения о r, но b иг положительны).Итак, мой код для решения этих проблем:

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 для решения дифференциальных уравнений для dcdt [i] для i до 6. Я хочу это, потому что я хочу изменить уравнения так, чтобыdcdt [i] может зависеть от dcdt [i-1] или dcdt [i + 1] и т. д.

Может кто-нибудь помочь мне, пожалуйста?Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...