最近疯传的SIR传染病模型是什么?
总第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传染病模型是什么?相关推荐
- 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 ...
- SIR传染病模型介绍+R语言简单应用
此文用于整理回顾写论文时看的文献资料和学到的知识,也希望能带来一些参考. 什么是SIR模型? 1927年,Kermack 和 McKendrick 为了研究17世纪肆虐伦敦的黑死病和20世纪席卷孟买的 ...
- Python学习:SIR传染病模型
SIR模型是传染病模型中最经典的一个,类似的还有SI和SIS两种.SIR是三个单词首字母的缩写,其中S是Susceptible的缩写,表示易感者:I是Infective的缩写,表示感染者,R是Remo ...
- NetLogo学习笔记5 —— 物种与传染病模型
NetLogo学习笔记5 -- 物种与传染病模型 (模型经过一些修改,与标准SIR模型有些出入) 在上一篇文章,我们学习了随机选择.伪并发.ifelse和of语法.实现了用于解释隔离现象的谢林模型 这 ...
- matlab求解常微分方程组/传染病模型并绘制SIR曲线
看了很多关于传染病模型的matlab程序,大都是绘制出两条曲线(I.S)的,本文最大的不同是绘出SIR三条曲线. 先给出SIR微分方程组 函数文件: run的程序:
- 数学建模清风第一次直播:传染病模型和微分方程拟合
学习网址:课件下载 数学建模清风第一次直播:传染病模型和微分方程拟合 数学建模清风第二次直播:模拟退火算法 数学建模清风第三次直播:excel在数学建模中的应用 博客笔记: 数学建模清风第一次直播:传 ...
- deepfake ai智能换脸_AI换脸之后,智能去除马赛克视频工具被疯传,测试结果令人意外...
AI换脸之后,智能去除马赛克视频工具被疯传,测试结果令人意外 未来10年,你觉得什么科技最能改变生活?是5G网络.智能驾驶.还是--或许在人工智能AI技术,也是其中的一员,因为人类将AI定位为下一个可 ...
- 数模学习第三天--微分方程(传染病模型)
微分方程 定义 包含关于未知变量.未知变量的导数以及自变量的方程 第一类为可分离变量的微分方程. 在高数中我们学过相关内容,如: 建模准备 1.运用已知规律列方程 利用数学.力学.物理.化学等学科中的 ...
- 微分方程(人口预测与传染病模型)
一.定义 微分方程:含导数或微分的方程 微分方程的阶数:所含导数或微分的最高阶数,如y'''+2y''-2x=0是三阶微分方程 微分方程的解:使得微分方程成立的函数 例如y'-2x=0的解可以为x²或 ...
最新文章
- linux密码加密文件,Linux下加密/解密及用密码保护文件的七把利器
- 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)
- 1071. Speech Patterns (25)
- python全局名称空间_python之名称空间知识点整理
- leetcode 564,546
- python 新建html_Python学习第226课——html中创建按钮
- c# datetime._C#| DateTime.Month属性与示例
- opcua客户端实现断线重连_虹科教您|实现OPC UA C/S快速部署及数据采集
- python学习10
- 应用安全-路由器安全-修复方案整理
- 2021年中国穿戴式科技市场趋势报告、技术动态创新及2027年市场预测
- Android Studio开发实战(新手入门)一
- 机器视觉是什么,未来前景怎么样?
- 为什么二维码扫码支付为什么不需要输支付密码,而条形码支付需要输入支付密码?
- 【渝粤题库】陕西师范大学292161社会保障概论 作业(专升本)
- php文件档结构图,ecshop文件结构名称详细版
- 威斯康星麦迪逊计算机专业排名,威斯康星大学麦迪逊分校计算机工程类专业排名...
- 毕业设计论文选题系统系统用例图_毕业设计管理系统UML
- 浙江大学 计算机学院 三位一体,浙江大学三位一体招生
- 【区块链】HyperLedger Besu Tessera集群服务