【传染病模型】

news2024/11/17 1:28:31

传染病模型:原理介绍与应用实战

一、概述

在公共卫生研究中,传染病模型是一种关键的理论工具,用于理解和预测传染病的传播方式。

二、传染病模型原理

2.1 SIR模型

SIR模型是描述感染性传播病病人数量变化最简单的模型之一。其中,S代表易感者(Susceptible),即还未感染病毒但有可能感染的人群;I代表感染者(Infectious),即已经感染病毒并能够传播病毒的人群;R代表康复者(Recovered),即已经从病毒感染中康复并具有免疫力的人群。

在这个模型中,有两个重要的参数:感染率β和康复率γ。感染率描述了感染者每天接触并成功感染易感者的概率,康复率描述了感染者康复成免疫者的概率。

2.2 SEIR模型

SEIR模型是在SIR模型的基础上增加了暴露者(Exposed)的类别。E类的人群是已经被感染,但是还没有发病,也无法传播病毒。此外,SEIR模型中引入了潜伏期。

这两个模型的关键在于它们的动力学方程,通过微分方程来描述疾病的传播过程。

三、Python实战:COVID-19疫情模拟

利用Python进行SIR模型的模拟。我们的目标是对COVID-19疫情的传播进行模拟。

3.1 数据准备

首先,我们需要准备一些初始参数。这些参数基于COVID-19疫情的一些基本信息。

import numpy as np
import matplotlib.pyplot as plt
# 配置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像时负号'-'显示为方块的问题
# 初始参数
N = 10000  # 总人口数
I0 = 1  # 初始感染者人数
R0 = 0  # 初始康复者人数
S0 = N - I0 - R0  # 初始易感者人数

beta = 0.3  # 感染率
gamma = 0.1  # 康复率

T = 160  # 模拟时间

3.2 模型构建

我们定义SIR模型的微分方程,然后使用scipyodeint函数进行数值积分。

from scipy.integrate import odeint

# SIR模型的微分方程
def deriv(y, t, N, beta, gamma):
    S, I, R = y
    dSdt = -beta * S * I / N
    dIdt = beta * S * I / N - gamma * I
    dRdt = gamma * I
    return dSdt, dIdt, dRdt

# 初始条件
y0 = S0, I0, R0

# 时间网格
t = np.linspace(0, T, T)

# 求解SIR模型
ret = odeint(deriv, y0, t, args=(N, beta, gamma))
S, I, R = ret.T

3.3 结果可视化

接下来,我们可以将模拟结果进行可视化。

import matplotlib.pyplot as plt
# 绘图
fig = plt.figure(facecolor='w')
ax = fig.add_subplot(111, axisbelow=True)
ax.plot(t, S/1000, 'b', alpha=0.5, lw=2, label='易感者')
ax.plot(t, I/1000, 'r', alpha=0.5, lw=2, label='感染者')
ax.plot(t, R/1000, 'g', alpha=0.5, lw=2, label='康复者')
ax.set_xlabel('时间(天)')
ax.set_ylabel('人数(千人)')
ax.grid(True, which='major', color='w', linewidth=2, linestyle='-')  # 修改关键字参数
legend = ax.legend()

# 显示图形
plt.show()

结果如图:

在这个模拟中,我们可以看到疾病的传播过程,以及感染者人数的峰值和康复者人数的增长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不要再重复造轮子了,这几款开源工具类库贼好使

在实际项目开发中,从稳定性和效率的角度考虑,重复造轮子是不被提倡的。但是,自己在学习过程中造轮子绝对是对自己百利而无一害的,造轮子是一种特别能够提高自己系统编程能力的手段。 基于 SpringBoot Vue uni-app 实现的全套电商…

小白如何快速入门?

入门 Web 安全、安卓安全、二进制安全、工控安全还是智能硬件安全等等,每个不同的领域要掌握的技能也不同。当然入门 Web 安全相对难度较低,也是很多人的首选。主要还是看自己的兴趣方向吧。 本文就以下几个问题来说明网络安全大致学习过程&#x1f447…

【CSS3系列】第三章 · CSS3新增边框和文本属性

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

5月总共面试15次,我真哭了....

3年测试经验原来什么都不是,只是给你的简历上画了一笔,一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 先说一下自己的个人情况,普通二本计算机专业…

【Spring Cloud】Spring Cloud 中 Zuul 网关原理及其配置

文章目录 前言一、Zuul 网关简介二、Zuul 网关使用场景三、Zuul 网关原理3.1 过滤器3.2 生成路由并发送给后端服务3.3 处理路由响应 四、Zuul 网关配置过程步骤1:添加依赖步骤2:创建配置类步骤3:配置路由规则步骤4:添加过滤器 五、…

【C# 10 和 .NET 6】使用MVC模式构建网站(笔记2)

3. 自定义 ASP.NET Core MVC 网站 现在您已经了解了基本 MVC 网站的结构,您将对其进行自定义和扩展。您已经为 Northwind 数据库注册了一个 EF Core 模型,因此下一个任务是在主页上输出一些数据。 3.1 定义自定义样式 主页将显示 Northwind 数据库中77 种…

常见的IO模型

计算机硬件包括CPU,内存,网卡 为了避免用户应用和操作系统内核产生冲突乃至内核崩溃,用户应用和内核是隔离开的 1)进程的寻址空间会被划分成两部分,内核空间和用户空间,内核和用户应用都无法直接访问物理内存&#xff…

【Vue】Vuex,Vue-Router

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 Vuexvue-router Vuex 将公用的数据统一存放在store(全局数据中心)中,实现更方便的跨…

从实习到秋招成为一名安全工程师,我经历了什么

前言 借朋友口述总结了安全招聘面试经历分享,希望更多的人看到这篇文,从中得到启发,找到自己心仪的工作。 基本情况 签了字节的三方,秋招终于告一段落。从八月份边实习边准备秋招到现在,经历了许多,这篇帖…

2023金三银四Java开发岗热门面试题总结

最近很多粉丝朋友私信我说:熬过了去年的寒冬却没熬过现在的内卷;打开 Boss 直拒一排已读不回,回的基本都是外包,薪资还给的不高,对技术水平要求也远超从前;感觉 Java 一个初中级岗位有上千人同时竞争&#…

都说00后已经躺平了,但是有一说一,该卷的还是卷啊。

这不,三月份春招我们公司来了个00后,工作没两年,跳槽到我们公司起薪20K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天,原来这位小老弟家里条件不太好&…

Java学习路线(21)——网络通信

一、网络通信三件套 1、IP地址: 设备在网络中的地址,唯一标识 概念: Internet Protocal,简称为IP,全称“互联网协议地址”。 常见分类: IPv4(32位) 和 IPv6(128位&#…

IDEA debug断点调试认识与技巧

IDEA debug断点调试认识与技巧 文章目录 IDEA debug断点调试认识与技巧认识debug常见的操作如何开启debug模式 基本用法和快捷键1、显示执行点(Alt F10)2、步过(F8)3、步入(F7)4、强制步入(Alt…

【容器云架构】确定容器网络calico最佳网络选项

大图 了解 Calico 支持的不同网络选项,以便您可以根据需要选择最佳选项。 价值 Calico 灵活的模块化架构支持广泛的部署选项,因此您可以选择适合您特定环境和需求的最佳网络方法。这包括使用各种 CNI 和 IPAM 插件以及底层网络类型以非覆盖或覆盖模式运行…

线性回归模型一二三

文章目录 什么是线性回归线性回归的求解一元线性回归(最小二乘法)多元线性回归 衍生求解梯度下降智能搜索算法求解(PSO)简要分析 线性回归与简单神经网络联系类比推导反向传播 总结 什么是线性回归 线性回归的基本假设是&#xf…

Java JUC并发编程调优

前言 1、JUC是指有关 java.util.concurrent包以及其子包,这些包都是有关线程操作的包 2、HTTPS服务请求中,WEB服务只负责创建主线程来接收外部的HTTPS请求,如果不做任何处理,默认业务逻辑是通过主线程来做的,如果业务…

预训练大语言模型的三种微调技术总结:fine-tuning、parameter-efficient fine-tuning和prompt-tuning

预训练大模型,尤其是大语言模型已经是当前最火热的AI技术。2018年Google发布BERT模型(BERT在DataLearner官方模型卡信息:https://www.datalearner.com/ai-models/pretrained-models/BERT )的时候,大家还没有意识到本轮…

国际植物命名数据库(International Plant Names Index)

功能介绍 https://www.ipni.org/ 是国际植物命名数据库(International Plant Names Index)的官方网站。国际植物命名数据库是一个全球性的植物命名和分类资源,旨在提供植物命名信息的权威来源。以下是该网站的一些特点和功能: 植…

wmvcore.dll丢失怎么弄?解决wmvcore.dll丢失问题

wmvcore.dll是Windows Media Player中的一个重要组件,它负责处理视频和音频文件的编码和解码。如果您在使用Windows Media Player或其他媒体播放器时遇到了wmvcore.dll丢失的问题,那么您可能无法播放视频或音频文件。在这种情况下,您可以使用…

干货|接口测试必备技能-常见接口协议解析

【摘要】 服务与服务之间传递数据包,往往会因为不同的应用场景,使用不同的通讯协议进行传递。比如网站的访问,常常会使用 HTTP 协议进行传递,文件传输使用 FTP,邮件传递使用 SMTP。上述的三种类型的协议都处于网络模型…