一、模型中的人群分类
S (Susceptible),易感者,指缺乏免疫能力健康人,与感染者接触后容易受到感染;
E (Exposed),暴露者 ,指接触过感染者但暂无传染性的人,可用于存在潜伏期的传染病;
I (Infectious),患病者,指有传染性的病人,可以传播给 S,将其变为 E 或 I ;
R (Recovered),康复者,指病愈后具有免疫力的人,如是终身免疫性传染病,则不可被重新变为 S 、E 或 I ,如果免疫期有限,就可以重新变为 S 类,进而被感染。
由于个体之间的接触而导致疾病传播的概率为β,疾病仅在感染个体和易感个体之间进行接触时才会以概率β将疾病传染给易感个体。在时刻t,易感个体的比例为S(t)/N,感染个体的数量为I(t),一次,易感个体的数量将以如下变化率减少ds/dt = -β*S(t)I(t)/N
二、四类传染病模型
艾滋传染模型(SI)
普通流感模型(SIS)
急性传染病模型(SIR)及其扩展模型(SIRS)
带潜伏着的恶性传染病模型(SEIR)
1.艾滋传染模型(SI):
此情形所考虑的情形为:易感染者被感染
模型的建立:
2.普通流感模型(SIS):
由于流感病毒容易变异,所以没有能杜绝流感的体质存在,则该 模型为:感染,恢复为易感者,再感染,不断循环。
该模型与上一个模型的区别即就是感染者可以恢复为易感者,再次被感染
3.急性传染病模型及(SIR)其拓展模型(SIRS)
![](https://i-blog.csdnimg.cn/blog_migrate/87b475529117216bf22b04a946377528.png)
如果再添加一个条件:将单程变为循环型,康复者可能再一次被感染。
4. 带潜伏期的恶性传染病模型(SEIR)
这种模型刻画的传染病为:传染潜伏,确认感染,治疗康复后含抗体不再被感染(单程),如:SARS、SARI等。
进⼀步需要考虑的问题:(⾼年级学⽣建议考虑⑥ - ⑨)
三、传染病模型的求解
1.SI的求解
(1)解析解
![](https://i-blog.csdnimg.cn/blog_migrate/f6df6307dd58c984c283994b037bc6b9.png)
2.用MATLAB求解LOGISTIC模型
Matlab求常微分方程组的解析解_y=520(2sinM-sin2M)的博客-CSDN博客_matlab求解微分方程组解析解
(1)dsolve 函数
dsolve函数用于求常微分方程组的精确解,也称为常微分方程的符号解。如果没有初始条件或边界条件,则求出通解;如果有,则求出特解。
1)函数格式
Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)
其中,‘eq1,eq2,…’:表示微分方程或微分方程组;
’cond1,cond2,…’:表示初始条件或边界条件;
‘Name’:表示变量。没有指定变量时,matlab默认的变量为t;
利用dsolve函数进行求解
(2)diff函数
diff函数式用于求导数和差分的.
无论是求导数还是差分,其原理是一样的.
这里简单介绍下其用法:
对连续求导
diff(X) , 求函数X的一阶导数;
diff(X,n) , 求函数X的n阶导 (n是具体整数);
diff(X,变量名), 求函数X的偏导数(对谁求偏导数,变量名就是谁)
diff(X,变量名,n) ,求函数X的n阶偏导数。
(3)代码解析
>> syms a b y(t) y0
>> eqn=diff(y,t)==a*y*(1-b*y);
>> cond=y(0)==y0;
>> ySol(t)=dsolve(eqn,cond)
3.解的大致图像
![](https://i-blog.csdnimg.cn/blog_migrate/21338152f614bf70612774ec5f900752.png)
4.数值解
(1)ode
ode是Matlab专门用于解微分方程的功能函数。该求解器有变步长(variable-step)和定步长(fixed-step)两种类型。不同类型有着不同的求解器,其中ode45求解器属于变步长的一种,采用Runge-Kutta算法;其他采用相同算法的变步长求解器还有ode23。
ode45表示采用四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(Δx)^5。解决的是Nonstiff(非刚性)常微分方程。
ode45是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,可换用ode15s试试。
[t,y]=ode45(ode45,tspan,y0):
(2)数值解
是相对于解析解而言退而求其次的说法,或者解析解很复杂而取得足够精确的位数的解。
解析解,是指通过严格的公式所求得的解。
数值解,是指给出一系列对应的自变量,采用数值方法求出的解。
解析法是常见的微积分技巧,如分离变量法等。解析解为一封闭形式的函数,因此对任一独立变量,皆可将其代入解析函数求得正确的相依变量。因此,解析解也称为闭式解。
当无法由微积分技巧求得解析解时,便只能利用数值分析的方式来求得其数值解了,数值方法变成了求解过程重要的媒介。
(3)龙格库塔法
是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。
1)算法
2)原理
3) 程序
function [T,X,dX] = ODE_RK4( Hfun,t,h,x0 )
% [T,X] = ODE_RK4( Hfun,t,h,x0 ) 4阶龙格-库塔法求解常微分方程
% Hfun为描述状态导数的函数句柄,格式为 dX = Hfun( t,X )
% 必须保证返回dX的格式为行向量
% t为时间节点,可为标量,时间范围为 T = 0:h:t
% 长2向量 ,时间范围为 T = t(1):h:t(2)
% 向量 ,时间范围为 T = t
% h为时间步长,在t的前两种情况下,必须给出h具体值
% 直接给出时间节点t时,h可用[]或任意值占位
% x0为状态量初始值
% 算法:
% K1 = Hfun( t(k-1),X(k-1) ) = dX(k-1)
% K2 = Hfun( t(k-1)+h/2,X(k-1)+h*K1/2 )
% K3 = Hfun( t(k-1)+h/2,X(k-1)+h*K2/2 )
% K4 = Hfun( t(k-1)+h ,X(k-1)+h*K3 )
% X(k) = X(k-1) + (h/6) * (K1 + 2*K2 + 2*K3 +K4)
(4)MATLAB解析
3.SIR的求解
#传染病模型为常微分方程模型
注意
本文题目来源为上海财经⼤学数学学院