【数学建模】基于SIR模型实现新冠病毒COVID-19估计附matlab代码

简介: 【数学建模】基于SIR模型实现新冠病毒COVID-19估计附matlab代码

1 内容介绍

COVID-19是由严重急性呼吸综合症冠状病毒2型引发的传染病,它最初病毒携带者是一些动物,传染源主要是COVID-19患者,无症状患者。传播方式主要是呼吸道飞沫近距离传播,接触传播,还有一些其他的传播方式待后续科研工作进一步证实。2019年12月,目前尚不知来源的新型冠状病毒COVID-19首先被报道于湖北省武汉市,随后由于寒假以及春运返潮等大规模人口流动,2020年1月底COVID-19蔓延扩散至全中国范围,使中国成为新型冠状病毒肺炎的重灾区;2020年3月底,COVID-19几乎肆虐地球上每一个国家,给全世界人民的生命安全和身体健康带来巨大威胁,给各国医护防控人员带来繁重的任务和巨大的压力,给世界经济带来严重阻力。因此,对COVID-19展开科学研究,探索它的传播机制,阻断它的传播渠道,能给COVID-19预防提供参考,控制提供数量依据,具有不可轻视的作用。 

2 仿真代码

function importTotalCases

% write the results of parsing into the 'data' directory (MB 20/04/23)

oldFolder = cd('data');

pwd

% get the current date in YYYYMMDD format

currentDateYYYYMMDD = strrep(datestr(date, 26), '/', '');

% set the filenames

fileCSV = ['totalcases', currentDateYYYYMMDD, '.csv'];

fileXLSX = ['totalcases', currentDateYYYYMMDD, '.xlsx'];


% import data from <https://ourworldindata.org/coronavirus-source-data>

% download the 'totalcase.csv' file

tcFileCSV = websave(fileCSV,'https://covid.ourworldindata.org/data/ecdc/total_cases.csv');


% read the CSV file, and then save it to XLSX format

TMPFILE = readtable(fileCSV);

writetable(TMPFILE,fileXLSX);


% we will write the results of parsing into the appropriate folder;

% in order to use the original Milan Batista's code, we put:

path = pwd;



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%    STEP 2: Split the data for individual countries     %%%

%%%       Milan Batista's original code for parsing        %%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Amin = 5;  % data les than Amin will be deleted from file begining


% get table

T = readtable(fileXLSX);


% get data

A =  T{:,2:end};

[nrow,ncol] = size(A);


% table column names

name = string(T.Properties.VariableNames);

name = name(2:end)';


% start date

date0 = datenum(T{1,1}); %datenum(txt{2,1},'dd.mm.yyyy'); %datenum('2019/12/31');


% end date

%date1 = date0 + nrow - 1;


%functions names

ffname = strings(ncol,1);

nn = 0;

for n = 1:ncol

   nname = name{n};

   if strcmp("",nname)

       continue

   end

   nn = nn + 1;

   nname = strrep(nname,' ','_');

   nname = strrep(nname,'-','_');  

   nname = strrep(nname,'''','_');      

   nname = strrep(nname,'(','_');      

   nname = strrep(nname,')','_');      

   fname = sprintf('getData%s.m',nname);

   fid = fopen(fullfile(path,fname),'w');

   if fid < 0

       fprintf('***Fail to open %s\n',fname);

       continue

   end

   fprintf('%d/%d country %s ...\n',ncol,n,nname);

   ffname(nn) = nname;

   fprintf(fid,'function [country,C,date0] = getData%s()\n',nname);

   fprintf(fid,'%%GETDATA%s Coronavirus data for %s\n',upper(nname),nname);

   fprintf(fid,'%%  as reported by One World in Data\n');

   fprintf(fid,'%%     https://ourworldindata.org/coronavirus-source-data\n');

   fprintf(fid,'country = ''%s'';\n',strrep(name(n),' ','_'));

   fprintf(fid,'C = [\n');

   found = false;

   nday = 0;

   for m = 1:nrow

       if ~found && (isnan(A(m,n)) || A(m,n) == 0 || A(m,n) < Amin)

           nday = nday + 1;

           continue

       else

           found = true;

       end

       fprintf(fid,'  %9d %% %s\n',A(m,n),datestr(date0 + m - 1));

   end

   fprintf(fid,'%%<-------------- add new data here\n');    

   fprintf(fid,']'';\n');

   % start date

   fprintf(fid,'date0=datenum(''%s'');\n',datestr(date0 + nday));

   fprintf(fid,'end\n');

   fclose(fid);

   

   %generete driver rutine

   fname = 'runAll.m';

   fid = fopen(fullfile(path,fname),'w');

   if fid < 0

       fprintf('***Fail to open %s\n',fname);

       continue

   end

   fprintf(fid,'prn = ''off'';\n');

   fprintf(fid,'plt = ''on'';\n');

   for n = 1:nn

       fprintf(fid,'try\n');

       fprintf(fid,'  fitVirusCV19(@getData%s,''prn'',prn,''jpg'',plt)\n',...

           ffname(n));

       fprintf(fid,'end\n');

   end

   fclose(fid);

   

   cd(oldFolder)

end

3 运行结果

4 参考文献

[1]任中贵. 基于SIR模型的COVID-19疫情数据分析[J]. 电子元器件与信息技术, 2020, 4(7):3.

[2]成红胜, 成诚. 基于COVID-19传染病SIR模型的稳定性分析[J]. 淮阴师范学院学报:自然科学版, 2021, 20(4):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。



相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
17天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
2月前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。
|
2月前
|
算法
基于Kronig-Penney能带模型的MATLAB求解与仿真
基于Kronig-Penney能带模型的MATLAB求解与仿真,利用MATLAB的多种数学工具简化了模型分析计算过程。该模型通过一维周期势垒描述晶体中电子运动特性,揭示了能带结构的基本特征,对于半导体物理研究具有重要价值。示例代码展示了如何使用MATLAB进行模型求解和图形绘制。
|
3月前
|
算法 5G 数据安全/隐私保护
SCM信道模型和SCME信道模型的matlab特性仿真,对比空间相关性,时间相关性,频率相关性
该简介展示了使用MATLAB 2022a进行无线通信信道仿真的结果,仿真表明信道的时间、频率和空间相关性随间隔增加而减弱,并且宏小区与微小区间的相关性相似。文中介绍了SCM和SCME模型,分别用于WCDMA和LTE/5G系统仿真,重点在于其空间、时间和频率相关性的建模。SCME模型在SCM的基础上进行了扩展,提供了更精细的参数化,增强了模型的真实性和复杂度。最后附上了MATLAB核心程序,用于计算不同天线间距下的空间互相关性。
77 0
|
3月前
|
算法 5G 数据安全/隐私保护
3D-MIMO信道模型的MATLAB模拟与仿真
该研究利用MATLAB 2022a进行了3D-MIMO技术的仿真,结果显示了不同场景下的LOS概率曲线。3D-MIMO作为5G关键技术之一,通过三维天线阵列增强了系统容量和覆盖范围。其信道模型涵盖UMa、UMi、RMa等场景,并分析了LOS/NLOS传播条件下的路径损耗、多径效应及空间相关性。仿真代码展示了三种典型场景下的LOS概率分布。
92 1
|
3月前
|
算法
基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
该程序基于GA遗传优化设计了离散交通网络的双层规划模型,以路段收费情况的优化为核心,并通过一氧化碳排放量评估环境影响。在MATLAB2022a版本中进行了验证,显示了系统总出行时间和区域排放最小化的过程。上层模型采用多目标优化策略,下层则确保总阻抗最小,实现整体最优解。
|
3月前
|
监控 算法 安全
基于颜色模型和边缘检测的火焰识别FPGA实现,包含testbench和matlab验证程序
本项目展示了基于FPGA的火焰识别算法,可在多种应用场景中实时检测火焰。通过颜色模型与边缘检测技术,结合HSV和YCbCr颜色空间,高效提取火焰特征。使用Vivado 2019.2和Matlab 2022a实现算法,并提供仿真结果与测试样本。FPGA平台充分发挥并行处理优势,实现低延迟高吞吐量的火焰检测。项目包含完整代码及操作视频说明。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
203 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
算法
基于SIR模型的疫情发展趋势预测算法matlab仿真
该程序基于SIR模型预测疫情发展趋势,通过MATLAB 2022a版实现病例增长拟合分析,比较疫情防控力度。使用SIR微分方程模型拟合疫情发展过程,优化参数并求解微分方程组以预测易感者(S)、感染者(I)和移除者(R)的数量变化。![]该模型将总人群分为S、I、R三部分,通过解析或数值求解微分方程组预测疫情趋势。

热门文章

最新文章

下一篇
无影云桌面