seir分段函数代码

clear;clc;
N=17560000;
I=1;%传染者
R=0;%康复者
D=0;%死亡患者数量
E=0;%潜伏者
S=N-I;%易感染者
m=4;%接触病患的人数(一阶段为未防控,剩余阶段参数递减的有:病患接触人数m,
%                     潜伏者接触人数r和患病概率B.)
m1=1;%二阶段病患接触
m2=0;%三四阶段病患接触
a=0.125;%潜伏者患病概率
B=0.6;%感染概率
B00=0.3;
B01=0.2;
B02=0.1
y=0.143;%康复概率
B2=0.03;%接触潜伏者
B3=0.859;%转阴率
r2=8;%潜伏者每天接触的人数
r4=3;%2阶段潜伏者
r5=2;%三阶段
r6=1;%四阶段
k=0.025373;%死亡率
T=0:200;
for idx =1:length(T)-1
    if idx<30
S(idx+1)=S(idx)-m*B*I(idx)-r2*B2*E(idx)+B3*E(idx);%易感人数迭代  
E(idx+1)=E(idx)+m*B*I(idx)+r2*B2*E(idx)-B3*E(idx);%潜伏者人数迭代 
I(idx+1)=I(idx)+a*E(idx)-(y+k)*I(idx);%患病人数迭代              
R(idx+1)=R(idx)+y*I(idx);%康复人数迭代
D(idx+1)=D(idx)+k*I(idx);%死亡患者人数迭代
    elseif idx>=30&&idx<40
S(idx+1)=S(idx)-m1*B00*I(idx)-r4*B2*E(idx)+B3*E(idx);%易感人数迭代  
E(idx+1)=E(idx)+m1*B00*I(idx)+r4*B2*E(idx)-B3*E(idx);%潜伏者人数迭代 
I(idx+1)=I(idx)+a*E(idx)-(y+k)*I(idx);%患病人数迭代              
R(idx+1)=R(idx)+y*I(idx);%康复人数迭代
D(idx+1)=D(idx)+k*I(idx);%死亡患者人数迭代
    elseif idx>=40&&idx<=50
S(idx+1)=S(idx)-m1*B01*I(idx)-r5*B2*E(idx)+B3*E(idx);%易感人数迭代  
E(idx+1)=E(idx)+m1*B01*I(idx)+r5*B2*E(idx)-B3*E(idx);%潜伏者人数迭代 
I(idx+1)=I(idx)+a*E(idx)-(y+k)*I(idx);%患病人数迭代              
R(idx+1)=R(idx)+y*I(idx);%康复人数迭代
D(idx+1)=D(idx)+k*I(idx);%死亡患者人数迭代
     elseif idx>=50&&idx<=length(T)-1
S(idx+1)=S(idx)-m2*B02*I(idx)-r6*B2*E(idx)+B3*E(idx);%易感人数迭代  
E(idx+1)=E(idx)+m2*B02*I(idx)+r6*B2*E(idx)-B3*E(idx);%潜伏者人数迭代 
I(idx+1)=I(idx)+a*E(idx)-(y+k)*I(idx);%患病人数迭代              
R(idx+1)=R(idx)+y*I(idx);%康复人数迭代
D(idx+1)=D(idx)+k*I(idx);%死亡患者人数迭代 
    end
end
plot(T,E,'--r',T,I,'-k');
grid on;
xlabel('日期');
ylabel('人数/人');
title('SEIR  模型');
%plot(T,E,T,I,T,R,T,D);
plot(T,E,'--r',T,I,'-k');
grid on;
xlabel('时间/天');
ylabel('人数/人');
axis([0 100 0 200]);
%legend('潜伏者','感染者','康复者','死亡者');
legend('潜伏者','感染者');
set(gca,'ytick',[0:50:500]);
%title('疫情情况');

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值