: I+ m* U# c) y, f 数学建模之传染病SIR模型(新冠真实数据) 9 r& O7 E- y$ D( Z2 e. `传染病模型的基本问题# Y" a' V4 j$ |) K6 h; K0 {9 v
描述传染病的传播过程 ) t% e; T- ]+ ~% f( l分析受感染人数的变化规律 # h; {& x1 g4 c) @7 S: X预报传染病高潮到来的时刻 : r/ {5 W9 B6 h3 T- Y$ W: l, Z预防传染病蔓延的手段) x) `( L: ?$ J3 j- F
按照传播过程的一般规律用机理分析方法建立模型 4 x1 Y# }! @, k/ w. e注:我们这里是介绍数学医学领域中基本的传染病模型。不从医学角度分析各种传染病的特殊机理,按照传播过程的规律建立微分方程模型. 2 V2 ^% i( M. V! l$ ~ - Z/ h, g* L$ l+ w! c. g5 b , Z, U7 u4 @! I4 Q# N建立模型7 V; @& [" e6 V2 H w+ J0 q
模型一) C) g/ k G1 B- i0 x6 r
假设: 9 X+ H* R2 n) F0 s& \% D 0 I: }6 q4 ]/ O H7 E* Q 5 h; |1 g- Y" T, c设已知感染人数为i ( t ) i(t)i(t)(病人数量随时间变化)! \6 V) c% i5 ?/ Z
设每个病人(单位时间)每天有效接触(足以使人治病)人数为λ \lambdaλ7 P% _) b0 A5 Q
模型:6 ^- H0 X% }/ |" \
单位时间Δ t \Delta{t}Δt内,新 增 的 人 数 ( 现 有 − 原 有 ) = 原 有 的 × λ 新增的人数(现有-原有)=原有的 \times \lambda新增的人数(现有−原有)=原有的×λ,即 7 i7 R0 Q* q5 Z: g 3 G- m6 v+ i5 W3 E+ V " @7 V: N# v! ^5 u( X" ji ( t + Δ t ) − i ( t ) = λ i ( t ) Δ t i(t+\Delta{t})-i(t)=\lambda i(t)\Delta{t}i(t+Δt)−i(t)=λi(t)Δt 3 I, A4 N0 r; W: z- H一开始的感染人数为i 0 i_0i ! v( A& L0 S& T5 |! a1 J- Z4 D0 @0# O" i" G% ^% ]4 O( [
( g! l: C! }+ I' d3 R
) d _' D7 S- X7 V1 Pi ( 0 ) = i 0 i(0)=i_0i(0)=i " X" d$ p% [8 g( d
0, h+ ?, t& S/ s
* l- s* K8 \% G0 l1 o- N$ e
, Y% h0 A; H2 C* G( F解微分方程可以得到- Q* E2 {; k0 `6 b' R$ p# W2 ^" p
i ( t ) = i 0 e λ t i(t)=i_0e^{\lambda t}i(t)=i ! M. w+ T$ {4 m# S, `. C0' L3 A& b# |6 f% i+ O. J
' ~; t9 P- c# Z, Z- V
e ( e0 i3 X) u+ j. D% H* \# {
λt9 V- u( C' x1 J! p% \* _6 S2 m( l
/ a" k" L# l% o- `6 ?
所以可以可到当λ → ∞ \lambda \rightarrow \infinλ→∞时i ( t ) → ∞ i(t) \rightarrow \infini(t)→∞ ) h# R2 { h! s, E. W2 b当然这是不可能的,因为我们考虑的因素太少了,首先一个是,若有效接触的是病人,则不能使病人数增加,所以必须区分已感染者(病人)和未感染者(健康人)看模型二来解决这个问题3 p5 K6 ?1 ?0 T1 `
4 `* a- B; o/ _
! B6 Y/ \# H+ M: f9 q" Y& h
模型二 ) |3 U8 T* g2 ?1 w" D假设: 5 F7 T5 }( x. ^6 S6 ? 7 A% M+ h: r. a! k9 P2 s# L & Z3 N! |2 n6 N" H, p2 e! t将人群分为两类:易感染者(Susceptible,健康人)和已感染者(Infective, 病人).& r. |, O: O! w' }: g
总人数N不变,时刻t健康人和病人所占比例分别为s ( t ) s(t)s(t)和i ( t ) i(t)i(t), 有s ( t ) + i ( t ) = 1 s(t)+i(t)=1s(t)+i(t)=10 N9 h; i3 N f& B4 s* I4 C
每个病人每天有效接触人数为λ \lambdaλ(日接触率),且使接触的健康人致病. ' V; e3 t+ I9 w, Z& d9 [: _建模:' F0 L3 u" D, w3 A
每天新增的总人数为原有的人数乘以每个人可以传染的健康的人数,再乘Δ t \Delta tΔt $ v% s* y7 V: R9 F1 E# L, Q+ \4 `; Y8 p: z
* ?/ }5 E% m" O: C: e1 j
Δ t \Delta tΔt除过去,两遍N约分得到下面, * V, s& q* X- Q$ f' V. } 0 d' g/ \" |* [8 B M# Q0 t1 k$ w & B+ s- n9 s0 G- f6 V9 mMATLAB解一下这个微分方程 4 u1 g0 W' w. n 8 S! p/ O3 x8 W" F2 e; Z ; {+ @% C" O6 C1 Jy=dsolve('Dy=n*y*(1-y)','t');$ \# {0 ?1 l9 g
# [$ e6 ^( g8 j6 w, ~& A3 I4 Y; V7 I& ~ * N7 `9 H' W6 V( xy = + ^+ f1 y3 j" P; c9 E7 d* ^6 U -1/(exp(C1 - n*t) - 1)' M. P, A0 d0 z3 R2 k" C
09 d! o, G$ w; L3 u
1) l P. ~3 C- Q9 l4 J5 {" d3 X
1 * X. [9 ^& ^( V; ?2* e0 _5 x2 ?4 s" P
3 ! ^% e) H# `3 o40 D4 L3 @2 U$ u+ S
5 c4 m. A0 V7 q7 X. W
6- D7 }* ~, o9 U* }& D) ^
写规范点就是这个函数 0 ^$ ^$ F: n$ \4 _/ S! N" B& T) t& ^4 M
, O" ~1 p, Z. C2 c函数图像大致为& I$ B/ e) X) \* r( \
& J" {( v7 o% T5 E4 u. C
% X. J l7 k% l& s: Z可以看出t = t m t=t_mt=t " p# b; p% `3 ]2 Am ' v+ m5 i a& n7 B( s0 x9 N ! @/ Q" U& k0 X8 M
时这里图像的斜率有个最大值,其也就是传染的最快的时候,即传染病的高潮时刻,当然t m t_mt 9 w2 Q+ R2 m% K. O
m 6 R+ i2 `5 G2 b; T1 m 3 z- ^2 S% p h5 ~# P! |, L
是可以求出来的: G+ C" Y5 H: W' {' J; i& I. R
6 }" D+ V; _& f8 Z
6 F" q5 J0 X2 o" s( v: r# Z8 m
再看原式,当t → ∞ t\rightarrow \infint→∞时i → 1 i\rightarrow 1i→1 : l4 v1 y. Q. f- ~/ ?; C! K( a病人的比例为1,当然这也是不可能的,因为我们还没有考虑有没有可能治愈,看模型三 $ I/ c ?7 ]; W# O8 A$ K k# e 5 F/ r$ \* S. s- e: R4 u! H # D" M( J: \& T3 o, n2 O& |% }模型三 ' A4 m% n# }9 L假设: % d* X/ H! K: u( t, T : f" K7 `8 ?8 ^3 b2 h7 C3 e) }/ C3 y9 A. y9 Z
传染病无免疫性如伤风、痢疾等——病人治愈成为健康人,健康人可再次被感染。- g- A1 X( n6 W, s3 o
病人每天治愈的比例为μ \muμ (日治愈率),1 μ \frac{1}{\mu} p: B# y+ U$ C+ G7 W0 x2 h' Uμ & O$ |& C+ M5 z, r2 m( L" d10 S( K9 Q" S- M6 a
: B. M7 _2 \, W" x
为感染期,6 R( r( M5 D( O/ \. a4 _3 C" V; g
模型 6 Z6 h6 z0 s* [ g- ~6 [4 R这是减去了治愈人数之后的新增人数5 A, }% q8 S& ^5 Z
5 o. m7 {6 c6 f$ X0 T5 b" X+ N; I
; Y% ]0 ~( b/ V! _* y; x& s7 s, |' m5 W2 h5 E/ ? U0 p O
: a) w& D9 J& l& k
σ \sigmaσ 为一个感染期内每个病人的有效接触人数,称为接触数 w) y6 D! \3 M6 q+ B) ?
5 [( z3 X4 \3 ~! I4 M& h 1 k5 }6 f5 {6 U$ h6 g4 ?! h/ p可以画出上面的图形分析下/ m. ]5 a p# S& @
6 h& c2 m$ n( _# v% @ 8 A) I# A" m4 C对上面的公式进行分析,可以得到,当i = 1 − 1 σ i=1-\frac{1}{\sigma}i=1− * i4 f) i7 I1 C3 V
σ, t0 y O9 b2 n3 O' y
1 , G( A- f( x2 g9 v : {1 N+ d5 b! `0 i! G, g) P
时,i ii对t的导数为0这也就到了i ii的最大值;当0 < i < 1 − 1 σ 0<i<1-\frac{1}{\sigma}0<i<1− ( M6 `+ V* w' R2 k! P! I: u! S" R/ R
σ / m' ?6 f# V% K( l1 ' J9 [: F2 [% S- R3 f/ o B4 \, D * E3 a `+ Q, _# _$ v5 l
时,d i / d t < 0 di/dt<0di/dt<0,i单调递增,且在d i / d t di/dtdi/dt最大时,i的斜率最大,增速最快;当i > 1 − 1 σ i>1-\frac{1}{\sigma}i>1− 6 ?8 Z0 z6 ?- _7 b6 O* T
σ* {* Q1 F6 U, W: M9 c6 J1 Z
17 Z6 j- k5 e; [0 {+ ~' N! V8 D# h
$ u- `5 W1 k* H8 C0 B
,d i / d t < 0 di/dt<0di/dt<0,i是单调递减的。 ( e0 ~! Q6 i- R9 I* c4 J* O 0 s! O; h4 C0 ^! d. j2 _* A% e, }3 }; c/ ]. N5 m+ q4 M
当然我们也可以画出i ii随t的函数图像 ' D& o$ ~* u, ?7 n8 @* p3 @# R( t6 c9 k' ^2 F" S
; m, n" y' H4 D* E) d先看红线,若初始条件i 0 > 1 − 1 σ i_0>1-\frac{1}{\sigma}i 0 u' \- K6 [2 a% `0 V& _9 _. o
0 - P* g& p! Z @2 E! A& Z7 H : L0 P: r- q# A; F( Z c >1− " f! ~" S. W o5 w$ U& xσ 5 Q0 Y2 a9 w1 f, }+ ?. }1. R5 X H& j0 v
5 @; X' r! f; L4 |5 I d i / d t < 0 di/dt<0di/dt<0,i就是单调递减的,, C* R. n0 O2 a4 y8 C
若若初始条件i 0 < 1 − 1 σ i_0<1-\frac{1}{\sigma}i ( @% N1 M. R6 Q" m! s: G0 " ^& {* v6 _. S; X$ y0 x 3 K: N! }5 i: b8 O7 a
<1− 8 W* S" `4 D2 e+ m) Q: W
σ: b, |* v, l. m8 h
1 " x, X$ o( w. R0 O ' I: r4 A6 v+ H7 b
,i就是递增的,可以看到i对t的导数图像有一个最大值,下面的黑线就有一个增加速率最快的一个值,按S形曲线增长# S1 L1 @$ X9 Q% ?2 p3 M
5 c) M9 j, [2 Z0 s L' X8 R6 g: F* h) q( F, I4 z- `/ W
σ = < 1 \sigma =<1σ=<1时d i / d t < 0 di/dt<0di/dt<0 i肯定是单调下降的,最终降到0 ! u: ?( L6 a: y / T. N- N' k5 T3 z! C1 Q" C 1 B G! A$ g3 b1 u4 U6 C- k$ U- ~! y, y0 q N Q! b
* k0 q7 [$ C7 ~/ l+ u/ {( b3 w+ q综上: ' p! F- e9 w }, o/ f6 b想让患病者越来越少,σ \sigmaσ必须小于等于1,即感染期内有效接触使健康者感染的人数不超过原有的病人数.) D7 A8 M" r# F' Y
9 ]; C: q k' v0 {! I% P