给出下列方程组:
$$\frac{dP}{dt} = \alpha P(1-\frac{P}{K}) -\βP$
$$\frac{dI}{dt} =\βdI \rho I$
给了我一个数值求解系统的任务,并绘制了变参数的求解图。但出于某种原因我得到了这个错误
/home/gideon/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:16: /home/gideon/anaconda3/lib/python3.7/site-packages/scipy/integrate/odepack.py:247: RuntimeWarning:除以double_scalars app.launch_new_instance()中遇到的零,/home/gideon/anaconda3/lib/python3.7/site-packages/scipy/integrate/odepack.py:247: ODEintWarning:检测到非法输入(内部错误)。使用full_output =1运行以获得数量信息。warnings.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
'''
k = 2
alpha = 2
rho = 1
beta = 5
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])
t = np.linspace(0,20,50)
x = odeint(xprime,x0,t,args=(k,alpha,rho,beta,))
y1 = x[:,0]
y2 = x[:,1]
plt.plot(t,y1,'b',label='P(t)')
plt.plot(t,y2,'g--',label='I(t)')
plt.legend()
plt.xlabel('time')
plt.show()发布于 2021-04-05 07:08:13
不介意,我明白了。问题是,变量必须在参数之前定义。
https://stackoverflow.com/questions/66554900
复制相似问题