给定以下系统:
我如何以数字方式求解系统。当我尝试解决这个问题时,我得到了错误。
/home/gideon/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:19:RuntimeWarning:>除以在double_scalars中遇到的零
/home/gideon/anaconda3/lib/python3.7/site-packages/scipy/integrate/odepack.py:247:>ODEintWarning:检测到非法输入(内部错误)。以 full_output = 1 运行以获得>定量信息。警告.warn(warning_msg, ODEintWarning)
这是我的代码
'''
x[0] : P(t). population not infected
x[1] : I(t). population Infected
k : population carrying capacity
alpha : growth rate
rho : death rate
beta : infection rate
t : time
'''
t = np.linspace(0,20,50)
fig,ax = plt.subplots(1,figsize = (10,4))
plt.suptitle('Infection Model')
def update_plot(k,alpha,rho,beta):
ax.clear()
xprime = lambda x,k,alpha,rho,beta,t: np.array([alpha*x[0]*(1-(x[0]/k))-beta*x[0]*x[1],
beta*x[0]*x[1]-rho*x[1]])
x0 = np.array([(4/5)*k,k/5])
x = odeint(xprime,x0,t,args=(k,alpha,rho,beta,))
y1 = x[:,0]
y2 = x[:,1]
ax.plot(t,y1,'b',label = 'P(t)')
ax.plot(t,y2,'g--',label = 'I(t)')
plt.legend(loc = 'best')
plt.show()
k = widgets.FloatSlider(min=1,max = 10 , value =1, description = 'K :')
alpha = widgets.FloatSlider(min=1,max = 10 , value =1, description = r'$\alpha$ :')
rho = widgets.FloatSlider(min=1,max = 10 , value =1, description = r'$\rho$ :')
beta = widgets.FloatSlider(min=1,max = 10 , value =1, description = r'$\beta $ :')
widgets.interactive(update_plot,k=k,alpha=alpha,rho=rho,beta=beta)
我正在尝试绘制系统以获取不同的参数,但我得到的图表不正确。我认为这是由于我在解决方案数组中获得的 nan 值