• 大小: 96KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-01-01
  • 语言: 其他
  • 标签: matlab  

资源简介

线性的 SIR 模型, 计算出模型中封闭系统的精确解, 得到累计病例数与时间的关系, 并通过该关系与累计确诊病例的实际数据进行拟合, 得到了传染率参数 a ,恢复系数b,和初始易感人数是的估计值, 本文提出的基于SIR的传染病动力学模型, 通过公开历史数据对模型参数进行反演,基于这些参数, 我们很好地模拟了目前疫情的发展, 并准确预测了疫情未来的趋势. 数分析显示了各级政府防控措施的有效程度. 人们的防范意识以及人们的疫情习惯对于疫情发展的影响,模拟结果显示, 如果政府加大宣传力度,增强隔离措施,个人改善自家的卫生习惯,加强防护意识,可以极大的延缓疫情的发展,减少感染人数。

资源截图

代码片段和文件信息

%用最小二乘法估计s(t)初值和感染系数a
%data1 是河南省121到2.20的数据   data是2.1到2.20的数据
clc
clear
load data.mat
b=0.03;   % 由Nmub计算所得
%该部分用于计算a和s的初值 采用最小二乘法
s0 = 1500:10:30000;  % 估计s初值的取值范围
for n = 1:length(s0)
    s1 = s0(n) + i(1) - i(2) - r(2);
    a = (s0(n) - s1)./(s0(n).*i(1));
    t = 1:8;
    [TY] = ode45(‘sir‘t[s0(n)i(1)r(1)ab]);
    for p = 1:8
        SE(p) = (Y(p2) - i(p)).^2;
    end
    SEE(n) = sum(SE); %此时的残差平方和
end
[vaddress] = min(SEE);
s = s0(address); %残差平方和最小的s(t)初值
s1 = s + i(1) - i(2) - r(2);
a = (s - s1)./(s.*i(1));%残差平方和最小的感染系数a
tspan = 1:30;
[TY] = ode45(‘sir‘tspan[si(1)r(1)ab]);

%a变为原来1/2
a = a/2;
tspan = 1:30;
[T1Y1] = ode45(‘sir‘tspan[si(1)r(1)ab]);

%a变为原来2倍
a = a*4;
tspan = 1:30;
[T2Y2] = ode45(‘sir‘tspan[si(1)r(1)ab]

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         242  2020-03-20 19:25  consumption.mat
     文件         301  2020-03-19 23:55  data.mat
     文件         336  2020-03-19 22:42  data1.mat
     文件       28977  2020-03-20 17:21  finaldat.mat
     文件       31538  2020-03-20 20:31  forecast.jpg
     文件        1213  2020-03-20 20:31  forecast.m
     文件         715  2020-03-20 23:38  HenanConsumption.m
     文件        1067  2020-03-20 17:09  main.m
     文件        1476  2020-03-20 23:38  Main_For_Polynomial.m
     文件         245  2020-03-20 00:23  numb.m
     文件         207  2020-03-19 22:33  sir.m
     文件       27122  2020-03-20 17:22  感染者(I).jpg
     文件       26255  2020-03-20 17:20  移出者(R).jpg

评论

共有 条评论