总第188篇/张俊红

最近看到在网上传的一张SIR传染病模型的图,很多人应该对这个模型不是很了解,今天就讲一下这个模型。这一篇只讲学术,不讨论别的。

SIR模型是传染病模型中最经典的一个,类似的还有SI和SIS两种。SIR是三个单词首字母的缩写,其中S是Susceptible的缩写,表示易感者;I是Infective的缩写,表示感染者;R是Removal的缩写,表示移除者。这个模型本身是在研究这三者的关系。在病毒最开始的时候,所有人都是易感者,也就是所有人都有可能中病毒;当一部分人在接触到病毒以后中病毒了,变成了感染者;感染者会接受各种治疗,最后变成了移除者。这三者的关系如下图所示:

在病毒最开始的时候S=N,然后S以每天α的速度变到I,I又以每天β的速度变到R,不同时刻t下这三者的关系为:

N(t) = S(t) + I(t) + R(t)
S(t+1) = S(t) - αS(t)
I(t+1) = I(t) - βI(t)
R(t+1) =  R(t) + βI(t)

如果我们想要获取某个时间t对应的S、I、R人数,需要知道α和β值,以及S0和I0值。这个模型可以利用Python实现,具体代码如下:

%matplotlib inline
import scipy.integrate as spi
import numpy as np
import pylab as pl
alpha=1.4247
beta=0.14286
TS=1.0 #观察间隔
ND=70.0 #观察结束日期
S0=1-1e-6 #初始易感人数
I0=1e-6 #初始感染人数
INPUT = (S0, I0, 0.0)
def diff_eqs(INP,t):'''The main set of equations'''Y=np.zeros((3))V = INPY[0] = - alpha * V[0] * V[1]Y[1] = alpha * V[0] * V[1] - beta * V[1]Y[2] = beta * V[1]return Y
t_start = 0.0
t_end = ND
t_inc = TS
t_range = np.arange(t_start, t_end+t_inc, t_inc) #生成日期范围
RES = spi.odeint(diff_eqs,INPUT,t_range)pl.subplot(111)
pl.plot(RES[:,0], '-g', label='Susceptible')
pl.plot(RES[:,1], '-r', label='Infective')
pl.plot(RES[:,2], '-k', label='Removal')
pl.legend(loc=0)
pl.title('SIR_Model')
pl.xlabel('Time')
pl.ylabel('Numbers')
pl.xlabel('Time')

最后运行上面的代码可以得到如下结果图,上面这张图表示了随着时间t的变化S、I、R人数的一个变化趋势。

这个模型有两个假设条件:

1.一段时间内总人数N是不变的,也就是不考虑新生以及自然死亡的人数
2.从S到I的变化速度α、从I到R的变化速度β也是保持不变的

在实际环境中上面的两个假设一般是不太容易满足的,所以得出来的结果会和实际数据有偏差。

最近疯传的SIR传染病模型是什么?相关推荐

  1. SIR传染模型Matlab代码,sir传染病模型 MATLAB代码运行不了,

    问题描述: sir传染病模型 MATLAB代码运行不了, function y=ill(t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts ...

  2. SIR传染病模型介绍+R语言简单应用

    此文用于整理回顾写论文时看的文献资料和学到的知识,也希望能带来一些参考. 什么是SIR模型? 1927年,Kermack 和 McKendrick 为了研究17世纪肆虐伦敦的黑死病和20世纪席卷孟买的 ...

  3. Python学习:SIR传染病模型

    SIR模型是传染病模型中最经典的一个,类似的还有SI和SIS两种.SIR是三个单词首字母的缩写,其中S是Susceptible的缩写,表示易感者:I是Infective的缩写,表示感染者,R是Remo ...

  4. NetLogo学习笔记5 —— 物种与传染病模型

    NetLogo学习笔记5 -- 物种与传染病模型 (模型经过一些修改,与标准SIR模型有些出入) 在上一篇文章,我们学习了随机选择.伪并发.ifelse和of语法.实现了用于解释隔离现象的谢林模型 这 ...

  5. matlab求解常微分方程组/传染病模型并绘制SIR曲线

    看了很多关于传染病模型的matlab程序,大都是绘制出两条曲线(I.S)的,本文最大的不同是绘出SIR三条曲线. 先给出SIR微分方程组 函数文件: run的程序:

  6. 数学建模清风第一次直播:传染病模型和微分方程拟合

    学习网址:课件下载 数学建模清风第一次直播:传染病模型和微分方程拟合 数学建模清风第二次直播:模拟退火算法 数学建模清风第三次直播:excel在数学建模中的应用 博客笔记: 数学建模清风第一次直播:传 ...

  7. deepfake ai智能换脸_AI换脸之后,智能去除马赛克视频工具被疯传,测试结果令人意外...

    AI换脸之后,智能去除马赛克视频工具被疯传,测试结果令人意外 未来10年,你觉得什么科技最能改变生活?是5G网络.智能驾驶.还是--或许在人工智能AI技术,也是其中的一员,因为人类将AI定位为下一个可 ...

  8. 数模学习第三天--微分方程(传染病模型)

    微分方程 定义 包含关于未知变量.未知变量的导数以及自变量的方程 第一类为可分离变量的微分方程. 在高数中我们学过相关内容,如: 建模准备 1.运用已知规律列方程 利用数学.力学.物理.化学等学科中的 ...

  9. 微分方程(人口预测与传染病模型)

    一.定义 微分方程:含导数或微分的方程 微分方程的阶数:所含导数或微分的最高阶数,如y'''+2y''-2x=0是三阶微分方程 微分方程的解:使得微分方程成立的函数 例如y'-2x=0的解可以为x²或 ...

最新文章

  1. linux密码加密文件,Linux下加密/解密及用密码保护文件的七把利器
  2. 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)
  3. 1071. Speech Patterns (25)
  4. python全局名称空间_python之名称空间知识点整理
  5. leetcode 564,546
  6. python 新建html_Python学习第226课——html中创建按钮
  7. c# datetime._C#| DateTime.Month属性与示例
  8. opcua客户端实现断线重连_虹科教您|实现OPC UA C/S快速部署及数据采集
  9. python学习10
  10. 应用安全-路由器安全-修复方案整理
  11. 2021年中国穿戴式科技市场趋势报告、技术动态创新及2027年市场预测
  12. Android Studio开发实战(新手入门)一
  13. 机器视觉是什么,未来前景怎么样?
  14. 为什么二维码扫码支付为什么不需要输支付密码,而条形码支付需要输入支付密码?
  15. 【渝粤题库】陕西师范大学292161社会保障概论 作业(专升本)
  16. php文件档结构图,ecshop文件结构名称详细版
  17. 威斯康星麦迪逊计算机专业排名,威斯康星大学麦迪逊分校计算机工程类专业排名...
  18. 毕业设计论文选题系统系统用例图_毕业设计管理系统UML
  19. 浙江大学 计算机学院 三位一体,浙江大学三位一体招生
  20. 【区块链】HyperLedger Besu Tessera集群服务

热门文章

  1. 中间件是什么,常用的中间件有哪些?
  2. php float 向下取整,php怎么实现向下取整
  3. JSP水产品销售系统
  4. 如何从Windows轻松过渡到Linux?
  5. 抖音VS西瓜,哪个赚钱快?
  6. 相信我,SDRAM真的不难----汇总篇
  7. STM32的TAMPER-RTC管脚作为Tamper使用 - 防拆机
  8. 精益价值流图实践步骤
  9. 解决Deepin系统WiFi网速慢的问题
  10. 如何写好.babelrc?Babel的presets和plugins配置解析