数学建模社区-数学中国

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

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

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

什么是传染病动力学?

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

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

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

numpy和matplotlib

首先,安装一下这节课我们需要使用的两个python包,numpy和matplotlib。
# c+ N1 Q/ t" O2 x) f7 C6 y4 ~numpy-是python进行科学和矩阵运算最常用的包。

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


' ~2 c: U1 b5 A1 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这样的话,每天新增的患者数为    ,也就是总传染人数乘以易感者所占的人群比例。" _0 d' s$ \8 ]" C; F: Z
那么每天的感染者比例的增加量就是   。

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

# population4 `0 M" s# l+ v% ^+ M& I5 T, b( g! D
N = 1e71 k) f! v7 t" y5 J1 t* y4 b
# simuation Time / Day8 O: ]$ D  H: Q: }
T = 70
/ H( e  w1 o; z4 N' {# susceptiable ratio
9 G$ u. B/ g! ?2 Bs = np.zeros([T]); W3 [( C6 T) P% @$ x
# infective ratio
+ a! i/ I( z/ z1 q0 Li = np.zeros([T])5 }/ P8 U/ K: O+ h! ?% X
# contact rate; `( V0 p$ r9 U/ H& C& M6 m
lamda = 0.8
/ K" X9 Y0 w  p- u( L2 E6 M# j% f/ `2 t: E% V* v; W9 r
# initial infective people
) {! a/ L  }8 u3 c. Y  }i[0] = 45.0 / N
* K, }5 a  P& {, }
; ]$ P* B& T) ?& ^for t in range(T-1):
. F) M4 L( E; @5 G- c    i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t])
( O0 _4 m5 a$ l5 t; |& Z3 }5 D% {1 q: G( P; Q

$ F$ O; P- O0 b7 F" U$ C4 ~) ]: t/ G) X, y; f/ O3 r
相信其他语句大家都明白,新知识是这两行:
) W, ^* ~" d: o" t8 k  {! h  v/ ^' h. {. r

7 s- D; v5 v2 Q& ^+ ss = np.zeros([T])
5 V6 U+ R7 y, C4 ^i = np.zeros([T])- r/ U/ L8 w5 I0 ~$ H8 i0 ?- }, J
& L$ u- x" z" S8 T5 B, d" L
这两句话的意思是一样的,就是利用numpy(已被我们重新命名为np)的函数(zeros())来建立一个所有元素都是零的数组,而给的参数决定了这个数组的维度。比如:" @1 U" h0 o( T" D5 O5 y

$ `1 \- @" n: E  A+ n4 K% ~a = np.zeros([2,3])
( [" y& X- F( w. Z# b# \a: f7 Z. S2 c% k* d; Y1 A. ?5 b% N6 W

( d% s+ R( |4 y/ {) marray([[0., 0., 0.],
0 x4 a3 |: l5 S4 C       [0., 0., 0.]])
. ~0 w1 w, ?# c. {, r. m8 x
9 R; ?1 `- V8 Y! b2 x( o. V# ^5 s) J! \; _0 w& P! O! M& s% \
array([0., 0., 0., 0., 0.])+ [- `( q) ]3 ~( E5 M5 {
9 Q6 B2 }0 M* J. D& |; I' q

! x7 b9 V8 ^. c类似的还有产生元素全部是1的数组的函数np.ones():
; d0 H( W: W6 W) k
( t( x/ k# d0 w1 w1 c) q, X# Ga = np.ones([5])
' l8 l! P7 ~  Q) ?) ]4 j6 Ca
) F7 ^8 B& i, W! ~- o& V5 u$ k! q. z* z! C+ |4 p
array([1., 1., 1., 1., 1.])
7 R+ A% L2 A7 i8 Y- \' j- x6 L! h# [) _# ?9 S, r, |
% K" D/ f2 {, {; s/ S' D3 B# n
a = np.ones([2,3])1 s0 i0 T0 U) E6 `$ u
a
1 r( F: d+ s9 N$ T1 P
+ k; L7 P! Y0 F: c. M9 i; T, c* J9 N; x
array([[1., 1., 1.],
  B3 U/ B( E0 j       [1., 1., 1.]])3 u( k; n  T) ]- ~' R

; ]3 l2 E2 j+ E) \+ v4 R$ q  ]$ d. F; h/ W2 Y) U! H
plt.plot(i)
8 Z8 X  E7 r( q( f
# R; Z& w! @: K
& e2 i7 f/ U) t; G7 ^* _0 m[<matplotlib.lines.Line2D at 0x7f0c2768d6d8>]
. t6 K( {# y' y+ H
. X! K% }: S; v1 u) p1 K4 b+ B, P8 k* v% a/ w0 L8 c, B

$ c, c& x3 P! ^/ S+ D9 b7 r; W! U3 z) i) ?
7 x4 e. d1 K2 u7 N* v/ y" K1 _
实现SI模型的核心代码是第三个cell的第11,12行:4 U( b) _- l6 Z( w+ t% q
+ V; {6 @: A8 T' G& \( U
for t in range(T-1):% e! \$ [0 R. Z& D
    i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t])
4 z. K5 n6 o* ~, E# U" A/ Y: k) e8 F$ n* k# s

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

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


- U$ I  |5 _& w3 f3 Lfig, ax = plt.subplots(figsize=(8,4))
7 [! v) Y4 A; g& p5 y+ e. iax.plot(i, c='r', lw=2)6 O4 E) k% g( S: s4 L* l2 C! \/ E
ax.set_xlabel('Day',fontsize=20)0 i7 s) Z( t4 i& H+ ]; b4 w  J
ax.set_ylabel('Infective Ratio', fontsize=20)
* ?( @  Q3 z' W8 p) r+ p" `ax.grid(1)! p5 [2 i  c) x: Y  y2 U) j- h9 ]
plt.xticks(fontsize=20)
) V, r) y$ C  H, H- S  U+ Pplt.yticks(fontsize=20);
4 E9 o: c, ~9 f3 ^+ ^4 y( w: M& L! E! A  A1 r

2 ~* X  G8 M3 ^$ O8 Z
2 _7 d: ^0 O6 \/ C: f9 r
8 a' x) v+ ?$ `  P; K, q  h从这个结果看到,大约在25天左右,全部人群都会变成感染者,感染率  。  b, L6 w# W( X( x; s. m* t5 q8 P) C  I
在程序中我们假设每天每个患者传染0.8个人,你可以改变lamda的值,观察全部人群感染的天数的变化。$ c6 l  _9 g1 M7 p0 {+ z2 `
认真思考你会知道,lamda的现实意义就是该城市的卫生水平,衡量的是消毒,隔离这些措施执行得怎么样。

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

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

SIS模型为了实现这个模型,我们需要引入新的一个参数,治愈率  。好啦,先上我们的新示意图:Image Name和SI模型做比较,区别就是计算感染者的增加数时要减去被治愈的人数。: H6 \8 Q4 D- Z( ~/ \* L  H' K6 _" g
所以这时候每天的增加的感染者为:   ,% ]* Y  j% H% w& y7 \& u
增加的感染率为:   。
6 F+ r8 _* |5 g模型完成啦,修改python代码:
5 Z3 R/ P+ P9 H% x* m# susceptiable ratio5 d/ M! P; ~- ~% e
s = np.zeros([T]); c& q9 C' N6 b: u) O/ h' i. ?
# infective ratio
, S  f' G6 Y/ B" m1 U: U* ]i = np.zeros([T])
/ }3 m4 ~# v, P' B
" z+ T1 z6 M6 z6 C5 ~2 I# contact rate* d4 c3 Q. y' Z* a, S" ?& O( s
lamda = 1.0
4 X4 f, e& [+ U. l# recover rate
! T! A( F4 i( M4 a- Wgamma = 0.5
" Z! P: w8 {" p/ d- p; i. U& _
7 t- `! X0 N" `+ _( z$ @+ v# k# initial infective people
9 d' t$ T2 T) k' _i[0] = 45.0 / N+ H& U! C+ T7 K6 p1 X

5 E5 O1 Q4 r& l% h1 G/ f% rfor t in range(T-1):
$ G3 o' N, F+ j. a, j    i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t]) - gamma*i[t]
: Y6 E' K/ {% ?% n/ k5 Z4 I1 s4 V3 g! u- u& q, Z
! {; ]; ?! W$ T- b
( r+ Y3 C8 g* I0 r4 S" W
运行代码,我们画出曲线(代码和SI模型的画图完全一样):1 `% d3 B6 f: l) g
6 A( u- v+ }5 b" U! E, k: e( a3 q
fig, ax = plt.subplots(figsize=(8,4))
$ c( E( e5 n' H, p$ c1 E' Cax.plot(i, c='r', lw=2)4 X% K3 W% J. [" m+ I' `
ax.set_xlabel('Day',fontsize=20)1 A- {8 D! F( a& x4 l4 N
ax.set_ylabel('Infective Ratio', fontsize=20); c5 p: A6 w+ w- ]* T
ax.grid(1)( ?+ U6 J) h3 I
plt.xticks(fontsize=20)
( E6 e" N% Z$ g8 {' N6 gplt.yticks(fontsize=20);0 @: {2 J8 L/ \5 w/ k! Y
  K3 J5 |7 R: L; N" A+ S; d% z8 ^
. U1 ^* Q/ [  N  f, I
# n2 v! z- C! ^+ b

% o2 M+ @) p; ^1 H

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

SIR模型

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

Image Name

SIR 模型
* s: W' q" p/ I6 p: t1 ~" q+ f3 B注意到这里,人群被分成了三类,不再只有I和S,所以相比于之前的模型,我们需要找到新的约束关系。现在我们需要分别计算三种人每天的增加量了:


- G. w$ }. R; W6 y5 T! ]0 @

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

* a# L/ ^) P$ l' z: q
# population
3 K1 \2 c( p2 k& z0 b, S( o, w; EN = 1e7 + 10 + 50 c. w' c+ V  d* E/ W  S8 @4 B
# simuation Time / Day
$ c* _6 F8 e- L# x& PT = 170
% ^7 U* V  J( `; E/ ?; i# susceptiable ratio
$ L0 T5 |8 Z: N- C9 Xs = np.zeros([T])  R* \  V6 E) |; I& L/ A
# infective ratio
- [, ~# T' O  P! X- d  w% xi = np.zeros([T])
) H- i0 p( [0 D$ o3 r- V9 O. q8 w2 a# remove ratio
, }- ~5 I* i" Z; Z/ W( s, vr = np.zeros([T])
4 R% _9 s5 s1 T  G$ ?% G8 T% W8 y' {: |% M$ }- b
# contact rate
1 S6 s, \5 ~, @! t1 U& Olamda = 0.25865 _6 g4 I- `5 Q0 u) `
# recover rate# K+ `7 V+ Z" g* r* q; ?
gamma = 0.0821
' R" a. M9 K0 n1 G! {/ z
7 c) K. M8 G# Y( v# initial infective people
* @5 m% ]  u+ T9 b" fi[0] = 10.0 / N
% u" G: i% _# u" Y/ a% |s[0] = 1e7 / N" w  T+ w/ N8 ]7 r2 B' E4 m
for t in range(T-1):
% N6 X9 a6 c5 `9 B* S    i[t + 1] = i[t] + i[t] * lamda * s[t] - gamma*i[t]* n8 P0 p. `; Y2 A% Z" k
    s[t + 1] = s[t] - lamda * s[t] * i[t]  i. X3 v5 l: Z, E4 ?9 {* K+ w1 O
    r[t + 1] = r[t] + gamma*i[t]
1 z- z. d' S* C
( W' C) O+ v, O+ R+ R4 ufig, ax = plt.subplots(figsize=(10,6))* f$ J9 K. v5 [9 a% ^% e$ T
ax.plot(s, c='b', lw=2, label='S')/ g& c* m$ d- O0 c
ax.plot(i, c='r', lw=2, label='I')
& a- p& r& `7 ]- q; V( gax.plot(r, c='g', lw=2, label='R')4 z7 Q& J6 x( b& g3 b+ J- ^$ _
ax.set_xlabel('Day',fontsize=20)7 D! F0 R% H+ m3 ~2 x
ax.set_ylabel('Infective Ratio', fontsize=20)1 A! y* W! r: M1 L8 t: B5 I! v
ax.grid(1)! j0 I3 U8 p4 O% ~. N7 F
plt.xticks(fontsize=20)  Y9 H4 a1 Z: m4 S% A; M
plt.yticks(fontsize=20)
: }* q9 ~. F/ x! B1 y. gplt.legend();8 a! V. ^/ d' m; Y5 r& I
6 v* K) |$ Z/ C8 m! F  c

/ Q3 k% a1 v" a; B2 @, n2 C3 ?; I# k  Y# C9 s2 J
) m* p! O/ T4 [2 f/ C1 y- h

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

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

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

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

重现于教授的模型
5 s( d$ U2 K, a, \7 P: q4 l( A; H5 O: r高峰和尾声日期的推测基本相符。

; s; d8 b* d5 Q& e1 s
# susceptiable ratio! S* f8 ^) ~% j+ k: P" K: @1 D
s = np.zeros([T])- T  z4 C2 M4 p- I, A; D# L
# infective ratio
( q, P, {1 c+ x/ A. Ji = np.zeros([T])' [8 ~1 r* l- a' M% a
# removed ratio
( ?8 u: i' p, e2 z0 sr = np.zeros([T])& n4 U  J- A+ B% J% Z9 a# f
) {( P9 J5 H. {- q6 G7 r
# birth ratio
! P: y+ ?! |/ Y1 W* `b = 20.0 / N
* }8 f! n$ l8 Z# death ratio% @/ m: s1 f. R1 ]* {$ L0 v
d = 10.0 / N/ I# g3 Q0 U3 R+ \
5 a' Y- p( V* p3 X
# contact rate
5 G5 M% d& P5 F# L' \6 U# k) ~3 cy = 1.5( H5 z5 _  I1 r% n% @
# recover rate" e- ~" J% ?6 v
u = 0.8 # 1 / infective_period( ?1 S; P& J2 ^+ d: n
/ C) Z  h( g" j1 b
# sigma = y / u3 b: `6 C( h4 {7 U& X; ~
; q' ~# `& D7 u
# initial infective people
# f* i% z. [) H+ R) E' U* ^( D9 Ai[0] = 45.0 / N) ]1 U3 H) S( G4 Q- t
s[0] = 1 - i[0]
2 }; Y! [8 _% e% B% Q* Y' P- Lfor t in range(T-1):
3 s2 q# I( `1 K7 N# G; `0 @    i[t+1] = i[t] + i[t] * y * s[t] - u*i[t] - d*i[t]
( l+ F; ^4 \0 |  r+ W( G    s[t+1] = s[t] - y * s[t] * i[t] + b - d*s[t]: Q/ K+ ^! e- [
    r[t+1] = r[t] + u*i[t] - d*r[t]
& T0 ^1 y2 I) p0 M3 |: X4 L
" p  O6 w+ h& Y/ i6 l7 A  }plt.plot(i)
) j/ B/ I  Q3 Cplt.plot(s): R* J0 g" \/ P/ ^! ]; [) n* A
plt.plot(r)
' w: ]+ ~: H* G1 ]8 Eplt.plot(np.diff(i),ls='--')2 M; g! f; C' o+ q$ ?# h1 _
4 t1 w2 {  a( K
. `9 t0 p. c( F. h4 e
[<matplotlib.lines.Line2D at 0x7f77796e8518>]
: }9 I/ @# A/ ]7 D7 E3 ]2 y9 Y+ [4 Q6 n# C
& q3 n! w4 x; ]9 p
4 s( F, F5 p) g* Q/ }* X
SEIR模型

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

Image Name

SEIR模型
; ]0 z1 W6 {' L( @/ Y* @同样的我们需要计算各人群每天的增加量:

S:每天减少:  + ~( X& n7 N% M, e/ B' l: v$ r
E:每天增加传染,减少发病:  
1 L1 n8 ?3 z: P- m' iI:每天增加发病,减少治愈:  
7 n  A/ q" r" w0 PR:每天增加治愈:  
  n, f: Z3 `1 }! M7 M1 k$ x7 m建模完成,修改我们的python程序,这里的   可以理解为潜伏期的倒数。给的4天。新型冠状病毒给目前临床的潜伏期是3-14天。
0 {+ ~* o; Z: M, p( I/ _, X, h: \5 B# population; r( f8 {4 M# u* Q$ {( n5 R
N = 1e7 + 10 + 5
5 H) r* B0 K& ~6 M# simuation Time / Day
/ u$ c( ~: e! P, ~* jT = 170# Z) d! S( |' v
# susceptiable ratio
  I2 [5 D( g* Y- w$ Vs = np.zeros([T])' [8 y" h6 I5 f) z  f
# exposed ratio0 p% L' D( M; ?
e = np.zeros([T])
" T; {: b( _/ z$ [  }: b# infective ratio8 J/ P; R! O4 `/ ^
i = np.zeros([T]): J" M. n$ j9 l, S
# remove ratio* Q1 B% B- M$ R8 E; a0 Q
r = np.zeros([T]); J3 ^9 E( e7 V
8 q( x+ \' `( h) O; Q# h
# contact rate1 v" F" l% \3 Y! }% R
lamda = 0.5$ |1 Z7 q0 `$ B( S
# recover rate4 U  s6 k0 }5 v1 @# Q& o# y
gamma = 0.0821
3 h; m: B6 B3 b" E4 W8 F# exposed period! l. m3 A2 s" E0 Z. W4 y7 d
sigma = 1 / 4, q5 N" y# o+ p! W! a9 P% _7 T
( z/ b6 A8 M% n0 F! \1 B
# initial infective people
' _+ L6 x- J& Li[0] = 10.0 / N
3 e7 Y; s  }# h& F6 V! N8 Gs[0] = 1e7 / N
- n1 F8 c( l% Xe[0] = 40.0 / N6 z$ v9 A* z6 t: N" S* {9 @" W
for t in range(T-1):
; Y2 J. K3 U0 ]6 S+ b/ L$ l2 e    s[t + 1] = s[t] - lamda * s[t] * i[t]
# E* W6 H8 d1 g! |7 a: g    e[t + 1] = e[t] + lamda * s[t] * i[t] - sigma * e[t]$ `, y  d& e' ~6 i9 O8 A, @
    i[t + 1] = i[t] + sigma * e[t] - gamma * i[t]
, E4 k" @( h; _# B/ [& z    r[t + 1] = r[t] + gamma * i[t]; w# T' s! O- R1 M$ p# |2 r; o* \

/ ^' i) @0 D4 A- v1 b3 q. \8 P( D, @# |% q" P( P
fig, ax = plt.subplots(figsize=(10,6)), @: n0 g" B: f2 L( i0 w
ax.plot(s, c='b', lw=2, label='S'): u  }# j% j2 u+ U* z/ r
ax.plot(e, c='orange', lw=2, label='E')5 K/ n2 D0 z5 R. n5 y
ax.plot(i, c='r', lw=2, label='I')
! @9 _1 ^+ Y$ ~# R- Cax.plot(r, c='g', lw=2, label='R')
6 n7 S& L0 M1 O8 P% wax.set_xlabel('Day',fontsize=20)$ ~3 o% E3 g9 t7 Q' }
ax.set_ylabel('Infective Ratio', fontsize=20)
7 P- V) B* _3 r/ o: t: Vax.grid(1)
; H# R2 M7 s3 S, Dplt.xticks(fontsize=20)
! y8 @% R+ M" T5 _2 C% J: V5 Gplt.yticks(fontsize=20)
9 @7 e/ ]5 l. N- }" D* Jplt.legend();. Y4 ?* P7 T+ j, X- `3 s

+ f8 J) ]/ q$ q2 W, t
! n% z) g$ @& g! y! C# U
! b$ d! ?( t) t6 @0 e8 ~$ B2 P6 X7 R/ |0 R4 j  Q1 g4 I. M( T7 {
按照模型的结果,此次疫情可能真的要持续到 三四月份。这个接触率    真的非常影响表现,模型给的是个常数,但是由于政府措施的原因,这应该是个变化的值。- ~; {  `6 x% z7 p5 e4 }
还有治愈率   也是。没有完美的模型,但是随着考虑因素的增多,就会越来越接近实际情况,从而指导政府的疫情方针政策的制定。
0 k4 V( x" j$ x0 ?; j, O" _! n& a5 K
7 S. v' d  \: E' Z5 S) n
' k1 c) q3 {/ }5 y7 a

% G. k* Z6 a7 w5 Z7 P




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