疾病传播建模——MSIER 模型(Matlab代码实现)

     目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

早在1927年,美国数学家Kermack和Mckendrick首先利用动力学的方法建立了流行病的数学模型,从此开始了大量的用数学理论和方法研究流行病模型的文献。通过对流行病模型的研究,可以对流行病将来的发展趋势得到一个估计,为人们预防、治疗和控制流行病提供一些有益的信息.纵观以往的研究工作,我们可以发现,他们中的大部分研究的是常微分方程形式的流行病模型,即假设种群无论年龄大小、形体大小对疾病具有相同的传染力、免疫力和康复力。这种没有考虑年龄结构的流行病模型有缺陷,因为不同类型的疾病有不同的传播特点,有些疾病(如性病等)的传播直接与年龄有关,有些疾病对不同年龄的人感染程度不一样,疾病的有些传播现象(如垂直传染等)和预防疾病的有些措施(如接种疫苗等)不能很好地用常微分方程来描述。​所以考虑年龄结构的流行病模型有其必要性和实际意义。​

经典地方病模型根据人群之间的相互作用率、出生/死亡率和康复率来表示感染性和易感人群的数量。

本文使用MSEIR模型。它是使用外插技术结合Anguelov等人(2014)中使用的非标准有限差分(NSFD)方案获得的。此模型在计算上更高效,并且与连续模型动态一致:复制了无病平衡(DFE)的全局渐近稳定性(GAS),以及地方病平衡(EE)的全局稳定性及其守恒定律。数值实验对该理论进行了说明。

📚2 运行结果

主函数部分代码:

% MATLAB Code for MSIER Endemic model%
​
beta=[0.8;0.9;1.0;1.1;1.2;1.3;1.4;1.5;1.6]; %array of beta values
s0 = [0.5,0.4]; %array for s0 initial values
i0 = [0.5,0.4]; %array for i0 initial values
​
for j = 1 : 9 %Loop for beta values 
    
    for k = 1 : 2 %Loop for s0 and i0 values
        [s_values,i_values] = e_d_model(s0(k),i0(k),beta(j)); %calling e_d_model custom function
        %figure for Phase Portrait of all calculated s and i values
        figure(j+100);hold on 
        plot(s_values,i_values),xlabel('s values / suspects '), ylabel('i values / infected'),axis([0 1 0 1])
        title(['Phase Portrait - \beta =',num2str(beta(j))]) %Title for graph
        legendInfo{k} = ['s0 = ' num2str(s0(k)),', i = ' num2str(i0(k))]; %Legend for graph
    end
    legend(legendInfo)
    hold off
end            

🎉3 参考文献

[1]李学志,万志超,陈清江.总人口规模变化的年龄结构MSEIR流行病模型的再生数[J].数学的实践与认识,2005(08):113-122.

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值