操作方法
首先是SIR传染病模型,也就是三个微分方程,如图。其中中的S表示易感者,I表示感染者,R表示移出者。a表示易感者的感染概率,b表示感染者的恢复概率,也就是移出率。
然后是编一个模型的代码,保存为sir.m。根据ode45()函数对微分方程的形式要求, y=sir(t,x)实际上是 y'=sir(t,x), y必须是列向量(所以注意sir.m第3行末有个'号)。y(1) = dy1/dt, y(2)=dy2/dt故sir.m第3行意思就是dy1/dt = a* y1*y2-b*y1, dy2/dt= -a*y1*y2,dy3/dt=b*y1,正是sir模型方程(y1=i, y2=s,y3=r)。a和b的值可根据自己的情况设定。
再编写一个运行的m文件,可命名为sirrun.m,代码如下。ode45是求解常微分方程最常的函数。其中@sir是sir函数的句柄,[0,40]是t的范围,[0.04 0.95 0.01]分别是I、S和R的初始值。
运行的结果如下 ,其中红绿线表示S,蓝线表示I,线表示R。
运行完也会显示结果数据,由于数据较长,这里只截图一部分,如下: