不需要从医学的角度分析各种传染病的特殊机理,而是按照传播过程的一般规律建立数学模型。
感染人数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趋近于无穷大时,全部的人都会得病,但是这很明显不符合实际的情况。短期可能可以使用该模型,但长期的传染病不可以使用。
区分已感染者(病人)和未感染者(健康人)
假设:
建模 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+(i01−1)e−λt1
tm是传染病高潮到来时刻
模型2的缺陷:没有考虑有的病人是可以治愈的。
前提: 传染病无免疫性——病人治愈成功为健康人,健康人可再次感染。
新增假设:
建模: 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(1−i)−μ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/μ表示平均得多久的病才会被治好],σ表示一个感染期内每个病人的有效接触人数,称为接触数。
前提: 传染病有免疫性——病人治愈后立即移除感染系统,称为移出者。
假设
建模
第一个方程还是前面模型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+s0≈1(通常r(0)=r0很小)
可以先做数值计算,再在相平面上研究解析解性质。
设λ=1,μ=0.3,i0=0.02,s0=0.98,用MATLAB计算作图i(t),s(t)及i(s)。
相轨线的分析:
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/σ
预防传染病蔓延的手段:
通过具体数据观察病情蔓延变化:
σ的估计
( 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_∞} σ=s0−s∞lns0−lns∞