首页 > 编程语言 >基于SIR模型的疫情发展趋势预测算法matlab仿真

基于SIR模型的疫情发展趋势预测算法matlab仿真

时间:2024-09-03 11:47:08浏览次数:10  
标签:仿真 SIR 疫情 Opt 模型 算法 matlab 拟合

1.程序功能描述
基于SIR模型的疫情发展趋势预测算法.对病例增长进行SIR模型拟合分析,并采用模型参数拟合结果对疫情防控力度进行比较。整体思路为采用SIR微分方程模型,对疫情发展进行过程进行拟合。

2.测试软件版本以及运行结果展示
MATLAB2022a版本运行

 

3.核心程序

Opt=optimset; % 创建优化设置结构体
Opt.LargeScale ='off'; % 关闭大规模算法
Opt.TolFun     = 1e-30; % 设置函数值收敛容忍度
Opt.Tolx       = 1e-20; % 设置自变量收敛容忍度
Opt.TolCon     = 1e-30; % 设置约束收敛容忍度
 
b0=[0.0000046,0.02,10000,10,0]'; % 初始化需要拟合的参数
%有约束极小优化参数
[btarget,y]=fmincon(@func_parameter,b0,[],[],[],[],bmin,bmax,[],Opt);
 
%%
% 使用优化后的参数计算预测数据
date=0:120;% 定义新的日期范围
% 原始日期数组
dateRaw=0:length(real_data)-1;
% 使用优化后的参数解ODE
[date,X]=ode45(@func_SIR,date,btarget(3:5),[],btarget(1:2));
 
S=X(:,1); % 提取易感者数量
I=X(:,2); % 提取感染者数量
R=X(:,3); % 提取移除者数量
35

  

4.本算法原理
疾病传播模型采用的是SIR模型,模型结构如下图所示。

 

总人群由易感人群(S)、感染者(I)、隔离者(R)三部分构成。在计算过程中,总人口数目(N)保持不变:感染者具有传染能力,其每日接触易感人群数为 λ。而相应的,每日医疗机构会隔离比例为 μ 的患者,被隔离之后,感染者不再接触易感人群,丧失传染疾病的能力。

通过对上述微分方程组进行解析或数值求解,可以得到随时间变化的S(t), I(t), R(t) 函数,进而预测疫情发展趋势。通常情况下,需要根据实际情况确定参数β 和γ 的值,有时可以通过历史数据进行参数估计。

SIR模型为分析传染病传播动态提供了基础框架,但也存在一些简化假设,例如忽略了年龄结构、免疫效果等因素。在实际应用中,SIR模型可以进行多种扩展,如加入潜伏期的SEIR模型(Susceptible-Exposed-Infectious-Recovered)、考虑出生和死亡的SIRD模型(Susceptible-Infected-Recovered-Dead)等。

 

标签:仿真,SIR,疫情,Opt,模型,算法,matlab,拟合
From: https://www.cnblogs.com/softcodes/p/18394261

相关文章

  • 基于LK光流提取算法的图像序列晃动程度计算matlab仿真
    1.算法运行效果图预览(完整程序运行后无水印) 2.算法运行软件版本matlab2022a 3.部分核心程序(完整版代码包含详细中文注释和操作步骤视频) %晃动指标axes(handles.axes1);imshow(uint8(I0{kk}));axes(handles.axes2);quiver(x,y,hor,ve......
  • 海马算法(SHO)优化支持向量机原理及Matlab代码
    目录0引言1数学模型2优化方式3Maltab代码3.1伪代码3.2SHO主函数代码3.3SHO-SVM4视频讲解0引言海马算法(SeaHorseOptimizer,SHO)是ShijieZhao于2023年基于自然界中海马的运动、捕食和繁殖行为提出的群体智能算法。SHO算法两个阶段,SHO分别模拟了海马的不同运......
  • 非洲秃鹫算法(AVOV)优化BP神经网络原理及Matlab代码
    目录0引言1 数学模型2优化方式3Matlab代码3.1伪代码3.2AVOA主函数代码3.3AVOA-BP4视频讲解0引言非洲秃鹫算法(Africanvulturesoptimizationalgorithm,AVOA)是BenyaminAbdollahzadeh等人于2021年提出的群智能算法,该算法通过模拟非洲秃鹫典型的领导者-追随......
  • 非洲秃鹫算法(AVOA)优化支持向量机原理及Matlab代码
    目录0引言1 数学模型2优化方式3Matlab代码3.1伪代码3.2AVOA主函数代码3.3AVOA-SVM4视频讲解0引言非洲秃鹫算法(Africanvulturesoptimizationalgorithm,AVOA)是BenyaminAbdollahzadeh等人于2021年提出的群智能算法,该算法通过模拟非洲秃鹫典型的领导者-追随......
  • 使用MATLAB进行定积分计算
    在MATLAB中可以使用数值积分方法来计算定积分,定积分是求函数在给定区间上的面积,可以用于求解曲线下的面积、求解物理中的积分问题等。以下是使用MATLAB进行定积分计算的步骤和相应的源代码:步骤1:定义函数首先需要定义要进行积分的函数。假设我们要计算函数f(x)=x^2在区......
  • 低通和带通信号的简单理解与Matlab实现
    低通和带通信号是数字信号处理中常见的概念,用于处理和分析信号的频率特性,本文将以通俗易懂的方式解释低通和带通信号的概念,并提供在Matlab中实现这些信号的源代码示例。1、低通信号(Low-passSignal)低通信号是指频率较低的信号,它的特点是在一定频率以下具有较高的幅度,而在该频......
  • 机械电气电机杂谈杯 第一届 电机电磁仿真设计大赛--直流无刷电机
    大家好,我是博主,夏目关注的朋友大部分是做机械,电机方面的,经常有朋友问我,有没有可以实战电磁仿真的,很遗憾,没有,举办这个电机电磁仿真设计大赛的目的是促进粉丝之间的沟通,交流碰撞思想,意在模仿市面上已经量产的产品,对其分析,提出自己的见解,可能你会说,我刚入门,可以参加么?没问题,关......
  • 喂饭教程“15行代码”教你用matlab画玫瑰花表白成功!
    本代码十分适合编程小白,大家直接复制黏贴就可以向大家喜欢的人表个白吧!代码:n=800;p=pi;[R,T]=ndgrid(linspace(0,1,n),linspace(-2,20*p,n));x=1-(.5)*((5/4)*(1-mod(3.6*T,2*p)/p).^2-.25).^2;U=2*exp(-T/(8*p));L=sin(U);J=cos(U);y=1.99*(R.^2).*(1.2*R-1).^2.*L;......
  • 【没发表过的创新点】基于BiTCN-LSTM的风电功率预测研究(Matlab代码实现)
      ......
  • 基于CNN-BILSTM-Attention风电功率预测研究(Matlab代码实现)
      ......