SEIR

本文介绍如何使用Python构建并可视化一个简单的SEIR模型。模型描述了疾病传播过程,其中S代表易感者,E代表暴露者,I代表感染者,R代表康复者。文章通过初始化数据、理解画图工具和实现步骤,展示了模拟和绘图的过程,并指出代码效率问题,建议优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简易SEIR模型

要求:使用python画出一个简易SEIR模型图

问题描述:

在这里插入图片描述

随机选择一个节点(人)作为传播者(即感染I状态),t=0。如果一个 S 状态节点 与一个 I 状态节点接触,那么下一时间步(t +1)这个S状态的节点被感染的概率为w,进入潜伏(E)状态。每个E状态节点,下一时间步以概率 β变 为态,以概率 μ变为R状态。每个I状态节点下一时间步以概率μ 变为R状态。

初始化数据:
# 人数
SIZE = 1000
# 人人之间有联系概率, 概率过高会导致1000迅速被感染
Probability = 0.006
# 感染概率, w
infectionPro = 0.2
# 变异概率, β
mutationPro = 0.5
# 死亡或康复概率, μ
deathRecoveryPro = 0.2
# 执行感染次数
t = 100
了解画图工具:
import matplotlib.pyplot as plt

现在,我们知道plt.plot()方法可以帮助我们画图,我们需要提供动态的数据(x轴与y轴数据),例如:

x = [i for i in range(0, 5)]
y = [12, 3, 7, 4, 9]
plt.plot(x, y)
plt.show()

#注意x轴与y轴的数据量要相同
#当然也可以在一张图上画多条线,例如:
y1 = [6, 2, 8, 13, 7]
plt.plot(x, y)
plt.plot(x, y1)
plt.show()

#也可以给每条线设置不同颜色,不同格式等等,也可以给坐标轴设置标注,例如:
plt.xlabel("x")
plt.ylabel("y")
x = [i for i in range(0, 5)]
y = [12, 3, 7, 4, 9]
y1 =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值