基于MATLAB的SEIR传染病模型建模与仿真

news/2024/11/15 19:43:55/文章来源:https://www.cnblogs.com/hardware/p/18394527

1.课题概述

        SEIR传染病模型是一种用于描述传染病传播过程的数学模型。这个模型将人群分为四类:易感者(Susceptible)、暴露者(Exposed)、感染者(Infectious)和康复者(Recovered),通过这四类人群之间的转化关系,来描述传染病的传播过程。通过matlab将这个过程进行建模与仿真。

 

2.系统仿真结果

 

 

 

3.核心程序与模型

版本:MATLAB2022a

% 初始化  
%总人口 
Npeople = 9e6;  
% 感染人数
I_0     = 98;    
% 暴露人数
E_0     = 20 * I_0;     
% 康复人数 / 免疫人数  
R_0     = 0;   
% 易感人数  
S_0     = Npeople - E_0 - I_0 - R_0;   
% 初始状态向量  
y0      = [S_0, E_0, I_0, R_0];%模拟时间设定 
%一年
days    = 365;  
h       = 1;   
%步长(1天)  
tspan   = 1:h:days;
% 使用ODE求解器进行模拟 % S:易感者, E:暴露者, I:感染者, R:康复者  
[t,y] = ode45(@(t,y) func_beta2(t,y,Npeople,beta,delta,gamma), tspan, y0);figure;
plot(t,y(:,1),'LineWidth',3); 
hold on
plot(t,y(:,2),'LineWidth',3); 
hold on
plot(t,y(:,3),'LineWidth',3); 
hold on
plot(t,y(:,4),'LineWidth',3); 
hold on
grid on
axis([0 days 0 10e6]);
title('没有人口学的SEIR模型的解决方案');
xlabel('时间 (days)');
ylabel('个体');
legend('S','E','I','R');figure;
plot(t,y(:,3),'g','LineWidth',3); 
grid on
axis([0 days 0 5e6]);
title('感染人数与时间的关系');
xlabel('时间 (days)');
ylabel('个体');figure;
plot(t_w,y_w(:,1),'LineWidth',3); 
hold on
plot(t_w,y_w(:,2),'LineWidth',3); 
hold on
plot(t_w,y_w(:,3),'LineWidth',3); 
hold on
plot(t_w,y_w(:,4),'LineWidth',3); 
hold on
grid on
axis([0 days 0 10e6]);
title('SEIR模型的解决方案');
xlabel('时间 (days)');
ylabel('个体');legend('S','E','I','R');figure;
plot(t_w,y_w(:,3),'LineWidth',3); 
grid on
axis([0 days 0 4e6]);
title('传染性个体数量与人口统计时间的关系');
xlabel('时间 (days)');
ylabel('个体');
0008

  

4.系统原理简介

       SEIR传染病模型是一种用于描述传染病传播过程的数学模型。这个模型将人群分为四类:易感者(Susceptible)、暴露者(Exposed)、感染者(Infectious)和康复者(Recovered),通过这四类人群之间的转化关系,来描述传染病的传播过程。

 

 

一、模型假设

在考察地区的总人数N不变,即不考虑人口的流动。

人群分为易感者、暴露者、感染者和康复者四类。

易感者被感染者传染后成为暴露者,暴露者经过一定时间的潜伏期后成为感染者,感染者康复后成为康复者。

康复者对原病毒具有免疫力,不再被感染。

 

 

二、符号说明

N:总人口数

S(t):t时刻易感者人数

E(t):t时刻暴露者人数

I(t):t时刻感染者人数

R(t):t时刻康复者人数

β:感染率,表示一个感染者平均每天能传染给多少个易感者

σ:潜伏期的倒数,即每天有多少比例的暴露者转化为感染者

γ:康复率,表示每天有多少比例的感染者康复

Λ:人口输入率,假设每天有Λ个新个体进入考察地区,这些新个体都是易感者。

 

三、模型建立

        根据模型假设和符号说明,我们可以建立以下微分方程来描述SEIR模型的传播过程:

 

 

 

      仍有守恒关系 S(t) + E(t) + I(t) + R(t) = 常数,病死者可归入 R 类。潜伏期康复率 γ1 和患者康复率 γ2 一般不同。潜伏期发展为患者的速率为 α。与 SIR 模型相比,SEIR 模型进一步考虑了与患者接触过的人中仅一部分具有传染性的因素,使疾病的传播周期更长。疾病最终的未影响人数 S∞ 和影响人数 R∞ 可通过数值模拟得到。

 

       其中,第一个方程表示易感者人数的变化率等于新增的易感者人数减去被感染者传染的易感者人数;第二个方程表示暴露者人数的变化率等于被感染者传染的易感者人数减去转化为感染者的暴露者人数;第三个方程表示感染者人数的变化率等于转化为感染者的暴露者人数减去康复的感染者人数;第四个方程表示康复者人数的变化率等于康复的感染者人数。

 

四、参数估计与模型求解

        为了求解SEIR模型,我们需要对模型参数进行估计。这些参数包括感染率β、潜伏期倒数σ和康复率γ。通常,我们可以通过疫情数据来估计这些参数。具体地,我们可以使用最小二乘法或其他优化算法来拟合疫情数据,从而得到参数的估计值。得到参数的估计值后,我们就可以使用数值方法(如欧拉法、龙格-库塔法等)来求解SEIR模型的微分方程,从而得到各类人群随时间的变化情况。

 

五、模型应用与预测

         SEIR模型可以用于预测传染病的传播趋势和评估防控措施的效果。通过调整模型参数,我们可以模拟不同场景下传染病的传播情况,从而为制定防控策略提供依据。例如,我们可以模拟不同感染率、潜伏期和康复率下传染病的传播情况,以评估不同防控措施的效果。此外,我们还可以使用SEIR模型来预测未来一段时间内的疫情发展趋势,以便及时采取应对措施。

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

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

相关文章

编译安装nginx并部署代码

1.编译安装nginx 编译安装:三部曲配置(configure),编译(make),安装(make install) 配置(configure) 指定安装目录 编译(make) 源代码---编译工具-->可执行文件(命令) 安装(make install) 根据第1步骤的配置,创建目录,复制文件,复制目录.1.1 Kylin_v10_sp3安装 [root@Kylin-V…

编译安装ngx并部署代码

1.编译安装nginx 编译安装:三部曲配置(configure),编译(make),安装(make install) 配置(configure) 指定安装目录 编译(make) 源代码---编译工具-->可执行文件(命令) 安装(make install) 根据第1步骤的配置,创建目录,复制文件,复制目录.1.1 Kylin_v10_sp3安装 [root@Kylin-V…

美团一面:Spring Cloud 远程调用为啥要采用 HTTP,而不是 RPC?

作者:简简单单神经蛙 来源:blog.csdn.net/m0_61878423/article/details/124607067 关于SpringCloud远程调用采用HTTP而非RPC。 1、首先SpringCloud开启Web服务依赖于内部封装的Tomcat容器,而今信息飞速发展,适应大流量的微服务,采用Tomcat处理HTTP请求,开发者编写Json作…

zabbix“专家坐诊”第254期问答

问题一 Q:老师,我重启zabbix-server服务,恢复正常了,然后过了一两分钟再刷新,有报这个错了。我看zabbix-server日志里没什么有用的信息。A:selinux 关闭一下 Q:是关闭状态 A:看看server 自监控有没有 报错提示,看看有没有什么指标是超过触发器的 Q:没有报错,看起来内…

解决 Exchange 发到邮件组报错 550 5.1.1 User unknown (in reply to RCPT TO command)

版本 2010 只需要关闭:要求所有发件人通过身份验证 位置: Exchange 管理控制台收件人配置通讯组XXX组属性邮件流设置邮件传递设置[√]要求所有发件人通过身份验证取消勾选,再点确定即可参考资料: https://portal.thobson.com/knowledgebase/427/550-511-User-unknown--How-…

Exchange 2016部署实施案例篇-03.Exchange部署篇(中)

上一章《Exchange 2016部署实施案例篇-03.Exchange部署篇(上)》我们对部署Exchange Server 2016的先决条件做了简单的讲解,接下来我们进入先决条件准备工作。 先简单说下环境:服务器名称IP地址系统作用ADSrv01 192.168.1.10 Win2016 GC(已部署完成)ADSrv02 192.168.1.20 Wi…

SpringBoot——关于banner

springboot启动后,控制台会打印一个图案出来,这个图案就叫banner,如果不配置的话打印的是springboot默认的banner 几个可以的生成banner的网址: https://bootschool.net/ascii https://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type Something

省钱的开源项目「GitHub 热点速览」W3

本期,我从上周的热门开源项目中挑选了 5 个既省钱又省事,还好玩的开源项目。 首先,推荐的是省钱的电动汽车智能充电管理平台 evcc,它可以根据分时电价智能安排电动车充电时间,从而降低电费,如果你家还有太阳能充电和储能设备,evcc 更能最大限度地利用电能,让你的充电成…

Go语言中的交互式CLI开发:survey库简介

在构建命令行工具时,良好的用户交互体验至关重要。尤其是在需要与用户进行复杂输入的场景下,传统的命令行参数和标志可能显得笨拙。github.com/AlecAivazis/survey/v2 是一个为 Go 语言设计的库,专门用于构建交互式的命令行界面。它提供了多种用户输入方式,让你的 CLI 工具…

专业级语义搜索优化:利用 Cohere AI、BGE Re-Ranker 及 Jina Reranker 实现精准结果重排

专业级语义搜索优化:利用 Cohere AI、BGE Re-Ranker 及 Jina Reranker 实现精准结果重排专业级语义搜索优化:利用 Cohere AI、BGE Re-Ranker 及 Jina Reranker 实现精准结果重排 1. 简介 1.1 RAG 在说重排工具之前,我们要先了解一下 RAG。 检索增强生成(RAG)是一种新兴的 …

Exchange 2016部署实施案例篇-02.活动目录部署篇

其实在写这篇博文之前纠结了好久,到底是该写部署1台AD演示下,还是部署2台活动目录那,比较这个专家还是以Exchang为主,但思来想去最终决定还是部署一主一辅吧,毕竟部署主与辅助还是稍微在步骤上有些不同的,废话不多说,接下来我们开始我们今天的话题,活动目录部署,请大家…

红米k70 pro澎湃os系统安装谷歌商店

第一步第二步 第三步 效果图