数学模型:传染病模型

传染病模型

  • 需要考虑的问题
  • 基本方法
  • 模型1
  • 模型2(SI模型)
  • 模型3(SIS模型)
  • 模型4(SIR模型)

需要考虑的问题

  • 描述传染病的传播过程
  • 分析受感染人数的变化规律
  • 预报传染病高潮到来的时刻
  • 预防传染病蔓延的手段

基本方法

不需要从医学的角度分析各种传染病的特殊机理,而是按照传播过程的一般规律建立数学模型。

模型1

感染人数i随着时间t的变化率。
思考过程:病人越多,接触的人越多,感染的人越多。由此可以得到一个所需因素:病人每天接触到的人数λ。

假设:每个病人每天有效接触(足以使人治病)人数为λ

建模: i ( t + Δ t ) − i ( t ) = λ i ( t ) Δ t i(t+Δt)-i(t)=λi(t)Δt i(t+Δt)i(t)=λi(t)Δt
由上面的模型可以得到
d i d t = λ i \frac{di}{dt}=λi dtdi=λi
i ( 0 ) = i 0 i(0)=i_0 i(0)=i0
整理得出 i ( t ) = i 0 e λ t i(t)=i_0e^{λt} i(t)=i0eλt

t→∞时得出的是i→∞,表示t趋近于无穷大时,全部的人都会得病,但是这很明显不符合实际的情况。短期可能可以使用该模型,但长期的传染病不可以使用。

模型2(SI模型)

区分已感染者(病人)和未感染者(健康人)

假设:

  • 总人数N不变,病人和健康的人的比例分别为i(t),s(t)。
  • 每个病人每天都有效接触人数为λ,且使接触的健康人治病。 [λ:日接触率]

建模 N [ i ( t + Δ t ) − i ( t ) ] = [ λ s ( t ) ] N i ( t ) Δ t N[i(t+Δt)-i(t)]=[λs(t)]Ni(t)Δt N[i(t+Δt)i(t)]=[λs(t)]Ni(t)Δt

d i d t = λ s i \frac{di}{dt}=λsi dtdi=λsi

s ( t ) + i ( t ) = 1 s(t)+i(t)=1 s(t)+i(t)=1

讲上述条件整理得到
{ d i d t = λ s i i ( 0 ) = i 0 \left\{ \begin{aligned} \frac{di}{dt}=λsi\\ i(0)=i_0\\ \end{aligned} \right. dtdi=λsii(0)=i0
以上的模型叫做:Logistic模型

简单分析:i=0时导数为0,增长率为了0,当i=1时即全部是病人时增长率也为0,符合实际情况的假设。

此模型的解为: 1 1 + ( 1 i 0 − 1 ) e − λ t \frac{1}{1+(\frac{1}{i_0}-1)e^{-λt}} 1+(i011)eλt1

数学模型:传染病模型_第1张图片

tm是传染病高潮到来时刻

模型2的缺陷:没有考虑有的病人是可以治愈的。

模型3(SIS模型)

前提: 传染病无免疫性——病人治愈成功为健康人,健康人可再次感染。
新增假设:

  • 病人每天被治愈的比例为μ,μ为日治愈率。

建模: N [ i ( t + Δ t ) − i ( t ) ] = λ N s ( t ) i ( t ) − μ N i ( t ) Δ t N[i(t+Δt)-i(t)]=λNs(t)i(t)-μNi(t)Δt N[i(t+Δt)i(t)]=λNs(t)i(t)μNi(t)Δt
其中 μ N i ( t ) Δ t μNi(t)Δt μNi(t)Δt是治愈的人数

整理得
{ d i d t = λ i ( 1 − i ) − μ i i ( 0 ) = i 0 \left\{ \begin{aligned} \frac{di}{dt}&=λi(1-i)-μi\\ i(0)&=i_0\\ \end{aligned} \right. dtdii(0)=λi(1i)μi=i0

用 σ = λ / μ 代 入 上 面 的 式 子 得 出 d i d t = − λ i [ i − ( 1 − 1 σ ) ] 用σ=λ/μ代入上面的式子得出\frac{di}{dt}=-λi[i-(1-\frac{1}{σ})] σ=λ/μdtdi=λi[i(1σ1)]
其中λ表示日接触率1/μ表示感染期[μ表示一个人一天内被治好的概率,1/μ表示平均得多久的病才会被治好],σ表示一个感染期内每个病人的有效接触人数,称为接触数。
数学模型:传染病模型_第2张图片

模型4(SIR模型)

前提: 传染病有免疫性——病人治愈后立即移除感染系统,称为移出者。
假设

  • 总人数N不变,病人、健康人和移出者的比例分别为i(t),s(t),r(t).
  • 病人的日接触率λ,日治愈率μ,接触数σ=λ/μ

建模
第一个方程还是前面模型3中治愈的方程:
N [ i ( t + Δ t ) − i ( t ) ] = λ N s ( t ) i ( t ) − μ N i ( t ) Δ t N[i(t+Δt)-i(t)]=λNs(t)i(t)-μNi(t)Δt N[i(t+Δt)i(t)]=λNs(t)i(t)μNi(t)Δt
第二个方程是健康人的变化,健康人和病人之间的变化关系:
N [ s ( t + Δ t ) − s ( t ) ] = − λ N s ( t ) i ( t ) − μ N i ( t ) Δ t N[s(t+Δt)-s(t)]=-λNs(t)i(t)-μNi(t)Δt N[s(t+Δt)s(t)]=λNs(t)i(t)μNi(t)Δt
即可得到
{ d i d t = λ s i − μ i d s d t = − λ s i i ( 0 ) = i 0 s ( 0 ) = s 0 \left\{ \begin{aligned} \frac{di}{dt}&=λsi-μi\\ \frac{ds}{dt}&=-λsi\\ i(0)&=i_0\\ s(0)&=s_0 \end{aligned} \right. dtdidtdsi(0)s(0)=λsiμi=λsi=i0=s0

此方程没有解析解,但观察上面的两个微分方程,发现右边都与t无关,两者相除左边消去dt,只研究两者变量之间的关系:
i 0 + s 0 ≈ 1 ( 通 常 r ( 0 ) = r 0 很 小 ) i_0+s_0≈1(通常r(0)=r_0很小) i0+s01r(0)=r0
可以先做数值计算,再在相平面上研究解析解性质。

设λ=1,μ=0.3,i0=0.02,s0=0.98,用MATLAB计算作图i(t),s(t)及i(s)。
数学模型:传染病模型_第3张图片相轨线的分析:
N [ s ( t + Δ t ) − s ( t ) ] = − λ N s ( t ) i ( t ) − μ N i ( t ) Δ t N[s(t+Δt)-s(t)]=-λNs(t)i(t)-μNi(t)Δt N[s(t+Δt)s(t)]=λNs(t)i(t)μNi(t)Δt

即可得到
KaTeX parse error: Expected group after '\right' at end of input: …ligned} \right

求解出相轨线为
i ( s ) = ( s 0 + i 0 ) − s + 1 σ l n s s 0 i(s)=(s_0+i_0)-s+\frac{1}{σ}ln\frac{s}{s_0} i(s)=(s0+i0)s+σ1lns0s
在这里插入图片描述可以发现i是由一个最大值,在s=1/σ的时候达到。

  • s0>1/σ时i(t)先上升后下降至0 [传染病蔓延]
  • s0<1/σ时i(t)单调降至0 [传染病蔓延]

传染病不蔓延的条件——s0<1/σ

预防传染病蔓延的手段:

  • 提高阈值:降低σ(λ/μ)
    →降低λ(日接触率):隔离
    →提高μ:提高医疗水平
  • 降低s0
    s0+i0+r0=1,i0为感染比例,使得s0下降的方法就应该为提高r0,也就是进行群体免疫(打疫苗)。

通过具体数据观察病情蔓延变化:
数学模型:传染病模型_第4张图片数学模型:传染病模型_第5张图片
σ的估计
( s 0 + i 0 ) − s ∞ + 1 σ l n s ∞ s 0 (s_0+i_0)-s_∞+\frac{1}{σ}ln\frac{s_∞}{s_0} (s0+i0)s+σ1lns0s
刚刚开始的时候忽略i0,估计σ
σ = l n s 0 − l n s ∞ s 0 − s ∞ σ=\frac{lns_{0}-lns_∞}{s_0-s_∞} σ=s0slns0lns

被传染者比例估计
数学模型:传染病模型_第6张图片

你可能感兴趣的:(数学建模)