数学建模微分方程模型——传染病模型

病毒也疯狂:细说传染病微分方程模型的那些事儿

“数学是打开科学大门的钥匙,而微分方程则是理解世界变化的密码。”

大家好!今天我们要聊一聊一个既严肃又有趣的话题——传染病微分方程模型。别急,听起来高大上,其实一点也不枯燥。坐稳了,带你穿越数学的时空隧道,揭秘传染病模型的奥秘!

一、前言

传染病模型成为了热门话题。但你知道这些模型是怎么建立的吗?它们背后的数学原理是什么?别担心,即使你数学只学到九九乘法表,今天也能听懂!

二、传染病模型的基本概念

1.1 SIR模型

首先登场的是我们的主角——SIR模型。SIR代表易感者(Susceptible)、感染者(Infected)和康复者(Recovered)。

1.1.1 模型假设
  • 人口固定:没有出生和死亡。
  • 均匀混合:每个人都有可能接触到其他人。
  • 立即感染:易感者接触感染者后立即成为感染者。
1.1.2 微分方程

数学表达如下:
{ d S d t = − β S I d I d t = β S I − γ I d R d t = γ I \begin{cases} \frac{dS}{dt} = -\beta SI \\ \frac{dI}{dt} = \beta SI - \gamma I \\ \frac{dR}{dt} = \gamma I \end{cases} dtdS=βSIdtdI=βSIγIdtdR=γI

其中:

  • S S S:易感者人数
  • I I I:感染者人数
  • R R R:康复者人数
  • β \beta β:传染率
  • γ \gamma γ:康复率

1.2 模型解析

  • 传染率 β \beta β:一个感染者每天能感染的易感者人数。
  • 基本再生数 R 0 = β γ R_0 = \dfrac{\beta}{\gamma} R0=γβ:一个感染者在感染期内能感染的人数。

三、实例分析:SIR模型在传染病中的应用

让我们通过一个具体的例子,看看SIR模型是如何运作的。

3.1 参数设定

假设:

  • 总人口 N = 10000 N = 10000 N=10000
  • 初始感染者 I 0 = 1 I_0 = 1 I0=1
  • 初始易感者 S 0 = N − I 0 = 9999 S_0 = N - I_0 = 9999 S0=NI0=9999
  • 初始康复者 R 0 = 0 R_0 = 0 R0=0
  • 传染率 β = 0.3 \beta = 0.3 β=0.3
  • 康复率 γ = 0.1 \gamma = 0.1 γ=0.1

3.2 MATLAB代码实现

好了,数学说完了,下面进入实战环节!让我们用MATLAB来模拟这个过程。

% SIR模型模拟
clear; clc; close all;% 参数设置
N = 10000;      % 总人口
beta = 0.3;     % 传染率
gamma = 0.1;    % 康复率
I0 = 1;         % 初始感染者
S0 = N - I0;    % 初始易感者
R0 = 0;         % 初始康复者
tspan = [0 160];% 模拟时间% 初始条件
y0 = [S0; I0; R0];% 微分方程
function dydt = sir_equations(t, y)S = y(1);I = y(2);R = y(3);N = S + I + R;beta = 0.3;gamma = 0.1;dSdt = -beta * S * I / N;dIdt = beta * S * I / N - gamma * I;dRdt = gamma * I;dydt = [dSdt; dIdt; dRdt];
end% 求解微分方程
[t, y] = ode45(@sir_equations, tspan, y0);% 提取结果
S = y(:,1);
I = y(:,2);
R = y(:,3);% 数据可视化
plot(t, S, 'b', 'LineWidth', 1); hold on;
plot(t, I, 'r', 'LineWidth', 1);
plot(t, R, 'g', 'LineWidth', 1);
xlabel('时间');
ylabel('人数');
title('SIR模型模拟传染病传播');
legend('易感者', '感染者', '康复者');
grid on;

3.3 结果分析

运行代码后,我们得到如下图像:
在这里插入图片描述

  • 感染者人数在第50天左右达到峰值。
  • 易感者人数逐渐减少。
  • 康复者人数逐渐增加。

四、深入探讨:模型的改进与扩展

4.1 SEIR模型

考虑潜伏期的影响,引入暴露者(Exposed),得到SEIR模型

4.1.1 微分方程

{ d S d t = − β S I d E d t = β S I − σ E d I d t = σ E − γ I d R d t = γ I \begin{cases} \frac{dS}{dt} = -\beta SI \\ \frac{dE}{dt} = \beta SI - \sigma E \\ \frac{dI}{dt} = \sigma E - \gamma I \\ \frac{dR}{dt} = \gamma I \end{cases} dtdS=βSIdtdE=βSIσEdtdI=σEγIdtdR=γI

其中 σ \sigma σ 是潜伏率。

4.2 MATLAB代码实现

% SEIR模型模拟
clear; clc; close all;% 参数设置
N = 10000;      
beta = 0.3;     
gamma = 0.1;    
sigma = 0.2;    
I0 = 1;         
E0 = 0;         
S0 = N - I0 - E0; 
R0 = 0;         
tspan = [0 160];% 初始条件
y0 = [S0; E0; I0; R0];% 微分方程
function dydt = seir_equations(t, y)S = y(1);E = y(2);I = y(3);R = y(4);N = S + E + I + R;beta = 0.3;gamma = 0.1;sigma = 0.2;dSdt = -beta * S * I / N;dEdt = beta * S * I / N - sigma * E;dIdt = sigma * E - gamma * I;dRdt = gamma * I;dydt = [dSdt; dEdt; dIdt; dRdt];
end% 求解微分方程
[t, y] = ode45(@seir_equations, tspan, y0);% 提取结果
S = y(:,1);
E = y(:,2);
I = y(:,3);
R = y(:,4);% 数据可视化
plot(t, S, 'b', 'LineWidth', 1); hold on;
plot(t, E, 'm', 'LineWidth', 1);
plot(t, I, 'r', 'LineWidth', 1);
plot(t, R, 'g', 'LineWidth', 1);
xlabel('时间');
ylabel('人数');
title('SEIR模型模拟传染病传播');
legend('易感者', '潜伏者', '感染者', '康复者');
grid on;

4.3 结果分析

在这里插入图片描述

  • 潜伏者人数的引入,使得感染者的峰值出现时间延后。
  • 模型更加贴近现实。

五、参数敏感性分析

5.1 传染率 β \beta β 的影响

通过改变 β \beta β 值,观察感染者人数的变化。

5.2 MATLAB代码实现

% 参数敏感性分析
beta_values = [0.1, 0.3, 0.5];
colors = {'r', 'g', 'b'};for i = 1:length(beta_values)beta = beta_values(i);% 其余代码同上,只需修改beta的值% ...% 在循环内绘制感染者曲线plot(t, I, 'Color', colors{i}, 'LineWidth', 2); hold on;
endlegend('\beta=0.1', '\beta=0.3', '\beta=0.5');

5.3 结果分析

  • 传染率越高,感染者峰值越高,疫情爆发越快。
  • 控制传染率是防控疫情的关键。

六、模型的局限性与改进方向

6.1 模型假设的局限

  • 人口固定:现实中存在出生、死亡和迁移。
  • 均匀混合:忽略了社交网络结构。
  • 参数恒定:传染率和康复率可能随时间变化。

6.2 改进方向

  • 引入年龄结构:不同年龄段的传染率不同。
  • 考虑地理因素:使用空间模型。
  • 参数动态调整:结合实时数据,使用机器学习方法。

七、总结

通过今天的分享,我们了解了传染病微分方程模型的基本原理和应用。数学模型虽然有一定的局限性,但在疫情防控中发挥了重要作用。希望大家能对数学建模产生兴趣,用数学的力量为社会做出贡献!

八、参考文献

  1. Kermack, W. O., & McKendrick, A. G. (1927). A Contribution to the Mathematical Theory of Epidemics. Proceedings of the Royal Society A.
  2. Hethcote, H. W. (2000). The Mathematics of Infectious Diseases. SIAM Review.

标签

  • 数学建模
  • MATLAB
  • 微分方程模型
  • 传染病模型

最后

感谢大家的耐心阅读!下次再见,祝大家身体健康,远离病毒,天天开心!非常感谢您抽出时间来阅读我的文章!您的意见非常宝贵。文中可能有些地方表达得不够准确或错误,如果您遇到有需要改进或调整的地方。如果有任何问题或建议,请随时告诉我,我会非常感激。再次感谢您的阅读!

订阅与关注

如果你对数学建模、MATLAB感兴趣,欢迎订阅我的博客,获取最新的技术文章和研究动态。也可以通过以下方式与我交流:

  • 📧 邮箱:beining_chen@stu.zzu.edu.cn

版权信息

© 2024 [Cherngul]. 保留所有权利。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚信安全DeepSecurity中标知名寿险机构云主机安全项目

近日,亚信安全DeepSecurity成功中标国内知名寿险机构的云主机安全项目。亚信安全凭借在云主机安全防护领域的突出技术优势,结合安全运营的能力,以“实战化”为指导,为用户提供无惧威胁攻击、无忧安全运营的一站式云安全体系&#…

【论文翻译】ICLR 2018 | DCRNN:扩散卷积递归神经网络:数据驱动的交通预测

论文题目Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting论文链接https://arxiv.org/abs/1707.01926源码地址https://github.com/liyaguang/DCRNN发表年份-会议/期刊2018 ICLR关键词交通预测,扩散卷积,递归神经网络…

数字+文旅:AI虚拟数字人如何焕发传统文旅景区新活力?

​​引言: 据《2024年中国数字文旅行业市场研究报告》显示,截至2022年,中国数字文旅市场规模已达到约9698.1亿元人民币,相较于2017年的7870.5亿元,实现了57.89%的显著增长。这一行业涵盖了数字化的文化遗产旅游、虚拟…

JVM、字节码文件介绍

目录 初识JVM 什么是JVM JVM的三大核心功能 JVM的组成 字节码文件的组成 基础信息 Magic魔数 主副版本号 其它基础信息 常量池 字段 方法 属性 字节码常用工具 javap jclasslib插件 阿里Arthas 初识JVM 什么是JVM JVM的三大核心功能 1. 解释和运行虚拟机指…

【性能优化】安卓性能优化之CPU优化

【性能优化】安卓性能优化之CPU优化 CPU优化及常用工具原理与文章参考常用ADB常用原理、监控手段原理监控手段多线程并发解决耗时UI相关 常见场景排查CPU占用过高常用系统/开源分析工具AndroidStudio ProfilerSystraceBtracePerfettoTraceView和 Profile ANR相关ANR原理及常见场…

使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程

使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程 在日常开发中,许多开发者需要远程连接服务器进行代码编辑和调试。Visual Studio Code(VSCode)提供了一个非常强大的扩展——Remote-SSH,它允许我们通过 SSH 协议直接连接远程…

YOLO V3 网络构架解析

YOLO V3(You Only Look Once version 3)是由Joseph Redmon等人于2018年提出的一种基于深度学习的目标检测算法。它在速度和精度上相较于之前的版本有了显著提升,成为计算机视觉领域的一个重要里程碑。本文将详细解析YOLO V3的网络架构&#x…

【信息论基础第六讲】离散无记忆信源等长编码包括典型序列和等长信源编码定理

一、信源编码的数学模型 我们知道信源的输出是消息序列,对于信源进行编码就是用码字集来表示消息集,也就是要进行从消息集到码字集的映射。 根据码字的特征我们又将其分为D元码,等长码,不等长码,唯一可译码。 我们通过…

通过DevTools逃离Chrome沙盒(CVE-2024-6778和CVE-2024-5836)

介绍 这篇博文详细介绍了如何发现CVE-2024-6778和CVE-2024-5836的,这是Chromium web浏览器中的漏洞,允许从浏览器扩展(带有一点点用户交互)中进行沙盒逃逸。 简而言之,这些漏洞允许恶意的Chrome扩展在你的电脑上运行…

npm run serve 提示异常Cannot read property ‘upgrade‘ of undefined

npm run serve 提示Cannot read property ‘upgrade’ of undefined 一般是proxy的target代理域名问题导致的,如下: 解决方案: proxy: { “/remoteDealerReportApi”: { target: ‘http://demo-.com.cn’, //此域名有问题,会导致…

Linux-基础命令及相关知识2

补充: 1、A命令(echo)既有可能是内部命令也有可能是外部命令,例如命令A既有可能在bash上也有可能在csh上,为了防止A在某些shell程序里不起作用,可以将A命令设置为外部命令(环境变量路径上&…

【JAVA毕设】基于JAVA的酒店管理系统

一、项目介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router实现动态路由,Ajax实现前后端通信,Element-plus组件库使页面快速成型。后端部分:采用SpringBoot作为开发框架,同时集成MyBatis、Redis、…

Chrome DevTools:Console Performance 汇总篇

Chrome DevTools Chrome 开发者工具是一套 Web 开发者工具,直接内置于 Google Chrome 浏览器中。 开发者工具可以帮助您即时修改页面和快速诊断问题,最终帮助您更快地构建更好的网站。 一、开启 DevTools 右上角菜单 > 更多工具 > 开发者工具 页面…

如何用mmclassification训练多标签多分类数据

这里使用的源码版本是 mmclassification-0.25.0 训练数据标签文件格式如下,每行的空格前面是路径(图像文件所在的绝对路径),后面是标签名,因为特殊要求这里我的每张图像都记录了三个标签每个标签用“,”分开&#xff0…

力扣71~75题

题71(中等): python代码: class Solution:def simplifyPath(self, path: str) -> str:#首先根据/分割字符串,再使用栈来遍历存储p_listpath.split(/)p_stack[]for i in p_list:#如果为空则肯定是//或者///if i:con…

mac m1 安装openresty以及redis限流使用

一切源于一篇微信文章 早上我上着班,听着歌1.打算使用腾讯云服务器centos-7实验:安装ngx_devel_kitmac m1 os 12.7.6 安装openresty测试lua限流: 终于回到初心了! 早上我上着班,听着歌 突然微信推送了一篇文章《Nginx 实现动态封…

记录一次从nacos配置信息泄露到redis写计划任务接管主机

经典c段打点开局。使用dddd做快速的打点发现某系统存在nacos权限绕过 有点怀疑是蜜罐,毕竟nacos这实在是有点经典 nacos利用 老规矩见面先上nacos利用工具打一波看看什么情况 弱口令nacos以及未授权访问,看这记录估计被光顾挺多次了啊 手动利用Nacos-…

MySQL - Navicat自动备份MySQL数据

对于从事IT开发的工程师,数据备份我想大家并不陌生,这件工程太重要了!对于比较重要的数据,我们希望能定期备份,每天备份1次或多次,或者是每周备份1次或多次。 如果大家在平时使用Navicat操作数据库&#x…

深入解析Python数据容器

Python数据容器 1,数据容器介绍2,数据容器的分类3,数据容器:list(列表)3.1,列表的定义3.2,列表的下标索引3.3,列表的常用操作3.3.1,查找指定元素下标3.3.2&am…

【OpenAI】第三节(上下文)什么是上下文?全面解读GPT中的上下文概念与实际案例

文章目录 一、GPT上下文的定义1.1 上下文的组成 二、GPT上下文的重要性2.1 提高生成文本的相关性2.2 增强对话的连贯性2.3 支持多轮对话 三、使用上下文改善编程对话3.1 使用上下文的概念3.2 使用上下文改善对话的作用3.3 使用上下文改善对话的方法3.4 案例分析 四、利用历史记…