前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SEIR模型案例_SOR模型

SEIR模型案例_SOR模型

作者头像
全栈程序员站长
发布2022-09-16 17:13:24
4350
发布2022-09-16 17:13:24
举报

SEIR模型案例

原理说明

https://zhuanlan.zhihu.com/p/142117573

代码语言:javascript
复制
                               %N是群体总样本数
E=0;                           %潜伏期人数
I=1;                           %患者人数
S=N-I;                         %易感者人数
R=0;                           %康复者人数
r=20;                          %每个患者平均每天能接触的人数
B=0.03;                        %患者每天接触的人中被感染的概率
a=0.1;                         %潜伏期装变为患者的概率
y=0.1;                         %患者痊愈概率
r2=20;                         %处于潜伏期的人每天接触的人数

B2=0.03;                       %潜伏期的人每天接触的人中被感染的概率
T=1:140;                       %模拟从第一天到第140天的状况

for idx =1:length(T)-1         %循环遍历
    S(idx+1) = S(idx)- r*B*S(idx)*I(idx)/N - r2*B2*S(idx)*E(idx)/N;
    E(idx+1) = E(idx) + r*B*S(idx)*I(idx)/N - a*E(idx) + r2*B2*S(idx)*E(idx)/N;
    I(idx+1) = I(idx) + a*E(idx) - y*I(idx);
    R(idx+1) = R(idx) + y*I(idx);
end 

%{迭代计算每天的感染情况 idx代表天数
	S(idx+1) = S(idx)- r*B*S(idx)*I(idx)/N -r2*B2*S(idx)*E(idx)/N;
	这里S(idx+1)代表第idx+1天的易感者人数 
	其数值等于第idx天的易感者人数减去由于 潜伏者接触易感染者所造成的感染人数 和 患者接触易感染者所造成的感染人数
    r*I(idx)表示所有患者每天接触的人的总数  S(idx)/N表示所有人中易感染者占比
    r*B*S(idx)*I(idx)/N 即所有患者一天因为易感染者所造成的感染数
    同理r2*B2*S(idx)*E(idx)/N 即所有潜伏者一天因为易感染者所造成的感染数
    
    E(idx+1) = E(idx) + r*B*S(idx)*I(idx)/N - a*E(idx) + r2*B2*S(idx)*E(idx)/N;
    第idx+1天的潜伏者人数等于 
    第idx天的潜伏者人数 加上 潜伏者接触易感染者所造成的感染人数 和 患者接触易感染者所造成的感染人数
    减去由潜伏者转化为患者的人数
    
    y*I(idx)第idx天的患者痊愈人数
    
    以下分析同理
%}

plot(T,S,T,E,T,I,T,R);grid on;               %以下是绘图部分
xlabel('天');ylabel('人数')
legend('易感者','潜伏者','传染者','康复者')
在这里插入图片描述
在这里插入图片描述

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166783.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SEIR模型案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档