【疫情模型】基于matla改进SEIR模型【含Matlab源码 670期】

一、简介

基于matla改进SEIR模型

二、源代码

%SEIR模型修正
%假设115日开始出现第一例确诊,;123号武汉政府开始封城,此时其他省市也相应作出响应隔离措施,大约距离15号后的11天政府管控发挥明显作用
%  N=13.95*100000000;%人口数
 N=1395380000;
load quanguo.mat
%第一列为累计确诊人数,第二列为累计死亡人数,第三列为累计治愈人数
E=0;%潜伏者
D=0;%死亡患者人数
I=1;%感染人数
S=N-I;%易感人数
R=0;%康复者人数
r=17;%感染者接触数量
% r=19;
B=0.602;%传染概率
% a=0.17;%潜伏者转化为感染者的概率
% a=0.175;
a=0.198;%潜伏者转化为感染者的概率
% r2=8;%潜伏者接触人数
r2=15;%潜伏者接触人数
% B2=0.03;%潜伏者传染正常人的概率
B2=0.05;
y=0.05;%康复概率
k=0.0001;%日致死率
B3=0.1;%转阴率
%  T=1:200;
T=1:180;
for idx=1:length(T)-1
    %若以118日为疫情起点,在政府发出管控号召时间以及各个地方响应延迟时间,此处采用11天后为临界点,
    %相当于11天后,感染者与潜伏者流动性和医疗配置发生明显变化,具体为接触人数
    if idx>=11
        r=0.20;%感染者接触数量
        r2=1.8;%感染者接触人数量
        y=0.15;%康复率上升为0.16
        a=0.12;%潜伏者转化为感染者的概率
%         a=0.10;
        k=0.0001;%日致死率暂无改变
    end
    if idx<11
        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)-(k+y)*I(idx);%感染人数迭代
        R(idx+1)=R(idx)+0.05*I(idx);%康复人数迭代
        D(idx+1)=R(idx)+k*I(idx);%死亡患者人数迭代
    else
        S(idx+1)=S(idx)-r*B*S(idx)*I(idx)/N-r2*B2*S(idx)*E(idx)/N+B3*E(idx-10);%易感人群迭代
        E(idx+1)=E(idx)+r*B*S(idx)*I(idx)/N-a*E(idx)+r2*B2*S(idx)*E(idx)/N-B3*E(idx-10);%潜伏者迭代
        I(idx+1)=I(idx)+a*E(idx)-(k+y)*I(idx);%感染人数迭代
        % Y参数有问题
        R(idx+1)=R(idx)+0.045*I(idx-9);%康复人数迭代
        D(idx+1)=R(idx)+k*I(idx);%死亡患者人数迭代
    end
end

三、运行结果

【疫情模型】基于matla改进SEIR模型【含Matlab源码 670期】_第1张图片

四、备注

版本:2014a

你可能感兴趣的:(matlab,预测模型)