宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

SEIR模型案例

原理说明

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

                               %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:lengthT)-1         %循环遍历
    Sidx+1) = Sidx)- r*B*Sidx)*Iidx)/N - r2*B2*Sidx)*Eidx)/N;
    Eidx+1) = Eidx) + r*B*Sidx)*Iidx)/N - a*Eidx) + r2*B2*Sidx)*Eidx)/N;
    Iidx+1) = Iidx) + a*Eidx) - y*Iidx);
    Ridx+1) = Ridx) + y*Iidx);
end 

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

plotT,S,T,E,T,I,T,R);grid on;               %以下是绘图部分
xlabel'天');ylabel'人数')
legend'易感者','潜伏者','传染者','康复者')

SEIR模型案例_SOR模型-风君子博客SEIR模型案例_SOR模型-风君子博客