传染病模型

  • 基础定义

将传染病范围内的人群分为以下类别:

  1. SS(Susceptible)类:指未得病,但与感染者接触后容易收到感染的人。
  2. EE(Exposed)类:指接触过感染者,但暂时没有传播的能力的人。
  3. II(Infectious)类:指染上传染病,具有传播能力的人。(可以传播给SS类人员,将其变成EE类或II类成员)
  4. RR(Recovered / Removed)类:指病愈而具有免疫力的人或被隔离的移出者。(如果免疫期有限,RR类人员可以重新变为SS类)
  • 常见模型

1. SI模型

1.1 模型假设

  1. 将人群分为SS类和II类,在疾病传播期内所考察地区的总人数KK不变(即不考虑生死和迁移)。时刻tt这两类人群人数分别记为S(t)S(t)I(t)I(t)
  2. 每个传染病患者每天有效接触的平均人数为β\beta(称为日接触率)。当传染病患者与健康人接触会将健康人感染为传染病患者。
  3. 初始时刻传染病患者人数为I0I_0

1.2 模型建立

由以上假设可建立如下的微分方程:

dI(t)dt=βI(t)S(t)KS(t)+I(t)=KI(0)=I0\begin{array}{c} {dI(t) \over dt} = \beta I(t){S(t) \over K} \\ S(t) + I(t) = K \\ I(0) = I_0 \\ \end{array}

1.3 模型求解

联立方程可得:

dI(t)dt=βI(t)(1I(t)K)\begin{array}{c} {dI(t) \over dt} = \beta I(t)(1 - {I(t) \over K}) \end{array}

进一步化简可得:

dI(t)Kdt=βI(t)K(1I(t)K)\begin{array}{c} {d{I(t) \over K} \over dt} = \beta {I(t) \over K}(1 - {I(t) \over K}) \end{array}

i(t)=I(t)K{i(t) = {I(t) \over K} },则i(t){i(t)}称为感染率。得:

di(t)dt=βi(t)(1i(t))i0=i(0)=I0K\begin{array}{c} {di(t) \over dt} = \beta i(t)(1 - i(t)) \\ i_0 = i(0) = {I_0 \over K} \end{array}

上述方程为logisticlogistic模型,其解为:

i(t)=11+eβt(1i01)\begin{array}{c} i(t) = {1 \over {1 + e^{- \beta t}({1 \over i_0} - 1)} } \end{array}

i(t){i(t)} ~ ttdi(t)dt{di(t) \over dt} ~ i(t){i(t)}的图像如下:
由上图可知,当i(t)=12{i(t) = {1 \over 2} }时,di(t)dt{di(t) \over dt}达到最大值(di(t)dt)m{({di(t) \over dt})_m},此时

tm=β1ln(1i01)\begin{array}{c} t_m = {\beta}^{-1}ln({1 \over i_0} - 1) \end{array}

2. SIS模型

1.4 模型假设

  1. 将人群分为SS类和II类,在疾病传播期内所考察地区的总人数KK不变(即不考虑生死和迁移)。时刻tt这两类人群人数分别记为S(t)S(t)I(t)I(t)
  2. 每个传染病患者每天有效接触的平均人数为β\beta(称为日接触率)。当传染病患者与健康人接触会将健康人感染为传染病患者。
  3. 每天被治愈的患者数占总患者的比率为常熟μ\mu(称为日治愈率)。病人治愈后成为仍可被感染的健康人。易知1μ{1 \over \mu}为传染病的平均传染期。
  4. 初始时刻传染病患者人数为I0I_0

1.5 模型建立

由以上假设可以建立如下微分方程:

dI(t)dt=βI(t)S(t)KμI(t)S(t)+I(t)=KI(0)=I0\begin{array}{c} {dI(t) \over dt} = \beta I(t){S(t) \over K} - \mu I(t) \\ S(t) + I(t) = K \\ I(0) = I_0 \end{array}

1.6 模型求解

联立方程可得:

dI(t)dt=βI(t)(1I(t)K)μI(t)\begin{array}{c} {dI(t) \over dt} = \beta I(t)(1 - {I(t) \over K}) - \mu I(t) \end{array}

进一步化简可得:

dI(t)Kdt=βI(t)K(1I(t)K)μI(t)K\begin{array}{c} {d{I(t) \over K} \over dt} = \beta {I(t) \over K}(1 - {I(t) \over K}) - \mu {I(t) \over K} \end{array}

i(t)=I(t)K{i(t) = {I(t) \over K} },则i(t){i(t)}称为感染率。得:

di(t)dt=βi(t)(1i(t))μi(t)\begin{array}{c} {di(t) \over dt} = \beta i(t)(1 - i(t)) - \mu i(t) \end{array}

σ=βμ{\sigma = {\beta \over \mu} },可知σ\sigma是整个传染期内每个患者有效接触的平均人数,称为接触数。得:

di(t)dt=βi(t)(i(t)(11σ))i0=i(0)=I0K\begin{array}{c} {di(t) \over dt} = -\beta i(t)(i(t) - (1 - {1 \over \sigma})) \\ i_0 = i(0) = {I_0 \over K} \end{array}

由以上方程可得SIS模型的di(t)dt{di(t) \over dt} ~ i(t){i(t)}i(t){i(t)} ~ t图像:

3. SIR模型

3.1 模型假设

  1. 将人群分为健康人(SS类)、传染病患者(II类)和病愈/死亡的移出者(RR类)(免疫期近似\infty),在疾病传播期内所考察地区的总人数KK不变。时刻tt这三类人群人数分别记为S(t)S(t)I(t)I(t)R(t)R(t)
  2. 传染病患者的日接触率为β\beta,日治愈率为μ\mu,传染期接触的总人数为σ=βμ{\sigma = {\beta \over \mu} }
  3. 初始时刻的健康人数和患者数分别为S0{S_0}I0{I_0}

3.2 模型建立

由以上假设可以建立如下微分方程:

dS(t)dt=βI(t)S(t)KdI(t)dt=βI(t)S(t)KμI(t)S(t)+I(t)+R(t)=KS(0)=S0I(0)=I0\begin{array}{c} {dS(t) \over dt} = -\beta I(t){S(t) \over K} \\ {dI(t) \over dt} = \beta I(t){S(t) \over K} - \mu I(t) \\ S(t) + I(t) + R(t) = K \\ S(0) = S_0 \\ I(0) = I_0 \end{array}

s(t)=S(t)K{s(t) = {S(t) \over K} },则s(t){s(t)}称为未感染率;令i(t)=I(t)K{i(t) = {I(t) \over K} },则i(t){i(t)}称为感染患病率;令r(t)=R(t)K{r(t) = {R(t) \over K} },则r(t){r(t)}称为移出率。
上述方程可进一步化简为:

ds(t)dt=βi(t)s(t)di(t)dt=βi(t)s(t)μi(t)s(t)+i(t)+r(t)=1s0=s(0)=S0Ki0=i(0)=I0K\begin{array}{c} {ds(t) \over dt} = -\beta i(t)s(t) \\ {di(t) \over dt} = \beta i(t)s(t) - \mu i(t) \\ s(t) + i(t) + r(t) = 1 \\ s_0 = s(0) = {S_0 \over K} \\ i_0 = i(0) = {I_0 \over K} \end{array}

上述方程的解析解很难解出,可以利用仿真计算帮助我们分析该模型。

3.3 模型仿真

K=10000{K = 10000}β=1{\beta = 1}μ=0.3{\mu = 0.3}s0=0.98{s_0 = 0.98}i0=0.02{i_0 = 0.02}

  1. 利用AnyLogic仿真软件仿真模型如下:
  • 仿真数据:
  • 仿真图像:
  1. 利用matlab仿真模型如下:
  • matlab代码:
1
2
3
4
5
function y = ill(t,x)
a = 1;
b = 0.3;
y = [a*x(1)*x(2) - b*x(1), -a*x(1)*x(2)]';
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ts = 0:50;
x0 = [0.02, 0.98];
[t, x] = ode45('ill', ts, x0)
figure
plot(t, x(:,1), t, x(:,2))
title("s(t)、i(t)~t图像");
xlabel("t/天");
ylabel("s(t)/i(t)");
legend("i(t)","s(t)");
grid
figure
plot(x(:,2), x(:,1))
title("i(t)~s(t)图像");
xlabel("s(t)");
ylabel("i(t)");
grid
  • 仿真数据:
  • 仿真图像:
s(t)、i(t)与t的图像 i(t)与s(t)的图像

3.4 模型分析

  1. 相轨线定义(摘自百度百科——相轨线
    对于微分方程:

dxdt=P(t,x,y)dydt=Q(t,x,y)x(t0)=x0y(t0)=y0\begin{array}{c} {dx \over dt} = P(t, x, y) \\ {dy \over dt} = Q(t, x, y) \\ x(t_0) = x_0 \\ y(t_0) = y_0 \end{array}

其解为:

x=x(t)y=y(t)\begin{array}{c} x = x(t) \\ y = y(t) \end{array}

则该组解在xOy{xOy}平面(称为相平面)所描绘的曲线即相轨线

  1. 相轨线分析
    由以上可知,s{s}~i{i}平面成为相平面,相轨线在相平面上的定义域为:

D={(s,t)s0,i0,s+i1}\begin{array}{c} D = \{ (s, t) | \, s \geq 0, i \geq 0, {s + i} \leq 1 \} \end{array}

σ=βμ{\sigma = {\beta \over \mu} }(含义同SIS模型)。
对SIR模型微分方程:

ds(t)dt=βi(t)s(t)di(t)dt=βi(t)s(t)μi(t)\begin{array}{c} {ds(t) \over dt} = -\beta i(t)s(t) \\ {di(t) \over dt} = \beta i(t)s(t) - \mu i(t) \end{array}

相除消去dt{dt},得:

dids=1σs1is=s0=i0\begin{array}{c} {di \over ds} = {1 \over \sigma s} - 1 \\ i|_{s=s_0} = i_0 \end{array}

可求得方程的解为:

i=(s0+i0)s+1σlnss0\begin{array}{c} i = (s_0 + i_0) - s + {1 \over \sigma} ln{s \over s_0} \end{array}

由方程可知SIR模型的相轨线:

分析如上曲线可得SIR模型以下性质:

  • 不论初始条件s0{s_0}i0{i_0}如何,病人终将消失,即

i=0\begin{array}{c} i_\infty = 0 \end{array}

  • 最终未被感染的健康者的比例是s{s_\infty}s{s_\infty}是方程

s0+i0s+1σlnss=0\begin{array}{c} s_0 + i_0 - s_\infty + {1 \over \sigma}ln{s_\infty \over s} = 0 \end{array}

(0,1σ){(0, {1 \over \sigma})}内的根。

  • s0>1σ{s_0 \gt {1 \over \sigma} },则i(t){i(t)}先增加后减小;当s=1σ{s = {1 \over \sigma} }时,i(t){i(t)}达到最大值

im=s0+i01σ\begin{array}{c} i_m = s_0 + i_0 - {1 \over \sigma} \end{array}

然后i(t){i(t)}单调减小且趋于0,s(t){s(t)}则单调减小至s{s_\infty}

  • s01σ{s_0 \leq {1 \over \sigma} },则i(t){i(t)}单调减小至零,s(t){s(t)}单调减小至s{s_\infty}

可以看出,1σ{1 \over \sigma}是一个阈值,当s0>1σ{s_0 \gt {1 \over \sigma} }时传染病就会蔓延,而当s01σ{s_0 \leq {1 \over \sigma} }时传染病就不会蔓延。

σ=βμ{\sigma = {\beta \over \mu} }中,人们的卫生水平越高,日接触率β\beta越小;医疗水平越高,日治愈率μ\mu越大。可知,提高医疗卫生水平有助于控制传染病的蔓延。

另外,σs=βs1μ{\sigma s = \beta s {1 \over \mu} }是传染期内一个病人传染的健康者的平均数,称为交换数,其含义为一个病人被σs{\sigma s}个健康者交换。故当s01σ{s_0 \leq {1 \over \sigma} },即σs01{\sigma s_0 \leq 1}时,必有σs1{\sigma s \leq 1},即交换数不超过1,此时病人比例i(t){i(t)}不会增加,传染病不会蔓延。

4. SIRS模型

4.1 模型假设

  1. 将人群分为健康人(SS类)、传染病患者(II类)和病愈的移出者(RR类)(免疫期近似\infty),在疾病传播期内所考察地区的总人数KK不变。时刻tt这三类人群人数分别记为S(t)S(t)I(t)I(t)R(t)R(t)
  2. 传染病患者的日接触率为β\beta,日治愈率为μ\mu,传染期接触的总人数为σ=βμ{\sigma = {\beta \over \mu} }
  3. 初始时刻的健康人数和患者数分别为S0{S_0}I0{I_0}

4.2 模型建立


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!