微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解

这篇具有很好参考价值的文章主要介绍了微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文为北海的数模课程学习笔记,课程出自微信公众号:数学建模BOOM。

求赞!求收藏!求关注!

微分方程结合传染病模型(如指数传播、SI、SIS、SIR模型)提供了一种用数学公式描述疾病传播动态的方法,有助于理解和预测疾病在人群中的传播路径和速度。

目录

指数传播模型

SI模型

SIS模型

SIR模型

代码求解微分方程数值解

指数传播模型

最简单

假设:每个病人,单位时间内会传染到的人数为大于0的常数,有

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

 该模型适用于传染病爆发初期。考虑到在封闭区域内,患病人数+健康人数=总人数,总人数是相对固定的,所以不能一直指数增长下去。由此升级为SI模型。

SI模型

设人口总数为常数N。人群分为易感染者(Susceptible)和易感染者(Infective),所占比例在t时刻为s(t)和i(t),s(t)+i(t)=1。 

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

 但是本模型假设了只有健康者可以变为病人,但病人不会变为健康者。升级后为SIS模型。

SIS模型

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

MATLAB的dsolve函数可以求解析解 

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

把换掉 

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

SIR模型

考虑免疫性,改进为SIR模型。

 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

 微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

模型分析
SIR 模型形式是 多个相互关联 系统变量 之间的 常微分方程组, 属于典型的 系统动力学模型

该类问题往往难以求得精确的解析解,可以使用MATLAB求数值解

代码求解微分方程数值解

通用的求常微分方程数值解的函数ode45。

基本语法:
https://ww2.mathworks.cn/help/matlab/ref/ode45.html?s_tid=srchtitle_ode45_1#d123e934673
clc,clear
% 参数初始化
lam = 0.4;      % 日接触率
mu = 0.1;     % 日治愈率
I = 0.4;
S = 0.5; %因为S+I+R=1,所以求出I和S就够了

% ode45是一个通用型ODE求解器
tspan = [0:1:50];     % 变量t范围0到50,每隔1取一个
y0 = [I S];     % 传递模型参数

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab

[t,y] = ode45(@(t,y)SIRfunc(t,y,lam,mu), tspan, y0);
%后面的tspan,y0传给@中的(t,y),再传递给SIRfunc中的(t,y,~,~)
% 求解返回的y中,第一列y1是第一个方程组的解,第二列y2是第二个微分方程的解
r = 1-y(:,1)-y(:,2);   % 移出者的比例 

%画图
plot(t,y(:,1),t,y(:,2),t,r,'k','LineWidth',2);
legend('患病:i(t)','易感染者:s(t)','移除者:r(t)','Location','Best'); 
ylabel('占人口比例%');
xlabel('时间t');
title('SIR模型(ode)');
%下面有一个分节符,因为要在同一个文件中再写一个函数
function dydt = SIRfunc(t,y,lam,mu)
dydt = zeros(2,1);
dydt(1) = lam*y(1)*y(2) - mu*y(1);
dydt(2) = -lam*y(1)*y(2);
end 

结果

微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解,数学建模,笔记,matlab文章来源地址https://www.toymoban.com/news/detail-755913.html

到了这里,关于微分方程+传染病模型(指数传播、SI、SIS、SIR模型)+MATLAB求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于SEIR微分方程模型对疫情传播的简单预测

    目录 一、模型的建立 传染病模型概念 模型假设 SEIR模型 模型中涉及的函数S(t)、E(t)、I(t)、R(t) 更改后的微分方程 二、模型的求解 三、模型的缺点 祝语 随着疫情的再次爆发,全国疫情防控再次进入紧张状态,疫情预测分析成为数学建模问题中的一个热点问题,本文基于微分

    2024年02月07日
    浏览(39)
  • 通过Matlab编程分析微分方程、SS模型、TF模型、ZPK模型的关系

    以最简单的单自由度振动模型为例: 以上表示u(t)线性组合输入系统(这里是3u(t))时求系统的响应(即输出函数y(t)) SS模型也可转成TF模型: tf(ss(A,B,C,D)) TF转零极点增益ZPK模型 [z p k]=tf2zp([3],[1 0 4]) z = Empty matrix: 0-by-1 p = 0 + 2.0000i 0 - 2.0000i k = 3 即 还可以用residue函数将传递函数

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

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

    2024年02月09日
    浏览(64)
  • 0702可分类变量的微分方程-微分方程

    本节至第四节我们学习的都是一阶微分方程 ​ y ′ = f ( x , y ) y^{\\\'}=f(x,y) y ′ = f ( x , y ) (2-1) 一阶微分方程对称形式 p ( x , y ) d x + Q ( x , y ) d y = 0 ( 2 − 2 ) p(x,y)dx+Q(x,y)dy=0qquad (2-2) p ( x , y ) d x + Q ( x , y ) d y = 0 ( 2 − 2 ) 若以x为自变量,y为因变量,则 d y d x = − P ( x , y ) Q (

    2024年02月04日
    浏览(49)
  • 常微分方程建模R包ecode(一)——构建常微分方程系统

    常微分方程在诸多研究领域中有着广泛应用,本文希望向大家介绍笔者于近期开发的R包 ecode ,该包 采用简洁易懂的语法帮助大家在R环境中构建常微分方程 ,并便利地调用R图形接口,研究常微分方程系统的相速矢量场、平衡点、稳定点等解析性质,或进行数值模拟,进行敏

    2024年02月16日
    浏览(40)
  • 【数学建模】常微分,偏微分方程

    普通边界   已知t0时刻的初值    ode45()  龙格-库塔法 一阶,高阶都一样 如下: s(1) = y , s(2)=y\\\'  s(3) = x , s(4)=x\\\'   分段边界 非匿名函数    手写改进的ode45()函数代码 复杂边界值(即已知初始值,也知道末尾值),用bvp4c()函数 1. pdepe()函数 椭圆-抛物线型 控制方程  左边界

    2024年02月09日
    浏览(42)
  • (矩阵)一阶微分方程和伯努利方程

    伯努利方程的标准形式: 伯努利方程解法: 方程两边同时除以y的n次, 做变量替换y-z: 转换为线性微分方程: 最后换回原来的变量即可得到伯努利方程。 一阶线性微分方程的标准形式: 当Q(x)=0,为齐次方程;当Q(x)≠0,为非齐次方程。 已知如下矩阵,求解一阶线性微分方

    2024年02月05日
    浏览(55)
  • 微分方程应用——笔记整理

    首先,根据正常思路走,化简得到式子:    不难发现,设  后面得出该方程的通解: 这里要注意什么等于这个通解   --- z 又因为该曲线过点  所以可以求出c为3 该题虽然简单,但是要注意几个问题,该定义域在第一象限,还有就是求解中变量的代换

    2024年02月11日
    浏览(39)
  • 一阶常微分方程

    第一次写博客记录自己的学习过程,写的不好希望大家斧正。 讲的更多的是常微分方程的解法的理解,也是我在学习中遇到各种证明的关键点,希望通过记录博客深化对于证明的理解,建立起数学思维,而不是知其然而不知其所以然。因此阅读中需要读者有一定的基础,与实

    2024年02月05日
    浏览(40)
  • matlab解微分方程

    f=@(变量) 表达式; x1为2 3 4 5;x2为3 4 5 6的情况下求解函数f的值 用“dsolve” step1: 申明自变量和因变量 syms y(x) step2:编程 得到: step1: 申明自变量和因变量 syms y(x) step2:编程 得到 step1.写函数文件 step2.主函数 相当于定义了一个新向量y,然后列 匿名函数 ,方程的 左边都是一阶

    2024年02月13日
    浏览(79)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包