首页 > 编程知识 正文

传染病模型参数拟合,matlab实验2

时间:2023-05-05 19:00:46 阅读:140351 作者:1005

基于SIR模型的SARS期间流行趋势matlab模拟1、SIR模型概要2、SIR的matlab实现3、对SARS期间数据的模拟结果4、参考文献和原始数据

一. SIR模型介绍

SIR模型是传染病研究中的重要模型之一,SIR由Susceptible (易感染但未感染的节点)、Infective (感染节点)、Removal (移动节点)三个基本节点模型组成,s

二、SIR的matlab实现本质上是一个常微分方程。 我们可以使用matlab中的ode方法对该方程进行数值解的计算。 我们根据ode规则编写函数将这个微分方程的数学语言翻译成matlab语言如下。

functionDP=sir_model(t,p ) %t是时间,p中包括的模型的五个参数sirbeta=p (4) gama=P(5)5) DP=zeros (5,1 ); DP(1)=-beta*P(1)1) p ) 2; DP(2)=beta*P(1)1) p )2)- gama*P(2) 2; DP(3)=gama*P(2) 2; end疏忽的灯泡[1]在硕士论文中估算了参数。 我们可以引用他的数据制作以下程序模拟,并与实际数据进行比较图表化。

%确定参数I0=497R0=33%估计参数s0=1290 beta=8e-5 gamma=4e-2 [ t,p]=ode45(@sir_model,[1:1:70],) %Susceptible未感染者; 未感染节点; I=p (3360,2 ); %Infective感染者; 感染节点; r=p (3360,3 ); 从%Removal移出者(死亡或治愈、免疫者); 移动节点; figure(1) plot num=70 subplot (2,1,1 ) reali=[ 530,685,708,734,761,800,840,883,928,970,998,1050,1055 10558] 458、1488、1510、1527、1543、1557、1572、1589、1600、1611、1621、1629、1637、1646、1654、1661、1667 1742、1746、1747、1748、1748、1750、1752、1752、1753和1753 pre Ali=get _ head _ elements (reali,plotnum ) num 标题(非典期间累计个案趋势图) (xlabel )、时间(以3月31日为第一天)、ylabel )、累计个案数)、subplot ) 2、1、2 ); RI=rIPlot(t,ri,'-ro ' ) title ) sir模型估计SARS期间累计案例趋势图) (xlabel ) )时间)以3月31日为第一天) ) ylabel )累计案例数) ) flabel ) plot(t,RI,'-ro ' ) legend )实际数据)、模拟数据)、位置)、southeast ) title(SARS期间的累计案例趋势图) xlabel

请注意,此处使用的是您创建的get_head_elements函数,以获取数据的第一个len位。

function head=get _ head _ elements (col vect,len ) forI=1:lenhead(I )=colVect(i ) I; end header=head '; end有读者的反应是不知道这个代码的使用方法。 根据matlab的规则,要使用以上函数,必须创建一个新的get_head_elements.m文件,将其复制到该文件中,并将其保存在主函数所在的目录中。

# # # # # #自2020年6月25日起

第三,在执行了SARS期间的数据模拟结果之后,可以获得以下图表:

可见,该模型可以从事后的角度较好地描述整个疫情。

四.参考文献与原始数据[1]基于疏忽灯泡、SIR模型的SARS传染病研究,[D]山东大学,2019

附录:香港SARS疫情资料

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。