seir模型matlab_疫情专题 | 传染病的经典数学模型

       在此次新冠肺炎疫情防控过程中,对疫情发展趋势的科学预测显得尤为重要。而这背后,离不开对传染病传播规律的建模。今天,小编就带各位数学学子们来了解一下传染病的四大经典数学模型:SI/SIS/SIR/SEIR。其中用到了许多微分方程的知识,大家不妨在阅读过程中重温一下。

3782c277817247eada58ede7300d1bde.pngb1faac7c49268f857bf3bbd2d2254810.png

首先来介绍几类与传染病相关的人群表示:

易感者(Susceptible):有潜在感染风险的人群,数量记为S(t)

潜伏者(Exposed):已感染但仍处于潜伏期未发生症状的人群,数量记为E(t)

感染者(Infectious):感染并表现症状的人群,数量记为I(t)

康复者(Recovered):痊愈获得抗性的人群,数量记为R(t)

abeb885530591d6547cd5fc4187459a9.png72092410cba15a5981fa733b33fd8f9a.png

SI模型

(Susceptible-Infectious Model)

    SI模型考虑了最简单的情况,即把人群分为易感者S和感染者I两类,且绝望地不考虑康复。假设总人数为N,单位时间I个感染者接触r个人,传染率为β,易感人比例为S/N,则单位时间新增病例为rβIS/N,可得到微分方程:

d6cf0d7b95a309ef59f4486d70235b09.png

    其初始条件为:

72e401d28b26b26594d066bed87c6b5c.png

    总人数守恒条件为:

de0ccd68bc710380421f8a5a02130ee3.png

    将S=N-I代入第二个微分方程即得:

e8c7125e4d28aab1a5b3d53571ee4756.png

    这就是我们学过的Logistic方程,解得:

0fddc5bb7a5c1dafd636c2325624899c.png

    其指数增长率,正比于感染者的接触人数和传染率。当感染者I达到N/2时病人增加速度最快。观察可得,

6bf032658b820735d1327d14d238deec.png

    也就是此模型下经过足够时间人类将全军覆没。

    我们用MATLAB来模拟SI模型下的增长过程。假设地区共有5000个人,最初只有1人感染,感染者每天出门遇到10个人,传染率是1%, 我们来看一看结果。

ed3ebe934950ea2522151338160cc27f.png

    半年时间内一个人几乎传染给了所有人,SI模型告诉我们在对无望康复的传染病(如HIV)的控制中,隔离传染过程非常重要,否则最终整个生态将崩溃。

72092410cba15a5981fa733b33fd8f9a.png

SIS模型

(Susceptible-Infectious-Susceptible Model)

接下来我们考虑稍微复杂而有希望的情况,即感染者可以康复,但令人沮丧的是康复者仍然可能再次被感染。例如普通流感常常应用这类模型。这种情况下需要向模型中添加感染者I的康复率γ,也就是单位时间内感染者会减少γI,而易感者会增加γI

    修正微分方程为:

c7ce6d669b978f4aee5938b3236cff16.png

    同样地,初始条件为:

72e401d28b26b26594d066bed87c6b5c.png

    以及总人数守恒条件:

de0ccd68bc710380421f8a5a02130ee3.png

    将S=N-I代入第二个微分方程即得:

25b0e453bd695f81b4f37593686fea33.png

    同样的方法可解得Logistic函数:

d6a23e2dc9e205dc113352ac1621d85f.png

    注意这次感染者I的极限并不是全部人口N,而是:

f959413001052e4bc279d909e966de7d.png

    我们一样用MATLAB来验证一下,参数取值都与SI模型一样,不同的是添加了康复率γ,我们假设为3%。

71f27b8fe434c7ed94e29da084488bd3.png

    可见假设条件下一年内病人和健康人基本达到动态平衡,而最终稳定的健康人比例决于γ,即传染性和康复性。本例中其他条件不变的情况下如果康复率提高到10%,在极短的时间内病人数将几乎稳定在0,这出人意料的全员康复结果提示了提高医疗科研水平来增加康复率的重要性。

72092410cba15a5981fa733b33fd8f9a.png

SIR模型

(Susceptible-Infectious-Recovered Model)

    继续完善我们的数学模型。许多急性传染病康复后是存在抗体的,如有短期抗体的感冒,长期抗体的水痘、腮腺炎等。这些时候我们需要引入第三类人群:康复者R,假设此类人群体内拥有别人梦寐以求的抗体,得病后永不复发长生不死。单位时间康复者γI不再加入到S类,而是归为R类。

    此时有三个微分方程:

70abd67f0af1efd283c8f15aaec0ee4d.png

    初始条件:

00fe53967cda445e02a8f813eb76d14b.png

    总人数守恒条件:

ab020f1c8d63993da9b84ffa28b71287.png

    至此就不会求解析解啦,我们用数值解来模拟。还是假设地区共有5000个人,最初只有1人感染,感染者每天出门遇到10个人,传染率设为3%,康复率是5%。

987fd5ae3753ab4a55864aaf73e4c7bb.png

    可以看到假设条件下传染病爆发40~50天疫情达到高峰,此后半年内逐渐平息,最后全员康复。这一模型和现实中我们常经历的急性传染病的传播阶段比较符合,这其中抗体起到一个非常关键的作用,也提示了痊愈者血清以及研制疫苗在遏制疫情上的重要性。

72092410cba15a5981fa733b33fd8f9a.png

SEIR模型

(Susceptible-Exposed-Infectious-Recovered Model)

为了研究带潜伏期的恶性传染病,继续复杂化我们的模型。此时引入潜伏者E,潜伏者感染疾病但是不会显现症状,且不考虑潜伏期的传染性。这类模型就是当前2019-nCoV传播的基本模型。当然,实际情况要比理想模型复杂得多,还需考虑其他的扰动项来修正方程,我们只考察最原始最简单的SEIR模型。假设单位时间被感染者I以传染率β把易感者S变为潜伏者E,即E单位时间增加rβIS/N,而潜伏者以概率α发作成感染者,即E单位时间减少αEI单位时间增加αE,康复者仍按之前假设。微分方程为:

2e6f0283fa2b2c43e5b4977d48c6ba64.png

    初始条件:

30534706e74a208c3e64ab6b8ab0e529.png

    人数守恒:

749d466ab313e283198bb3870d06388a.png

    同样地,求不出解析解的情况下我们用数值模拟。为了更好地模拟新肺疫情,传染率取值较之前的例子有所提高。假设地区共有5000个人,最初只有1人感染,感染者每天出门遇到10个人,以10%的传染率把健康人变为潜伏者,潜伏者以50%的概率发作症状变为感染者,康复率是10%。

26cefb63d81faca9ffedbd7633438545.png

    可见上述条件下在20~30天中潜伏期人群达到顶峰,而30天左右感染者达到顶峰,疫情迎来大爆炸,随着康复人群的上升,疫情在三个月左右基本结束。这大体上符合目前2019-nCoV的走势。同时可以看出疫情防控中,对感染者的隔离、对潜伏者的尽早识别和控制都是重中之重。

      数学无处不在,通过以上模型的介绍,相信大家对传染病有了更加深入的认识。传染病防控离不开多个学科的合作,希望通过数学人的共同努力,让传染病防控水平得到进一步提升!

文编:网易羊

美编:陈茜

责编:王天晓

ba9cb60d2ec375914f12a97a33f21952.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vlh 标签详解

1.vlh:root root标签做为所有vlh标签的根标签. 1)value 在给定的范围内,包含在ValueList或list的变量名. List的实例自动被DefaultListBackedValueList包装在ValueList中 2)id 如果有多个表被包含在一个request中,ID属性能区分每个表。id被追加到所…

ubuntu电脑安装硬盘

最近在做安卓开发,一套RK3399的安卓代码,解压编译后占用170多G的硬盘。所以呢,原来1T大小的硬盘,很快就沾满了,然后我赶紧给北京总部申请买了一个新的硬盘。现在的台式电脑都是用的SATA硬盘接口,我赶紧就上…

python 制作抽奖箱_用Excel函数制作抽奖箱

话说各在公司每年的年会上,或者平时的一些分组活动上,又或者是某个内部组织的业务竞赛上……偶尔会遇到抽奖或抽签的环节,例如你的公司开展了一个实操的业务竞赛,一共80道题目,参赛人员要随机抽取题目然后做答。好的&a…

字典表

字典表 : dict 声明 键;值dict(键值) 操作 获取d.get(键‘默认值) 合并d.update(d2) 键值emp.items 菜单emp.keys 效果emp.values得到视图 遍历打印for x in emp.keys 支持嵌套 由于哈希算法导致顺序混乱可以将方法转换为列表,在排序 方法二 全局函…

Sql Server常用函数及技巧

使用Sql Server好长时间了,今天特别想总结一下,算是回顾吧! 总结: 其实很多技巧,都是基于SQL Server自带的System Views,System Stored Procedures,System Functions (常用函数都在在里面)。 常…

十分钟让你明白AIDL

前言我在[003]AIDL是什么中介绍的AIDL,但是好像还有朋友不明白问我,那我就来写一个终极版的文章,让你十分钟彻底明白AIDL,以下代码全为手写。目标Server进程注册一个Binder服务到SM,该Binder服务提供两个接口&#xff…

表达式

表达式与分支 语句 分割文档main spilit 风格pep8 赋值 序列赋值 列表切割法 扩展序列解包赋值 *获取剩余 多目标赋值 数字256为界以内指向同对象 以外就不同 字符串3个 列表属于引用类型 不要共同引用两种方法 参数化赋值 列表也可以进行参数化赋值 表达式 函数 方法…

Linux下故障分析方法

1、背景有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分…

TEXT宏

TEXT宏是windows程序设计中经常遇到的宏&#xff0c;定义在 <winnt.h>中 TCHAR *P TEXT("this is a const string"); 如果使用UNICODE字符集&#xff0c;则TEXT&#xff08;“....”&#xff09; &#xff0c;相当于 L"....." &#xff1b; 如果使…

作业题

import random fopen(‘data.txt’,‘w’) for i in range(10000): f.write(str(random.randint(1,100))) f.write(’\n’) f.seek(0) print(f.read()) f.close f.seek()函数 移动文件中n个操作 正为向结束方向 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符…

即将放弃python的app_python放弃之 模块和包

importprint(frrom the my_module.py)money1000def rend1():print(my_my_module->reand1->money,money)def rend2():print(my_module->read2 calling read1)read1()def change():global moneymoney0模块可以包含可执行语句和函数的定义&#xff0c;这些语句的目的是初…

ubuntu 安装gitlab

gitlab 类似github&#xff0c;可以用来管理代码。当然除了他们两个还有很多代码管理的工具&#xff0c;国内的也有。我这篇文章就只讲gitlab的安装过程。但是gitlab并不是轻量级的东西&#xff0c;占用大概4~8G的内存&#xff0c;特别是merge的代码比较多的时候&#xff0c;占…

一些常用的linux命令(2)

参考&#xff1a;http://www.cnblogs.com/laov/p/3541414.html 系统管理命令 stat 显示指定文件的详细信息&#xff0c;比ls更详细 who 显示在线登陆用户 whoami 显示当前操作用户 hostname 显示主机名 uname 显示系统信…

迭代

迭代 文章目录迭代内置可迭代对象 range&#xff08;&#xff09;内置函数使用 map&#xff08;函数加对象&#xff09;函数定义与参数定义传参作用域函数参数传值可迭代对象支持迭代协议 遍历循环 因为 迭代协议 方法—next—&#xff08;&#xff09;函数next消耗内存小所占空…

python os renames_Python3 os.renames() 方法

概述os.renames() 方法用于递归重命名目录或文件。类似rename()。语法renames()方法语法格式如下&#xff1a;os.renames(old, new)参数old -- 要重命名的目录new --文件或目录的新名字。甚至可以是包含在目录中的文件&#xff0c;或者完整的目录树。返回值该方法没有返回值实例…

普通人的节奏

在立春当夜&#xff0c;这南方城市的上空响起了2020年的第一声春雷&#xff0c;大家都期待着这一声霹雳除去一切霉噩&#xff0c;带来万象更新。之后的天气逐渐变好&#xff0c;近日来更是风和日丽。前日&#xff0c;去采购食品和日用品&#xff0c;久不出门&#xff0c;趁好天…

DDD领域模型自动生成?

我不想写代码&#xff0c;只想通过界面配置一下就能自动生成代码多好&#xff0c;如果界面也能自动生成&#xff0c;那就更好了转载于:https://www.cnblogs.com/PerfectBeauty/p/7351849.html

函数与lambda

文章目录参数匹配将形参赋值&#xff08;关键字匹配&#xff09;默认位置匹配解包在元组前加*函数传递字典表&#xff0c;使用**解包字典表两种声明法lambda表达式初学者逻辑采用字典表可以实现委托map函数把列表对象每一个拿出来放入函数中进行迭代后放入新的列三种方式filter…

还没学python_2个月过去了!还没学会python?用《流畅的python》15天带你学会

学了很久python&#xff0c;还是完全没有思路自己学了很久的python&#xff0c;还是感觉没学到什么&#xff0c;出现这样的情况的python学习者有很多&#xff0c;只是大多都是放弃了&#xff01;出现这样的原因主要有以下三点&#xff1a;1、没有人带领&#xff0c;遇到问题解决…

Linux内核奔溃分析

前言最近遇到一个kernel奔溃的问题&#xff0c;错误日志开头一部分如下&#xff1a;[ 355.2624510] Unhandled fault: external abort on non-linefetch (0x008) at 0xfe004328 [ 355.2645470] Internal error: : 8 [#1] PREEMPT SMP ARM [ 355.2696320] Modules linked in:…