SIRS传染病模型求解及MATLAB实现

模型假设

1、总人数N不变。人群分为健康者、病人和移出者三类。t时刻三类人数量分别记为s(t),i(t)和r(t)。

2、病人的日接触率为\lambda,日治愈率为\mu

3、移出者康复后只有暂时免疫力,单位时间内将有\gamma的移出者丧失免疫而可能再次被感染。

模型构成

由假设1显然有 

s(t)+i(t)+r(t)=N          (1-1)

建立关于s(t),i(t)和r(t)的三个方程

\left\{\begin{matrix}i(t+\bigtriangleup t)-i(t)=\lambda s(t)\cdot i(t)\cdot \bigtriangleup (t)-\mu i(t)\cdot \bigtriangleup (t) \\ s(t+\bigtriangleup t)-s(t)=-\lambda s(t)\cdot i(t)\cdot \bigtriangleup (t)+\gamma r(t)\cdot \bigtriangleup (t) \\ r(t+\bigtriangleup t)-r(t)=\mu i(t)\cdot \bigtriangleup (t)-\gamma r(t)\cdot \bigtriangleup (t) \end{matrix}\right.          (1-2)

记初始时刻的健康人、病人和移出者人的比例分别是s_{0}(s_{0}>0)i_{0}(i_{0}>0)r_{0}(r_{0}>0),则SIRS模型的方程可以写作

\left\{\begin{matrix} \frac{\mathrm{d} s}{\mathrm{d} t}=-\lambda si+\gamma r \\\frac{\mathrm{d} i}{\mathrm{d} t}=\lambda si-\mu i \\\frac{\mathrm{d}r }{\mathrm{d} t}=\mu i-\gamma r \end{matrix}\right.           (1-3)

方程(1-3)中无法求出s(t),i(t)和r(t)的解析解,我们先作稳定性分析。

稳定性分析

由于s(t)+i(t)+r(t)=N是一个常数,所以令r=N-s-i,则式(1-3)可以降阶为

\left\{\begin{matrix} \frac{\mathrm{d} s}{\mathrm{d} t}=-\lambda si+\gamma N-\gamma s-\gamma i \\ \frac{\mathrm{d} i}{\mathrm{d} t}=\lambda si-\mu i \end{matrix}\right.          (1-4)

引理1 令\Omega =\begin{Bmatrix}(s,i):s\geq 0,i\geq 0,s+i\leqslant 1 \end{Bmatrix},则\Omega为方程(1-4)的正向不变集。

定义阈值\theta =\frac{\lambda N}{\mu }=\frac{0.1}{0.1}=1,可以得到如下关于平衡点稳定性的结论:

定理1 如果\theta \leqslant 1,则方程(1-4)只有疾病消除平衡点E_{0}(N,0),并且是全局渐进稳定的。

定理2 如果\theta > 1,则方程(1-4)存在唯一的,且全局渐进稳定的地方平衡点E_{1}(s^{*},i^{*}),其中s^{*}=\frac{\mu }{\lambda }  ,i^{*}=\frac{\gamma (N-s^{*})}{\mu +\gamma }。                      

模型优化

       根据阈值的定义和以上2个定理,就某一地区而言,当所研究的传染病的传染力不是很强,即传染率\lambda满足\lambda \leqslant \frac{\mu }{N}时,由疾病消除平衡点的全局稳定性可知传染病最终会在该地区消除的;而当所研究的传染病的传染力较强,即传染率\lambda满足\lambda> \frac{\mu }{N}时,由正平衡点的全局稳定性可知传染病会在该地区蔓延下去,成为地方病。希望通过采取人为的措施,即对传染病的动力系统进行有效的控制,使 \lambda> \frac{\mu }{N}时系统的疾病消除平衡点 E_{0}(N,0)具有很好的全局性态,这样疾病将最终消除,为此考虑如下的方程:

\left\{\begin{matrix} \frac{\mathrm{d} s}{\mathrm{d} t}=-\lambda si+\gamma N-\gamma s-\gamma i \\ \frac{\mathrm{d} i}{\mathrm{d} t}=\lambda si-\mu i+u(s,i) \end{matrix}\right.          (1-5)

其中u(s,i)为控制项。

如果只考虑对染病者施加控制,在医学上一般采用的方法有2种:一种是用有效的药物对染病者进行治疗;另一种是将染病者隔离起来以避免染病者与易感者的接触。令k_{1}k_{2}分别表示隔离率和治愈率,考虑如下形式的控制器:u=-k_{1}\lambda si-k_{2}i

定理3对于方程(1-5),如果\lambda> \frac{\mu }{N},施加控制u=-k_{1}\lambda si-k_{2}i,且k_{1}k_{2}满足0<1-\frac{1}{\theta }\leqslant k_{1}<1k_{2}>0,则E_{0}(N,0)全局渐近稳定。

数值计算

例 在方程(1-4)中,假设N=100, \mu=0.1\gamma =0.05,则得到如下系统:

 \left\{\begin{matrix} \frac{\mathrm{d} s}{\mathrm{d} t}=-\lambda si+5-0.05 s-0.05 i \\ \frac{\mathrm{d} i}{\mathrm{d} t}=\lambda si-0.1 i+u\end{matrix}\right.          (1-6)

现分别在\lambda=0.001,\lambda=0.01时讨论其平衡点的稳定性:

       当\lambda=0.001时,\theta =\frac{\lambda N}{\mu }=\frac{0.1}{0.1}\leqslant 1,方程(1-6)只有疾病消除平衡点 E_{0}(100,0),由定理1可知E_{0}(100,0)是全局渐近稳定的。

       当\lambda=0.01时,\theta =\frac{\lambda N}{\mu }=\frac{1}{0.1}>1,由定理2可知方程(1-6)有唯一的、全局渐近稳定的地方病平衡点E_{1}(s^{*},i^{*}),其中

s^{*}=\frac{\mu }{\lambda }=10i^{*}=\frac{\gamma (N-s^{*})}{\mu +\gamma }=30

假定3 个不同的初值:(30,70),(50,50),(80,20)。

\lambda=0.001时,得到如图1的相空间曲线,由图可以看到,无论初值如何,最终都趋于E_{0}(100,0)

SIRS传染病模型求解及MATLAB实现_第1张图片 图1

 

%%子程序
function y=ill(t,x)
N=100;a=0.001;b=0.1;c=0.05;
y=[-a*x(1)*x(2)+5-c*x(1)-c*x(2),a*x(1)*x(2)-b*x(2)]';
%%运行的程序
[t,x]=ode45('ill',[0,100],[30,70]);
plot(x(:,1),x(:,2));
hold on
[t,x]=ode45('ill',[0,100],[50,50]);
plot(x(:,1),x(:,2));
hold on
[t,x]=ode45('ill',[0,100],[80,20]);
plot(x(:,1),x(:,2)); 
xlabel('s(t)');ylabel('i(t)')
legend('(30,70)','(50,50)','(80,20)')

\lambda=0.01时,得到如图2的相空间曲线,由图可以看到,无论初值如何,最终都趋于E_{1}(s^{*},i^{*})=\begin{pmatrix} 10,30 \end{pmatrix}。在这种情况下疾病不能最终被消除,成为该地区的地方病,为此考虑疾病的控制问题。

SIRS传染病模型求解及MATLAB实现_第2张图片 图2
%%子程序
function y=ill(t,x)
N=100;a=0.01;b=0.1;c=0.05;
y=[-a*x(1)*x(2)+5-c*x(1)-c*x(2),a*x(1)*x(2)-b*x(2)]';
%%运行的程序
[t,x]=ode45('ill',[0,100],[30,70]);
plot(x(:,1),x(:,2));
hold on
[t,x]=ode45('ill',[0,100],[50,50]);
plot(x(:,1),x(:,2));
hold on
[t,x]=ode45('ill',[0,100],[80,20]);
plot(x(:,1),x(:,2));
xlabel('s(t)');ylabel('i(t)')
legend('(30,70)','(50,50)','(80,20)')

\lambda=0.01时,为使疾病消除平衡点E_{0}(100,0)全局渐近稳定,需要对病人施加有效的控制,考虑如下的系统:

 \left\{\begin{matrix} \frac{\mathrm{d} s}{\mathrm{d} t}=-\lambda si+5-0.05 s-0.05 i \\ \frac{\mathrm{d} i}{\mathrm{d} t}=\lambda si-0.1 i+u\end{matrix}\right.          (1-7)

由定理3,取u=-k_{1}\lambda si-k_{2}i,并令隔离率k_{1}=0.9\geqslant 1-\frac{1}{\theta }=0.9,治愈率k_{2}=0.01,仿真得到如图3的相空间曲线。由图3可知,方程(1-7)的平衡点( 100,0) 全局渐近稳定,也就是说,当\lambda=0.01时,控制u=-k_{1}\lambda si-k_{2}i使方程(1-7)的疾病消除平衡点E_{0}(100,0)全局渐近稳定。

SIRS传染病模型求解及MATLAB实现_第3张图片 图3

                 

%%子程序
function y=ill(t,x)
N=100;a=0.01;b=0.1;c=0.05;k1=0.9;k2=0.01;
y=[-a*x(1)*x(2)+5-c*x(1)-c*x(2),a*x(1)*x(2)-b*x(2)-k1*a*x(1)*x(2)-k2*x(2)]';
%%运行的程序
[t,x]=ode45('ill',[0,100],[30,70]);
plot(x(:,1),x(:,2));
hold on
[t,x]=ode45('ill',[0,100],[50,50]);
plot(x(:,1),x(:,2));
hold on
[t,x]=ode45('ill',[0,100],[80,20]);
plot(x(:,1),x(:,2));
xlabel('s(t)');ylabel('i(t)')
legend('(30,70)','(50,50)','(80,20)')

参考文献

[1]姜启源,谢金星,叶 俊.数学模型(第四版).北京:高等教育出版社,2011

[2]陈 鑫,徐赫屿.一类具有线性传染力的 SIRS 传染病动力系统的分析与控制[J].沈阳师范大学学报:自然科学版,2012,30( 2) :28-30.

[3]廖晓昕.稳定性的数学理论及应用[M].武汉:华中师范大学出版社,2001:140-161.

你可能感兴趣的:(数学建模,SIRS传染病模型,MATLAB)