import numpy
as np
import scipy
.integrate
as spi
import matplotlib
.pyplot
as plt
daysTotal
= 365
E0
= 1
dataOffset
= 'auto'
days0
= 70
r0
= 2.4
r1
= 0.85
sigma
= 0.312
gamma
= 0.357
beta0
= 0.857
beta1
= 0.304
population
= 1000
def model(Y
,t
,N
,beta0
,days0
,beta1
,gamma
,sigma
):
S
,E
,I
,R
= Y
beta
= beta0
if t
< days0
else beta1
dS
= - beta
* S
* I
/ N
dE
= beta
* S
* I
/ N
- sigma
* E
dI
= sigma
* E
- gamma
* I
dR
= gamma
* I
return dS
,dE
,dI
,dR
T
= np
.arange
(daysTotal
)
N0
= population
- E0
,E0
,0,0
res
= spi
.odeint
(model
,N0
,T
,args
=(population
,beta0
,days0
,beta1
,gamma
,sigma
))
plt
.figure
(figsize
= (10,10),dpi
= 100)
plt
.plot
(T
,res
[:,0],label
= 'S')
plt
.plot
(T
,res
[:,1],label
= 'E')
plt
.plot
(T
,res
[:,2],label
= 'I')
plt
.plot
(T
,res
[:,3],label
= 'R')
plt
.show
()
结果显示:
转载请注明原文地址:https://blackberry.8miu.com/read-9884.html