数学建模社区-数学中国

标题: 用Python预测疫情发展 [打印本页]

作者: 浅夏110    时间: 2020-5-15 15:30
标题: 用Python预测疫情发展

什么是传染病动力学?numpy和matplotlib用python实现传染病模型SI模型SIS模型SIR模型SEIR模型

什么是传染病动力学?

最近,在报道疫情的众多新闻中,相信大家也看到过一些来预测新型冠状病毒会导致感染肺炎的人数。你一定好奇,这个人数要怎么预测呢?预测人数又有什么用呢?

事实上,从学科方向来说,这类研究属于传染病动力学,就是用数学模型去描述传染病在人群中传播的规律,从而预测患病人数,进而指导政府制定措施和政策去控制传染病的传播。; R5 }4 H8 M/ H( z& X; l
这类研究最早可追溯到18世纪Daniel Bernoulli对天花的研究,而我们今天所要介绍的SIR模型是1927年Kermack与McKendrick在为了研究伦敦黑死病而提出的,是传染病动力学中最基础的模型。

介绍了传染病模型的背景信息,不知道现在你对传染病模型更有兴趣,还是执着地对python更有兴趣呢?不论哪种,这篇文章会满足你所有的好奇心。

numpy和matplotlib

首先,安装一下这节课我们需要使用的两个python包,numpy和matplotlib。
( Y: O& P0 n  C; w; Tnumpy-是python进行科学和矩阵运算最常用的包。

用numpy建立一维数组,存储和计算每天传染病人数的数据。

/ Q) o" N1 [+ q1 }8 S

import numpy as np

import matplotlib.pyplot as plt

用matplotlib绘制传染病人数随天数变化的曲线,给出模型预测人数变化的直观认识。

好啦,下面开始用python实现传染病模型吧。

用python实现传染病模型

为了让大家能够更好地理解,我们先不直接说SIR模型,我们从最简单的开始。

SI模型首先想象这样一个场景,一个城市有  个人,假设没有人出生和死亡,忽然有一天有  个人感染了病毒成为了患者,如果每天每个患者能够有效传染   个人,那么第二天患病人数是多少呢?最简单的答案是:   ,也就是说每天都会新增   个患者。那这样以来,在无限远的将来会有无穷多的人被感染,显然这是不合理的,那错在哪里?仔细思考,你一定发现了,已经患病的人就不能再被传染了,所以我们有必要把人群分为两类,易感者(S-susceptiable)和感染者(I-infective)(你猜的没错,这就是SIR中S和I的含义,R的含义之后介绍再讲)。为了之后方便计算我们记易感者和感染者在人群中的比例为   ,那么    。

我们重新考虑上面的问题,顺便来个示意图:

Image Name这样的话,每天新增的患者数为    ,也就是总传染人数乘以易感者所占的人群比例。( P$ F( l7 {& d' c$ _
那么每天的感染者比例的增加量就是   。

我们假设城市有一千万(N=10的7次方)人,每个患者每天接触感染每天0.8人(lamda=0.8),初始感染人数为45人(i0 = 45/N),我们来模拟70天(T=70)的情况。

# population+ L" |* u2 L7 r; p) [# W) F
N = 1e7
6 n, R! s: x2 n3 M0 Y- p' L# simuation Time / Day& ^4 ?9 }" s: ^0 k
T = 70
- j# y) `  e$ y. P* V: T+ |# susceptiable ratio
  f+ l1 w9 w0 x8 us = np.zeros([T])' F* |  O* ^% M) o$ t; z8 S
# infective ratio
  Z& C" Y+ R5 S/ \7 Q8 N3 _% {i = np.zeros([T])
$ @3 v8 R5 C# m' f# contact rate3 W6 v+ J) v6 e6 N! X
lamda = 0.8, a0 v1 Y  G) R7 Y$ [$ B& f5 q8 X% t

$ ]: J% E4 ?% l/ _& }# initial infective people
* p+ j- l2 I5 b( O  Hi[0] = 45.0 / N7 n  J  q+ S; B8 Z

! \& s7 A1 i8 K, C& n; qfor t in range(T-1):
5 N7 x8 L- n. j# W( `    i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t])
% _- N3 t$ {% F/ F6 ~  X7 m
, a$ Z) J4 |' ^- k/ B- ]: L
; l* i- d9 t5 C) V  ]: E& a8 Q; g  V' G
* ?+ V" S) _  N, N/ {: O. i9 ^相信其他语句大家都明白,新知识是这两行:( @; I" t$ a5 X/ b2 E0 [

9 w9 ]9 H4 a3 ?  L' s# ]0 z& M% o& J3 m4 `* h; e$ e2 s9 o
s = np.zeros([T])
/ z, d# y2 O# S  J$ U' k+ Z! |, o0 ji = np.zeros([T])/ D$ f6 d7 a0 D  f0 X' u5 L

& ]* c. l7 g, a; ^6 Y这两句话的意思是一样的,就是利用numpy(已被我们重新命名为np)的函数(zeros())来建立一个所有元素都是零的数组,而给的参数决定了这个数组的维度。比如:
5 o0 z$ ]: l& O. Z1 f; y& }( C' J- e7 ~3 M$ Z6 L$ M. F" M
a = np.zeros([2,3])- Y' f' F' f  c, y. R
a
( l$ l9 }1 _- S5 E' G
8 g! O( R$ z6 Iarray([[0., 0., 0.],
2 f8 o+ o. C2 j       [0., 0., 0.]])1 [. g- L4 ~# h4 W1 _

+ R/ g: A5 j) u1 [" l, G7 k- g/ U+ g# e! D! ^9 S$ p; }4 d
array([0., 0., 0., 0., 0.])
' Z$ x$ u/ H  E; ?( C- K' z2 A* {8 N6 o8 h" |8 D# J& I9 Y: s! y* G7 N% [, u

0 h& Q- I2 E! r8 V* J# M类似的还有产生元素全部是1的数组的函数np.ones():! R$ d/ D7 Z7 H& ~
5 Z% ]& m9 ]2 n( N. h0 I5 u7 O
a = np.ones([5])  i2 F& b9 }3 y$ V, l  T; n
a
: I7 Z& |3 N/ P# F% Q% {* e' o# T" @& T. f: B+ p
array([1., 1., 1., 1., 1.])9 E, I6 @* J  C/ e

. m* Q! n8 f1 O  }
, `& ?$ `9 A: ga = np.ones([2,3])* k# b" `3 s4 M; U; a
a4 k" c* C& q9 C  Q, S

& y5 {7 U7 a+ }: D
3 E" s5 m" Z8 y' h- j& q) Harray([[1., 1., 1.],
) j2 Q1 P! n4 J" {5 s7 w  }$ J# i       [1., 1., 1.]])6 S. E8 b6 G6 q4 l

. R, S6 y& e$ c# ?0 V0 @# d% u! E: m1 ^  y  B" E' Q+ D9 ]
plt.plot(i)
- L3 ?) C- ^. A8 |. H/ h1 s2 Z& Z+ i: i$ O" b! q6 L' H

0 u  _- R" t! e/ n[<matplotlib.lines.Line2D at 0x7f0c2768d6d8>]9 e6 y: z+ e8 x+ k( S

1 u8 i1 I9 f6 ?- T7 T/ u0 l+ t  x4 ]: S
' ?- U5 ?- s0 p. y8 {" p& Y

2 D5 Y* {( J+ x* V) W( {$ c0 [# Q4 A5 W5 ]* L' q- B
实现SI模型的核心代码是第三个cell的第11,12行:
1 N0 T6 i9 x+ q5 i4 o/ Z' B$ p
3 [0 F+ n. r- yfor t in range(T-1):/ X5 T- a: @! o0 B: N! T6 h! g7 n
    i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t])' V5 b3 d* R+ k" o

* U( K7 A" y9 K9 @  B7 W8 T: [

就是我们建立的数学模型,利用python的for循环语句累加迭代的方式把每天的增加量叠加到感染者比例上。

运行代码完成计算,我们利用matplotlib的pyplot来画出感染者的随天数的变化曲线:


( T1 T6 l5 t# dfig, ax = plt.subplots(figsize=(8,4))
- G: B/ ?) m) N. m, eax.plot(i, c='r', lw=2)
+ H9 q  l* M+ P% s; y# q, e9 n2 jax.set_xlabel('Day',fontsize=20), T" F4 @9 p$ K$ i% z
ax.set_ylabel('Infective Ratio', fontsize=20)8 q9 O. b/ q2 j. p; ~7 m
ax.grid(1)
7 P; e" `$ [) T3 W1 Jplt.xticks(fontsize=20)' j; P0 m! h( R; }, A3 t
plt.yticks(fontsize=20);% Q& q8 x9 Z# ~' m

9 M" p- ?! B) `( \, P# ?3 s. X: _) i3 {9 o1 G2 L  W

1 x$ L9 j. s9 d: t0 U
0 E% _# o% J7 p# k5 P从这个结果看到,大约在25天左右,全部人群都会变成感染者,感染率  。! b; m2 m+ H( y5 [4 Q" E
在程序中我们假设每天每个患者传染0.8个人,你可以改变lamda的值,观察全部人群感染的天数的变化。
( p  w2 t2 u% {* n认真思考你会知道,lamda的现实意义就是该城市的卫生水平,衡量的是消毒,隔离这些措施执行得怎么样。

回到传染病模型,按照SI模型计算的结果,我们全人类都会患病,这好可怕!原因是我们忽略了一个很重要的因素,那就是我们有奋斗在一线的医护人员,我们会被治愈!所以SI模型只适合研究具有高传染风险又不能被治愈的病(比如HIV)。

但是对于其他病,我们是可以靠医疗和自身免疫系统康复的,那么紧接着的一个问题就是,被治愈后还会再被传染上嘛?根据这个问题的回答不同,我们有了两个不同的模型,SIR 和 SIS。现在可以揭晓,SIR的R的含义了,就是移出者(Removed),现实含义就是指被治愈后不会再被感染的人。而SIS表示治愈后仍然还是易感者。下面我们用python来分别实现这两个模型。

SIS模型为了实现这个模型,我们需要引入新的一个参数,治愈率  。好啦,先上我们的新示意图:Image Name和SI模型做比较,区别就是计算感染者的增加数时要减去被治愈的人数。2 e4 K; o+ v! A
所以这时候每天的增加的感染者为:   ,
6 u. Y  x6 P2 x5 a* Y# |/ \' _增加的感染率为:   。
2 I: k' O; l; C. u模型完成啦,修改python代码:
% w! Q" c7 b: x5 {* {! K7 m0 C# susceptiable ratio
0 h; M. o, Q" g0 @, \3 \) H+ js = np.zeros([T])
1 [+ Q$ m: _5 ?: m; ~# infective ratio
" P# R  e' {' y& F2 p  a$ fi = np.zeros([T])6 t+ `0 |( }6 D. b) w7 }/ }

2 B- _- b2 V1 s/ O! w" A# contact rate
/ o4 J4 u- J$ o, ?( c; n  Q3 nlamda = 1.0
, w+ `# J0 w# }0 [4 R3 u# recover rate; Y2 w9 [0 ]+ ~) G: i2 J* D
gamma = 0.5 1 Q5 Z" g, k% H3 ]* ?
5 `) L9 s2 q/ N6 j
# initial infective people
/ D3 W% z6 x: T8 s& W6 Z& h" Ki[0] = 45.0 / N: B/ ~" Z/ r' B3 J4 v  j

  r8 g1 u# ?! {" L  qfor t in range(T-1):
( U5 D  _+ L1 p6 F    i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t]) - gamma*i[t]
. {4 N8 ]5 ~) h5 v: B- x# G
: ~9 h7 b; i  g7 k1 ^. @0 H' P! K- O0 a
4 e1 P- r; z1 s% W' v, D# F( w) v
运行代码,我们画出曲线(代码和SI模型的画图完全一样):$ }! r$ t3 T$ ?6 F) c  {

; X$ ^( `$ r" ?2 q/ Y# D* B! H& M9 ?fig, ax = plt.subplots(figsize=(8,4))
( y1 o: f1 y4 |& {2 xax.plot(i, c='r', lw=2)4 X4 n3 d. D# T5 d
ax.set_xlabel('Day',fontsize=20)8 l# O, P5 R/ U& A' Z
ax.set_ylabel('Infective Ratio', fontsize=20)% m5 P8 x7 g6 K
ax.grid(1)
( C  Q, b- U' v4 S3 u& Dplt.xticks(fontsize=20)
$ a3 C) ~( |5 n* @" E, H: }plt.yticks(fontsize=20);% v1 y' z; u' t% g6 R

4 w+ a! o/ ]9 b! N: |2 y( d
0 j( j2 K8 `8 m- @$ Q& b: R
0 K, y8 G  h" B$ I+ {" ?2 Y- }; t1 X, |2 E: [2 Z

行代码,我们画出曲线(代码和SI模型的画图完全一样)
! [* x8 d# I6 m. H9 M6 v9 x可以看到,达到最大感染率的时间退后10天左右,最后感染和治愈达到动态平衡,人群中有始终有一半的人感染着。所以,SIS模型适合研究具有传染性和反复性的流行病,比如常见流感。同样的,感兴趣的话,改变lamda和gamma的值,观察曲线的变化。和lamda不同的是,gamma的现实意义就是对这种疾病的治疗水平。

SIR模型

加入了移出者,被治愈的病人不会再被传染,先上我们的新示意图:

Image Name

SIR 模型0 l! j: i2 Y# `: X" g0 W. I
注意到这里,人群被分成了三类,不再只有I和S,所以相比于之前的模型,我们需要找到新的约束关系。现在我们需要分别计算三种人每天的增加量了:


* T  m) a  k: h6 X9 T

建模完成,修改python代码,并且假设人群普遍易感,新型疾病,初始没有移出者。


& W/ f& Q1 [2 K8 N# population: e& `% n5 p, q/ ~- ~) J- Y) t
N = 1e7 + 10 + 5
8 w4 V- Z; l4 K9 N, b" b) @# simuation Time / Day
2 E# Q7 x- j2 a0 ~: |/ h3 ~T = 170. Z2 j% \) E7 X5 T0 H. E2 G2 A4 p
# susceptiable ratio9 j1 @; E) d5 h' e" X: f
s = np.zeros([T])0 m5 B" A0 g6 X' v; p& r2 D
# infective ratio
7 S* M! b: Z" i5 V+ ?2 i/ ]/ t' ?i = np.zeros([T])
' D6 \$ X2 h5 T: E  K1 }# remove ratio! X& h% s; C! @+ K+ B- P0 o  [  ?2 A
r = np.zeros([T])
, W2 b( H7 ]% V! }
8 o0 Y. f$ N. f" f3 ]4 ~/ J! g9 M# contact rate
" M% g. @1 L: o0 V3 clamda = 0.25869 N, V- X$ W, ]2 C9 s* ^1 c
# recover rate
  Y9 d+ o8 s! P8 B2 R( |gamma = 0.0821
! q/ B4 p  {* J4 _  y7 b: Z: G! }" z
# initial infective people
2 D6 Z8 N7 Y' r: c9 @% t3 ti[0] = 10.0 / N4 b9 y4 @, c0 U1 H
s[0] = 1e7 / N
8 j$ z/ ?) Q2 M. g, t+ Z2 k$ Tfor t in range(T-1):  l6 C" @/ O  w+ h" I3 P) \9 v
    i[t + 1] = i[t] + i[t] * lamda * s[t] - gamma*i[t]
  t/ Z6 b' E$ B" B: r    s[t + 1] = s[t] - lamda * s[t] * i[t]
/ b. t$ }3 V6 ]) m% j: O5 h5 p" W    r[t + 1] = r[t] + gamma*i[t]% X' v+ i% V* f0 Y) t
/ u  M# Z! w  L9 F+ U! \4 p
fig, ax = plt.subplots(figsize=(10,6))
7 r$ ^: f+ P& ?! O. Aax.plot(s, c='b', lw=2, label='S')
6 k* w* Y9 b" n- I/ Y4 Jax.plot(i, c='r', lw=2, label='I')
+ W  e  C# F4 k5 y. R, yax.plot(r, c='g', lw=2, label='R')
  E' g# I; `7 _4 e+ s, a' o% [ax.set_xlabel('Day',fontsize=20)  j; Z: f  b$ Y% m: @
ax.set_ylabel('Infective Ratio', fontsize=20)( F0 S! U; T3 w7 t# P
ax.grid(1)
# j1 J) X4 `: Y3 O7 j# m) ~" ]+ [plt.xticks(fontsize=20)5 e) H& X* R0 b3 o) z$ _/ U
plt.yticks(fontsize=20)0 N, ]: U/ {5 ], B
plt.legend();" \" K" T" Z7 W4 V
' ]& S- J% K: }6 i' y* d
+ [, {% ^3 c; B1 C0 K
, H: H, z1 W; B
) w1 T+ i3 o' b4 l5 h

感染人数峰值发生在一个月左右,最大感染人数不到人群的20%, 但是最终人群的80%都会得此病(就是最终的移出者的比例)。SIR模型适合研究没有潜伏期的急性传染病,治疗后能够痊愈并具有抗病性。

到这里,虽然不准确,我们也可以先用SIR模型来分析一下此次疫情,武汉新型冠状病毒的传染病动力学!

模型有了,其实就是确定参数的问题。一开始就有人做了这个工作:

Image Name于教授给的参数是参考了非典的,  ,初始易感人数为一千万, 初始感染10人,初始移出者5人,那么我们的城市总人数    , 带入我们的模型得到结果:

重现于教授的模型  V$ h" Q' a8 e! E) b4 x: z
高峰和尾声日期的推测基本相符。


/ w! C% M0 S! x& \5 M# susceptiable ratio
  B4 [8 h" s) f$ xs = np.zeros([T])  ^+ _+ A3 t( d* K
# infective ratio
! P. v& T. ~/ w" b+ Vi = np.zeros([T])
4 }5 ?% z! O" e0 f! O# removed ratio
' b7 i+ i2 x* U, J) c2 K! xr = np.zeros([T])
4 z2 f7 p# q' u7 q6 y3 X7 ^- ^) r2 m
# birth ratio& j+ ^8 |4 b' t; z
b = 20.0 / N
( z' F. T* F% @) ]# death ratio
# ~: B3 y9 [& Z  A7 y& K2 i" Fd = 10.0 / N
/ B2 c# z4 Z* g' S6 z% n6 F4 O# o" O: o# {, P
# contact rate
& i+ ~  q& Z' W( Vy = 1.5* b; t' R: I( N4 E# l3 \$ B
# recover rate
& U' I  [4 W0 ?* L% g$ D  \5 bu = 0.8 # 1 / infective_period8 e$ ?2 |6 L5 ~  x* [

; d- }+ E/ s3 d" d/ \  S# sigma = y / u* L, H" \; t' d% o
4 t: `6 y: W) _4 L3 D4 l4 j- c7 g
# initial infective people
! H9 C8 _9 P8 O/ n$ U: |" vi[0] = 45.0 / N
3 C3 w' W5 s! K) P+ W* o# ws[0] = 1 - i[0]
: X; J4 L) E8 kfor t in range(T-1):* M. r% f* |- r: f' K8 X8 ^
    i[t+1] = i[t] + i[t] * y * s[t] - u*i[t] - d*i[t]# ~$ g5 s5 {( S# p4 x8 ]7 t1 _
    s[t+1] = s[t] - y * s[t] * i[t] + b - d*s[t]
- @# H0 Z' _) h- n% l0 d2 d$ E6 H    r[t+1] = r[t] + u*i[t] - d*r[t]& ]8 W& X* p" P7 c
8 p/ L9 w4 l0 w' u8 D) n8 D8 p% k
plt.plot(i)* ^+ O) C& A. |- z- f
plt.plot(s)0 \: w* g$ B' _+ I1 D: ]
plt.plot(r)
, r4 Z8 ?) W7 U$ u0 _4 w. b6 }plt.plot(np.diff(i),ls='--')' w+ U6 f2 n% R& R7 E2 M$ Z

# e0 ?) t0 ?' S: I, d( Q& s: r6 l
1 n7 l9 k& I6 C1 H7 A[<matplotlib.lines.Line2D at 0x7f77796e8518>]
; |0 C# Q% ~+ r- q
* O. D- y7 R3 C9 z; O+ u: i2 E2 l9 I/ ^& d2 @* r4 W5 v0 r
; O5 A% I3 G) W9 p- Y0 h2 E  F, }
SEIR模型

但是,SIR模型和实际情况的出入会比较大,因为忽略了太多因素了,比如说潜伏期,比如说政策调控,药物,出生死亡等等。下面我们可以和前面一样,把潜伏期考虑进去,新增一个人群,叫潜伏者E(exposed):

Image Name

SEIR模型
+ f; b/ w, z5 Q! r: Q( q8 ?0 c6 A同样的我们需要计算各人群每天的增加量:

S:每天减少:  0 \, L6 _/ _. J# S* U
E:每天增加传染,减少发病:  
- }! Y; i% g) T( E" F7 o. b: dI:每天增加发病,减少治愈:  # @1 D! n7 j4 V  w' n8 j
R:每天增加治愈:  9 W5 \$ ]9 R& t% m
建模完成,修改我们的python程序,这里的   可以理解为潜伏期的倒数。给的4天。新型冠状病毒给目前临床的潜伏期是3-14天。& a. e4 ~; E9 l! F( s; F
# population
, c( V- A; S' {0 m. k9 UN = 1e7 + 10 + 59 x1 b6 w. w% d! V4 I# S2 H  W) w
# simuation Time / Day
' P0 ~0 s( X2 fT = 170% ?, ~$ Y. n9 I
# susceptiable ratio- o# a) t6 J0 t8 v
s = np.zeros([T])/ C( o1 p# J& k: N  _* T4 _
# exposed ratio3 r5 ~. a$ D% K% }' _# l
e = np.zeros([T])0 S! r$ Z( c9 W$ k: q9 V
# infective ratio- I/ ^: v* ^  c. v5 @
i = np.zeros([T])
+ B( b' v- w+ w3 ~, C; i# remove ratio
2 Z3 Q, ]* O3 S& v9 i4 ?. |" l) hr = np.zeros([T])
* |3 Q. o+ \0 a% Z! @% _; L+ u- j- X+ j8 }" O( s/ U: Y( w% n4 f+ R! l
# contact rate
$ |, R5 j, @5 ^+ ]9 v( U9 R: flamda = 0.55 Q* g$ b  V$ T$ I1 O
# recover rate/ `3 m: C0 x% t7 \1 c# N
gamma = 0.0821
% v! u' q: V! B* A6 Z( ~# exposed period! T; Q0 c& K' }
sigma = 1 / 41 J2 i% w8 r  O* E
; P1 U' ?% i! K/ c; z
# initial infective people  y2 I  R+ J2 M9 l$ U  G
i[0] = 10.0 / N  H6 Y( ^( ?1 y% e
s[0] = 1e7 / N/ o* I4 l7 w' y; v# P/ h2 K
e[0] = 40.0 / N
* _) Q" A) `( n' \8 {for t in range(T-1):: F: ^7 s/ ^8 ~) [
    s[t + 1] = s[t] - lamda * s[t] * i[t]
" Y. \5 N6 B" ?9 _! J( \. ~    e[t + 1] = e[t] + lamda * s[t] * i[t] - sigma * e[t]; j" \) |5 g  R# D3 o- r
    i[t + 1] = i[t] + sigma * e[t] - gamma * i[t]: i! D; L/ d7 K0 E+ g, }  I
    r[t + 1] = r[t] + gamma * i[t]" F( ]# K* t; q% v
* t8 H/ Y/ M, [* `9 A' T: J( B

$ a, g1 r& W4 k/ T* f6 J( dfig, ax = plt.subplots(figsize=(10,6))6 w+ \: H9 K! \7 u4 G( T
ax.plot(s, c='b', lw=2, label='S')3 v$ `4 @9 t: O2 u7 Z+ w) g
ax.plot(e, c='orange', lw=2, label='E')
) @! S4 I& U) m  H$ l5 P# _ax.plot(i, c='r', lw=2, label='I')
2 K* d# m5 S4 I* J* F/ u" p# D% a) Q& bax.plot(r, c='g', lw=2, label='R')
6 G, t9 ]3 e; _3 }4 cax.set_xlabel('Day',fontsize=20)
' F5 X1 `  Q/ j$ ?% p* [ax.set_ylabel('Infective Ratio', fontsize=20)
! a# c+ m& r2 B: B  @ax.grid(1)
" C) Y# ^0 b  c4 R) Zplt.xticks(fontsize=20)2 B9 O: ]4 N5 D  k! C3 V( t
plt.yticks(fontsize=20)1 S6 v+ Q$ T: F2 C
plt.legend();
' P6 [4 A6 l! n/ v4 }8 z
: e$ ~! W0 f) c3 o8 ~$ R5 a& U3 V" p( Z

5 |+ X4 R. X% u+ a& q/ S& S' V
) k% z" }+ ^3 ]4 n0 C按照模型的结果,此次疫情可能真的要持续到 三四月份。这个接触率    真的非常影响表现,模型给的是个常数,但是由于政府措施的原因,这应该是个变化的值。
7 a! A' o$ e8 M! w% \+ Y还有治愈率   也是。没有完美的模型,但是随着考虑因素的增多,就会越来越接近实际情况,从而指导政府的疫情方针政策的制定。
  |; R/ _3 Y; N, \) C# u7 Z6 S4 F& k, `5 ^, R* G
/ H! ^2 m% H, v  T

0 H! n# [" ^+ C+ \0 Z1 J
4 N% @: `4 ]8 k3 F% O" Z: T




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5