今年在参加认证杯的时候做到了传染病参数拟合,但是没有记录下来。这几天在做我们学校数学建模的校内赛的时候,也是有需要对SEIR模型进行函数的拟合。因此就发这个文章进行记录。

SEIR模型

  • SEIR模型简介
  • SEIR模型拟合
    • 数据部分
  • 求解过程
  • 代码实现
  • 总结

SEIR模型简介

首先就稍微介绍以下SEIR模型。
• S 为易感状态 (Susceptible),表示潜在的可感染人群,个体在感染之前是处于易感状态 的,即该个体有可能被邻居个体感染。
• E 为潜伏状态 (Exposed),表示已经被感染但没有表现出感染症状来的群体。
• I 为感染状态 (Infected),表示表现出感染症状的人,该个体还会以一定的概率感染其 能接触到的易感个体。
• R 为移除状态 (Removed),即个体或康复, 或因被隔离或死亡等原因而处于一种无传染性的净置状态.
画出状态转移图:

根据状态图写出转移方程:

SEIR模型拟合

数据部分

首先就是为了验证模型的正确性,本篇文章不使用真实数据呈现结果,而采用Anylogic这个软件里面仿真数据,并且把它们存在data.xlsx下面。使用这个数据来进行参数拟合。在本次的模型中的参数有感染率 β=0.1,接触人数 r=10, 潜伏率 σ=0.2,康复率 γ=0.5 。总人口为5000。
仿真部分数据如下:

并且可以看到要流行就先要设置初始的潜伏者和感染者做为整个模型的动力。

仿真的图像如下:

求解过程

本题的求解思路,是根据上述的微分方程,通过最小二乘法找到误差的最小值即可。但是可能会陷入局部最优解而与实际值不同。
对于本问所选用的优化算法,我试了两个,一个是粒子群的函数,还有一个是fmincom函数,然后比较结果,我就展示后者。
后者的结果是:
可以看出来后面两个参数是准确的,前面的就比较大的偏差了,而且说函数的误差也还行。

但是在不知道实际参数的情况下,图像所呈现出来的结果是很不错的。而对于实际真实的SEIR模型而言,情形会变得复杂,包括数据的获取等等在这篇文章里面就不做演示。

代码实现

首先是第一个SEIR方程

function dp = seir_fun(t,p,beta,lamda,thta,gamma)N =  5000;%总人口dp = [5000-150-291,150,291,0]';%第一天的初始化人数S = p(1);E = p(2); I = p(3);R = p(4);dp(1) = -beta*lamda*S * I / N;dp(2) = beta*lamda* S * I / N - thta * E;dp(3) = thta * E - gamma * I;dp(4) = gamma * I;
end

接下来就是优化函数

function f = seir_Obj_fun(x)global true_s true_e true_i true_r;  % 在子函数中使用全局变量前也需要声明下beta = x(1);lamda = x(2);thta = x(3);gamma = x(4);[~,p]=ode45(@(t,p) seir_fun(t,p,beta,lamda,thta,gamma), [1:1:76],[true_s(1) true_e(1) true_i(1) true_r(1)]); f = sum(((true_s - p(:,1)).^2 + true_e - p(:,2)).^2  + (true_i -  p(:,3)).^2  + (true_r - p(:,4)).^2);
end

主程序

clear;clc
d = xlsread('data.xlsx');
global true_s true_e true_i true_r
true_s = d(:,1);
true_e = d(:,2);
true_i = d(:,3);
true_r = d(:,4);plot(1:76,true_s,'r-',1:76,true_e,'g-',1:76,true_i,'b-',1:76,true_r,'k-')
legend('S','E','I','R')
hold onlb = [0.01 1 0.01 0.01];  ub = [1 20 1 1];   %设置拟合参数的取值范围以加快运行和取值合理
% fmincom函数
x0 = [0.01 1 0.01 0.01]
[x, fval] = fmincon(@seir_Obj_fun,x0,[],[],[],[],lb,ub)
T = 76;
beta = 0.3997;
lamda = 2.5018;
thta = 0.2;
gamma = 0.5;[~,p]=ode45(@(t,p) seir_fun(t,p,beta,lamda,thta,gamma), [1:1:T],[true_s(1) true_e(1) true_i(1) true_r(1)]); %用拟合的参数进行参数估计
plot(1:T,p(:,1),'r*',1:T,p(:,2),'g*',1:T,p(:,3),'b*',1:T,p(:,4),'k*')%画出图像

总结

对于SEIR模型而言,今年就是一个很热门的模型。对于这个模型而言还是较为复杂,显然就算是完全拟合了数据,得到的参数也不是很符合实际。
上面的代码也是我琢磨了比较久的时间才得以运行,一开始是从清风老师对于SIR的直播课的代码的延伸再加上自己对于这个模型的琢磨,就得到了比较令人满意的拟合图像。但是由于自己现在的精力有限,无法对实际的中国参数进行拟合,大家在考虑实际问题的时候,可以去尝试深入地了解模型,简化和丰富模型。
对于优化函数的了解也是在听了恩达老师的机器学习课程才了解到具体使用。所以就还是想告诉大家,当你在学习的时候,眼前遇到困难没有办法解决的时候,你不用太纠结,可以先放一放,然后keep studying,当你回过头来再看问题的时候可能就会解决。
有什么问题和疑问可以交流和讨论,希望这篇文章能够确实地帮到你!那就感谢你看我的罗里吧嗦啦!

2020年C题认证杯SEIR模型参数拟合相关推荐

  1. Python小白的数学建模课-B5. 新冠疫情 SEIR模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. 考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫的传染病. 本 ...

  2. 2022年认证杯SPSSPRO杯数学建模C题(第一阶段)污水流行病学原理在新冠疫情防控方面的作用求解全过程文档及程序

    2022年认证杯SPSSPRO杯数学建模 C题 污水流行病学原理在新冠疫情防控方面的作用 原题再现:   2019 年新型冠状病毒肺炎疫情暴发至今已过两年,新型冠状病毒历经多次变异,目前已有 11 种 ...

  3. 2022年第十一届认证杯数学中国数学建模国际赛小美赛:D题野生动物贸易是否应该长期禁止建模 38页一等奖论文及代码

    相关链接 (1)2022年第十一届认证杯数学中国数学建模国际赛小美赛:D题野生动物贸易是否应该长期禁止建模方案及代码实现 (2)一等奖论文下载 1 题目 野生动物市场被怀疑是当前疫情和2002年SAR ...

  4. 2023“认证杯”数学中国数学建模赛题浅析

    2023年认证杯"数学中国数学建模如期开赛,本次比赛与妈杯,泰迪杯时间有点冲突.因此,个人精力有限,有些不可避免地错误欢迎大家指出.为了大家更方便的选题,我将为大家对四道题目进行简要的解析, ...

  5. 2023年认证杯SPSSPRO杯数学建模B题(第一阶段)考订文本全过程文档及程序

    2023年认证杯SPSSPRO杯数学建模 B题 考订文本 原题再现:   古代文本在传抄过程中,往往会出现种种错误,以至于一部书可能流传下来多种版本.在文献学中,错误往往被总结成"讹&quo ...

  6. 2023认证杯数学建模挑战赛C题心脏危险完整原创论文讲解

    大家好呀,从发布赛题一直到现在,总算完成了认证杯完整的成品论文. C题论文共37页,一些修改说明7页,正文26页,附录4页. 认证杯难度比起mathorcup会小一些,本题主要难度是数据量比较大,片段 ...

  7. 2023 “认证杯”数学中国数学建模C 题 心脏危险事件 详细思路

    2023年认证杯"数学中国数学建模如期开赛,本次比赛与妈杯,泰迪杯时间有点冲突.因此,个人精力有限,有些不可避免地错误欢迎大家指出.为了大家更方便的选题,我将为大家带来C题的详细解析,以方便 ...

  8. 依巴谷星表中的毕星团认证杯B题

    依巴谷星表中的毕星团认证杯B题 第二天更新内容,两个核心模型在右侧图中 1.题目简述: 使用一个名为依巴谷的卫星观测到的恒星,记录了他们的数据制作成的星表.现在从依巴谷星表中拿了很多星的数据出来,希望 ...

  9. 2022年认证杯SPSSPRO杯数学建模B题(第二阶段)唐宋诗的定量分析与比较研究求解全过程文档及程序

    2022年认证杯SPSSPRO杯数学建模 B题 唐宋诗的定量分析与比较研究 原题再现:   唐诗和宋诗在文学风格上有较为明显的区别,这一点在古代文学研究中早有定论.所以唐诗和宋诗有时甚至会直接指代两类 ...

  10. 2021年认证杯SPSSPRO杯数学建模A题(第一阶段)医学图像的配准全过程文档及程序

    2021年认证杯SPSSPRO杯数学建模 A题 医学图像的配准 原题再现:   图像的配准是图像处理领域中的一个典型问题和技术难点,其目的在于比较或融合同一对象在不同条件下获取的图像.例如为了更好地综 ...

最新文章

  1. 【合唱】男女差八度的科学解释
  2. C语言字符串倒排,C语言兑现简单的倒排文件索引
  3. 我做的相册视频,总结07年的生活!
  4. Gulp vs Grunt 前端工程构建工具
  5. 前端全栈必会node框架koa。。。
  6. 【GIS教程】土地利用转移矩阵、土地利用面积变化
  7. OpenCV编译时提示错误“ Built target libprotobuf”
  8. Troubleshooting:重新安装Vertica建库后无法启动
  9. Android编译构建,教程11:使用Android Studio编译构建behaviac
  10. 语言怎么搜包的源代码_大四学生发明文言文编程语言,设计思路清奇
  11. 科学发明家特斯拉传记
  12. V5Shop网店系统更新 版本V8.30.0606 RC1
  13. 新编计算机基础教程考试知识点,新编计算机基础教程
  14. xpath 解析后和原网页结构不一致
  15. 计算机鼠标不灵活怎么办,鼠标左键不灵敏,教您鼠标左键不灵敏怎么办
  16. 云计算的认识和看法_我对云计算的认识
  17. 80亿美元侵权诉讼的随想
  18. 图片像素问题:如何保持图片大小不变而图片容量缩小
  19. Server2012R2下安装intel 82579v网卡驱动
  20. flash 与html,Flash 与 html 的一些实用技巧

热门文章

  1. 深度学习(Deep Learning)综述及其延伸,入门必看!
  2. WPS Excel将多个Excel文件合并到一个Excel文件中(sheet)
  3. 实时分析:Flume+Kafka+SparkStreaming商品评分排行榜
  4. VBR与CBR的区别是什么?
  5. Python控制仪器【2 ,控制矢量网络分析仪】
  6. B站网页端下载视频,直接浏览器下载或者Java实现下载
  7. spss 描述性分析
  8. PHP中的日期相减函数,在php中有没有日期相减的函数
  9. 一文彻底搞懂方差、协方差、协方差矩阵
  10. ECharts饼状图legend显示Value所占百分比