传染病模型

2022-03-16 15:58:32 浏览数 (1)

  • 基础定义

将传染病范围内的人群分为以下类别:S (Susceptible) 类:指未得病,但与感染者接触后容易收到感染的人。E (Exposed) 类:指接触过感染者,但暂时没有传播的能力的人。I(Infectious) 类:指染上传染病,具有传播能力的人。(可以传播给S 类人员,将其变成E 类或I 类成员)R (Recovered / Removed) 类:指病愈而具有免疫力的人或被隔离的移出者。(如果免疫期有限,R 类人员可以重新变为S 类)

  • 常见模型

1. SI 模型

1.1 模型假设

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

1.2 模型建立

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

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 模型求解

联立方程可得:

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

进一步化简可得:

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) over K} } ,则{i(t)} 称为感染率。得:

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

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

begin{array}{c} i(t) = {1 over {1 e^{- beta t}({1 over i_0} - 1)} } end{array}

{i(t)}~ t{di(t) over dt} ~ {i(t)} 的图像如下:

由上图可知,当{i(t) = {1 over 2} },{di(t) over dt} 达到最大值{({di(t) over dt})_m} ,此时

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

2. SIS 模型

1.4 模型假设

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

1.5 模型建立

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

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 模型求解

联立方程可得:

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

进一步化简可得:

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) over K} } ,则{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 是整个传染期内每个患者有效接触的平均人数,称为接触数。得:

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) over dt} ~ {i(t)}{i(t)} ~ t 图像:

3. SIR 模型

3.1 模型假设

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

3.2 模型建立

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

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) over K} } ,则{s(t)} 称为未感染率;令{i(t) = {I(t) over K} } ,则{i(t)} 称为感染患病率;令{r(t) = {R(t) over K} } ,则{r(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) \ 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}{beta = 1}{mu = 0.3}{s_0 = 0.98}{i_0 = 0.02}

  1. 利用 AnyLogic 仿真软件仿真模型如下:
  • 仿真数据:
  • 仿真图像:
  1. 利用 matlab 仿真模型如下:
  • matlab 代码:
代码语言:javascript复制
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 
代码语言:javascript复制
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

3.4 模型分析

  1. 相轨线定义(摘自百度百科 —— 相轨线) 对于微分方程:
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}

其解为:

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

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

  1. 相轨线分析 由以上可知,{s} ~{i} 平面成为相平面,相轨线在相平面上的定义域为:
begin{array}{c} D = { (s, t) | , s geq 0, i geq 0, {s i} leq 1 } end{array}

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

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} ,得:

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

可求得方程的解为:

begin{array}{c} i = (s_0 i_0) - s {1 over sigma} ln{s over s_0} end{array}

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

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

  • 不论初始条件{s_0}{i_0} 如何,病人终将消失,即
begin{array}{c} i_infty = 0 end{array}
  • 最终未被感染的健康者的比例是{s_infty}{s_infty} 是方程
begin{array}{c} s_0 i_0 - s_infty {1 over sigma}ln{s_infty over s} = 0 end{array}

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

  • {s_0 gt {1 over sigma} } ,则{i(t)} 先增加后减小;当{s = {1 over sigma} },{i(t)} 达到最大值
begin{array}{c} i_m = s_0 i_0 - {1 over sigma} end{array}

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

  • {s_0 leq {1 over sigma} } ,则{i(t)} 单调减小至零,{s(t)} 单调减小至{s_infty}

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

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

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

4. SIRS 模型

4.1 模型假设

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

4.2 模型建立

0 人点赞