基于python的新冠肺炎SEIR简易模型

常见的传染病模型有SI、SIR、SIS、SIRS、SEIR等模型,这些模型的具体公式在本文中就不写了,大概提一下这几个字母代表的意义。
S:易感染者
E:潜伏者
I:感染者
R:康复者
我写的SEIR模型中还引入了一个D参数,代表死亡者,我查看了很多博客很多里面都忽略了这个参数,可能是有其他考虑,因为这个模型本身就不是一个很精确的模型,仅供参考作用,所以这里对精确性不做评价。代码及结果如下;

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import scipy.integrate as spi
import pylab as pl
import math
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False

N = 5000000  # 人口总数
E = []  # 潜伏携带者
E.append(0)
I = []  # 传染者
I.append(1)
S = []  # 易感者
S.append(N - I[0])
R = []  # 康复者
R.append(0)

D = []  # 死亡者
D.append(0)



r = 10  # 传染者接触人数
b = 0.03  # 传染者传染概率
a = 0.1  # 潜伏者患病概率
r2 = 30  # 潜伏者接触人数
b2 = 0.03  # 潜伏者传染概率
y = 0.2  # 康复概率
k = 0.01 #死亡率
T = [i for i in range(0, 150)]  # 时间

def calc(T):
    global r
    global r2
    for i in range(0, len(T) - 1):
        if i>=27:
            r = 2
            r2 = 2

        S.append(S[i] - r * b * S[i] * I[i] / N - r2 * b2 * S[i] * E[i] / N)
        E.append(E[i] + r * b * S[i] * I[i] / N - a * E[i] + r2 * b2 * S[i] * E[i] / N)
        I.append(I[i] + a * E[i] - (k+y) * I[i])
        R.append(R[i] + y * I[i])
        D.append(D[i]+k*I[i])
 
def plot(T,S,E,I,R,D):
    plt.figure()
    plt.title("SEIR-nCoV 传播时间曲线")
    plt.plot(T,S,color='r',label='易感者')
    plt.plot(T, E, color='k', label='潜伏者')
    plt.plot(T, I, color='b', label='传染者')
    plt.plot(T, R, color='g', label='移除者')
    plt.plot(T,D,color='black',label='死亡者',linestyle='dashdot')
    plt.grid(False)
    plt.legend()
    plt.xlabel("时间(天)")
    plt.ylabel("人数")
    pl.savefig('SEIR-nCoV 传播时间曲线.png', dpi=900)
    plt.show()
if __name__ == '__main__':

    calc(T)
    plot(T,S,E,I,R,D)


在这里插入图片描述
仅供学习参考使用

  • 14
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值