Я хотел бы построить систему дифференциальных уравнений в iPython Jupyter Notebook, где все дифференциальные уравнения неавтономны.Мне удалось успешно построить простую систему автономных уравнений с ползунками для параметров, как показано ниже:
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
from IPython.html.widgets import *
import ipywidgets as wg
from IPython.display import display
from numpy import pi
def plot_solution(a=1.,b=1.,c=1.,d=0.5):
def f(s, t):
l, p = s
dldt = a*l - b*l*p
dpdt = -c*p + d*l*p
return [dldt, dpdt]
t = np.arange(0,10*np.pi,0.01)
s0=[0.1,5]
s = odeint(f, s0, t)
plt.plot(t,s[:,0],'r-', linewidth=2.0)
plt.plot(t,s[:,1],'b-', linewidth=2.0)
plt.xlabel("day in menstrual cycle")
plt.ylabel("concentration (ng/mL)")
plt.legend(["LH","P"])
plt.show()
w = interactive(plot_solution, a=(-2.0,2.0), b=(-2.0,2.0), c=(-2.0,2.0), d=(-2.0,2.0))
display(w)
Однако я хотел бы изменить приведенный выше код, чтобы включить скольжение параметров для системы уравненийкоторые более или менее имеют вид:
dF / dt = a (1 + b (1 - E (t-1) / K) - F (t) / K) * F (t)
и система также включает в себя неавтономное уравнение для dE / dt, а другие значения в уравнении являются постоянными.Я не знаю достаточно о дифференциальных уравнениях и Python, чтобы понять, как это сделать, поэтому, если кто-то может мне помочь, это будет с благодарностью!