【数学建模】基于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 运行结果

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

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

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

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

4 参考文献

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

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

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

部分理论引用网络文献,若有侵权联系博主删除。文章来源地址https://www.toymoban.com/news/detail-495360.html

到了这里,关于【数学建模】基于SIR模型实现新冠病毒COVID-19估计附matlab代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述  2算法实现流程 3实例  4matlab实现层次分析法 5计算结果 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法的缺陷在于判断矩阵是主观决定的,

    2024年02月04日
    浏览(49)
  • 【数学建模】常用微分方程模型 + 详细手写公式推导 + Matlab代码实现

    微分方程基本概念 微分方程在数学建模中的应用 微分方程常用模型(人口增长模型、传染病模型) 2022.06.19 微分方程,是指含有未知函数及其导数的关系式。解微分方程就是找出未知函数。 微分方程是伴随着微积分学一起发展起来的。微积分学的奠基人Newton和Leibniz的著作中

    2024年02月09日
    浏览(61)
  • 【数学建模笔记】【第十讲(2)】聚类模型之:系统(层次)聚类及spss实现

    系统(层次)聚类解决了K-均值聚类的一个最大的问题:聚类的个数需要自己给定。 系统聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据 点合成一类,并生成 聚类谱系图 。我们可以根据这个图来确定

    2024年02月12日
    浏览(34)
  • 数学建模--时间序列预测模型的七种经典算法的Python实现

    目录 1.开篇版权提示 2.时间序列介绍  3.项目数据处理 4.项目数据划分+可视化 5.时间预测序列经典算法1:朴素法 6.时间预测序列经典算法2: 简单平均法 7.时间预测序列经典算法3:移动平均法 8.时间预测序列经典算法4:简单指数法  9.时间预测序列经典算法5:Holt线性趋势法

    2024年02月10日
    浏览(36)
  • 【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码

    北京时间:2023年9月7日 18:00-2023年9月10日20:00 可以参考我提供的历史竞赛信息内容,最新更新我会发布在博客和知乎上, 请关注我 获得最新更新通知 http://t.csdn.cn/UX52d 2023高教社杯9月7号18点开赛,本团队会出全部题的资料,开赛赛预售最低价,下单后进群,不确定选哪个题的

    2024年02月09日
    浏览(43)
  • 【数学建模】-- 数学规划模型

    概述: 什么是数学规划? 数学建模中的数学规划是指利用数学方法和技巧对问题进行数学建模,并通过数学规划模型求解最优解的过程。数学规划是一种数学优化方法,旨在找到使目标函数达到最大值或最小值的变量取值,同时满足一系列约束条件。 数学规划包括多种不同

    2024年02月12日
    浏览(37)
  • 【数学建模】优化模型——规划模型

    在数学建模中,优化类问题是很常见的一种问题。这种问题里面通常涉及多个 变量 和 约束条件 ,并需要在这些变量和条件之下 优化某个函数 。最常见的例子就是,“达到最好效果”、“取得最大利润”、“极大降低风险”等等。遇到这类字眼,应首先考虑优化模型求解。

    2024年01月25日
    浏览(34)
  • 2022 数学建模B题成品论文 参考文章 含全部建模 步骤 数学模型 图像

    完整见https://mianbaoduo.com/o/bread/mbd-Y5eVm5xw 无人机遂行编队飞行中的纯方位无源定位 摘要 一、问题重述 1.1 问题背景 由于无人机集群在遂行编队飞行时, 应尽可能的避免外界干扰, 因此需要尽可能的保持电磁静默减少电磁波信号的发射.为保持编队队形, 拟采用纯方位无源

    2024年02月08日
    浏览(44)
  • 【数学建模】--聚类模型

    聚类模型的定义: “物以类聚,人以群分”,所谓的聚类,就是将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计,分析或预测;也可以探究不同类之间的相关性和主要差异。 聚类和分类的区别:分类是已

    2024年02月13日
    浏览(34)
  • 遗传算法模型--数学建模

    遗传算法是一种模仿自然选择和遗传机制的优化算法,主要用于求解最优化问题。它模拟了生物进化过程中的遗传、交叉和变异过程,通过不断地进化优秀的个体,逐渐搜索到全局最优解。 在开始之前,我们先来了解下遗传算法中的几个概念。 在遗传算法中,我们首先需要

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包