使用ddeint函数求解, 时延微分方程 (dde):
$$\frac{dx(t)}{dt}=x(t)(1-x(t-\tau))$$
其中 $\tau>0$
import numpy as np
import matplotlib.pyplot as plt
from ddeint import ddeint
t_final=50
x_init=0.1
delay=2
tau=delay
def values_before_zero(t):
return x_init
def values_before_zero_delay(t):
return x_init
def logesticfunc(Y, t, tau):
return Y(t)*(1-Y(t-tau))
t_bin=int((t_final-delay-0.1*t_final)*10+1)
tlist=np.linspace(0.1*t_final+delay, t_final, t_bin)
x=ddeint(logesticfunc, values_before_zero, tlist, fargs=(tau,))
tdlist=np.linspace(0.1*t_final, t_final-delay, t_bin)
xd=ddeint(logesticfunc, values_before_zero_delay, tdlist, fargs=(tau,))
plt.ion()
fig=plt.figure(figsize=(40,10))
ax1=fig.add_subplot(121)
ax1.plot(tlist,x)
ax1.set_xlabel('t')
ax1.set_ylabel('x(t)')
ax2=fig.add_subplot(122)
ax2.plot(x,xd)
ax2.set_xlabel('tx')
ax2.set_ylabel('x(t-tau)')