首页 > 编程语言 >基于龙格库塔算法的SIR病毒扩散预测matlab仿真

基于龙格库塔算法的SIR病毒扩散预测matlab仿真

时间:2024-06-12 18:55:58浏览次数:27  
标签:SIR 设定 模型 感染者 库塔 龙格 人数 gamma

1.程序功能描述

      基于龙格库塔算法的SIR病毒扩散预测,通过龙格库塔算法求解传染病模型的微分方程。输出易受感染人群数量曲线,感染人群数量曲线,康复人群数量曲线。

 

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

MATLAB2022a版本运行

                     

 

 

3.核心程序

Time1   = 1;                % 设定时间区间的起始点a为1  
Time2   = 215;              % 设定时间区间的终止点b为215  
Ra0     = 2.79;             % 设定基本再生数R_0为2.79  
Popu    = 9969510;  % 设定总人口数  
Popv    = 2387785; % 设定已接种疫苗的人数  
Seck0   = 116;            % 设定初始感染者人数  
Recv0   = 1232727;        % 设定初始康复者人数  
gamma   = 1/10;         % 设定康复率gamma为1/10  
Seck1   = Popu - Popv - Recv0; % 计算初始易感者人数  
beta    = (Ra0*gamma)/(Seck1); % 计算感染率beta  
% 设定初始状态向量y,包括易感者、感染者和康复者  
y       = [Seck1, Seck0, Recv0];  
f       = @(t,y) [-beta*y(1)*y(2); y(2)*(beta*y(1) - gamma); gamma*y(2)]; % 定义微分方程组  

[t,w] = func_rungekutta(Time1,Time2,360,y,f); % 使用Runge-Kutta方法求解微分方程组  

figure(1)            % 创建第一个图形窗口  
hold on;              % 保持当前图形,以便在同一图形上绘制多条曲线  
plot(t,w,"LineWidth",2); % 绘制曲线,线宽为2  
legend('易受感染','感染','恢复');    
title('新冠-洛杉矶'); % 添加标题  
xlabel('时间 (days)');    
ylabel('人口');   

  

 

4.本算法原理

        SIR模型是传染病动力学中经典的数学模型之一,用于描述在封闭人群中疾病的传播过程。模型假设人群被分为三个互不相交的类别:易感者(Susceptible,记为S),感染者(Infected,记为I),和康复者(Recovered,记为R)。SIR模型通过一组常微分方程来描述这三类人群之间的动态变化。SIR模型可以用以下常微分方程组来表示:

 

 

 

SIR模型解释

 

第一个方程描述了易感者人数的减少,这是由于易感者与感染者接触后被感染。

第二个方程描述了感染者人数的变化,它由两部分组成:新感染的人数(正比于易感者和感染者的乘积)和康复的人数(正比于感染者人数)。

第三个方程描述了康复者人数的增加,它与感染者康复的人数相等。

初始条件和参数

 

        为了求解SIR模型,需要设定初始条件 (S(0)),(I(0)),和 (R(0)),以及参数 (\beta) 和 (\gamma)。初始条件通常根据疫情爆发初期的观察数据来确定,而参数则需要通过拟合模型到实际数据来估计。

 

模型求解

 

        SIR模型可以通过多种方法求解,包括解析解法和数值解法。对于非线性微分方程,通常使用数值解法,如欧拉法、龙格-库塔法等。在实际应用中,由于模型通常是非线性的,因此数值解法更为常用。

 

预测和控制

 

        通过求解SIR模型,可以预测未来一段时间内感染者人数的变化趋势,从而为公共卫生决策提供支持。例如,可以预测疫情高峰到来的时间和规模,评估不同干预措施(如社交隔离、疫苗接种等)对疫情发展的影响。

 

模型局限性

 

       尽管SIR模型在描述疾病传播方面非常有用,但它也有一些局限性。例如,它假设人群是均匀混合的,忽略了空间结构和人口异质性;它假设康复者不会再次感染,这在某些情况下可能不成立;此外,模型参数可能需要随着疫情的发展而调整。

 

标签:SIR,设定,模型,感染者,库塔,龙格,人数,gamma
From: https://www.cnblogs.com/softcodes/p/18244521

相关文章

  • 苹果终于要推出真正的 Siri 了吗?|TodayAI
    苹果的语音助手本来应该是一个超越当前形态的存在。现在,13年后,它可能真的准备好了。2011年,苹果与 iPhone 4S一同推出了 Siri。公司发布了一系列广告,展示了如何使用这个新奇的语音助手。这些广告展示了Siri可以完成提醒、天气预报、闹钟等多种任务。广告的重点是Siri......
  • Sirupsen/logrus是一个日志库
    Golang:Sirupsen/logrus是一个日志库原创吃个大西瓜CodingBigTree2024-05-2808:00北京听全文图片 Sirupsen/logrus是一个日志库 文档 https://github.com/Sirupsen/logrus安装 gogetgithub.com/sirupsen/logrus代码示例 packagemain import( ......
  • 肖sir_公司项目_汇总
    目名称:网易严选电商项目项目描述:网易严选是网易旗下原创生活类自营电商品牌,于2016年4月正式面世,是国内ODM(原始设计制造商)模式的电商。网易严选以好的生活,没那么贵"为品牌理念,覆盖10大品类,通过网易自营严选团队严格把控从原料、生产、质检、销售到售后等各个环节,与一线大牌制造商......
  • 肖sir__po框架之ui自动化框架
    po框架一、ui自动化po框架介绍(1)PO是PageObject的缩写(pom模型)(2)业务流程与页面元素操作分离的模式,可以简单理解为每个页面下面都有一个配置class,配置class就用来维护页面元素或操作方法(3)提高测试用例的可维护性、可读取性对比:传统的设计测试用例存在的弊端:1.易读性差2.复用性差3.......
  • 肖sir___性能之nmon(性能硬件指标)
    nmon基本介绍,nmon是帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。分析工具分析AIX和Linux性能的免费工具,这个高效的工具可以工作于任何屏幕、telnet会话、甚至拨号线路。另外,它并不会消耗大量的CPU周期,通常低于百分之二。在更新的计算机上,其CPU使......
  • 肖sir___性能之插件(软件指标)
    一、监听器中的插件@gc - Active Threads Over Timeip 活动线程时间@gc - AutoStop Listener 自动停止侦听器@gc - Bytes Throughput Over Timejp 字节吞吐量随时间变化@gc -Composite Graph 综合图@gc - Connect Times Over Timejp 连接时间@gc -Conso......
  • 肖sir__ 性能之软硬件指标
    软件性能指标1、响应时间(RT)响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间。响应时间=发起请求网络传输时间+服务器处理时间+返回响应网络传输时间2、平均响应时间、百分位响应时间......
  • 肖sir__app的知识点
    1、appium实现原理 ========================================二、app测试中遇到的问题(一)、app出现ANR(无响应),是什么原因导致的?那么导致ANR的根本原因是什么呢?简单的总结有以下两点:1.主线程执行了耗时操作,比如数据库操作或网络编程2.其他进程(就是其他程序)占用CPU导致本进程......
  • 肖sir__app之monkey测试
    momkey_使用:一、adb命令:1、dos下链接:adbconnect127.0.0.1:62001 2、adbdevices原文:Listofdevicesattached(附设)意思:所附设备清单 device:已识别的设备表示连接成功unauthorized:没有授权需要手机授权才能连接unkown:未识别的设备offline:离线设备 3、adbvers......
  • 肖sir__app实战运用
    一、打开模拟器 二、cmd中打开dos命令adb connect  127.0.0.1:62001   三、安装测试包adb install  D:\app\baiduyuedu_3760.apkE:\dcs\two\app\mojibase.apk  四、打开appium    五、( 定位元素没有xpath的就删除原有uiautomatorviewer.......