【python】SIR模型实现
来源:互联网 发布:ise软件 编辑:程序博客网 时间:2024/05/01 23:07
SIR模型python实现
SIR模型是传染病模型中最经典的模型,其中S表示易感者,I表示感染者,R表示恢复者。SIR模型中,染病人群为传染的源头,他通过一定的几率把传染病传给易感人群,他自己也有一定的几率/可以被治愈并免疫,或者死亡;易感人群一旦被感染,就又成为了新的传染源。将人群划分为三类,易感染者、已感染者和已恢复者(recovered )。
可建立下面的三房室模型:
其中:
Parameters
pythonCode:
import scipy.integrate as spiimport numpy as npimport pylab as plbeta=1.4247gamma=0.14286TS=1.0ND=70.0S0=1-1e-6I0=1e-6INPUT = (S0, I0, 0.0)def diff_eqs(INP,t):'''The main set of equations'''Y=np.zeros((3))V = INPY[0] = - beta * V[0] * V[1]Y[1] = beta * V[0] * V[1] - gamma * V[1]Y[2] = gamma * V[1]return Y # For odeintt_start = 0.0; t_end = ND; t_inc = TSt_range = np.arange(t_start, t_end+t_inc, t_inc)RES = spi.odeint(diff_eqs,INPUT,t_range)print RES#Plotingpl.subplot(111)pl.plot(RES[:,1], '-r', label='Infectious')pl.plot(RES[:,0], '-g', label='Susceptibles')pl.plot(RES[:,2], '-k', label='Recovereds')pl.legend(loc=0)pl.title('SIR_Model.py')pl.xlabel('Time')pl.ylabel('Infectious Susceptibles and Recovereds')pl.xlabel('Time')pl.show()结果
从图中可见,随着时间的推移传播者刚开始急速上升再缓慢下降。恢复者持续上升趋于稳定,易感染者持续下降趋于稳定。该模型是SIR中最基本模型,此外还有一些考虑出生率、死亡率等因素的模型变种。
参考链接:
SIR模型参考
1 0
- 【python】SIR模型实现
- 《改进SIR 模型在社交网络信息传播中的应用》仿真实现
- lda模型的python实现
- 隐马尔模型----五:python实现
- python实现最大熵模型
- python实现KD树模型
- matlab求解常微分方程组/传染病模型并绘制SIR曲线
- 【转自戴Sir】七牛关于Python SDK的各种Demo
- BoW(词袋模型)+python代码实现
- 隐马尔可夫模型 HMM 的python实现
- 谢林隔离模型的Python实现
- 最大熵模型及Python实现
- 基于Python的Xgboost模型实现
- 离散概率模型的Python实现
- python实现obj模型的归一化
- Python实现HMM(隐马尔可夫模型)
- 机器学习Python实现之线性模型
- Python实现HMM(隐马尔可夫模型)
- Activity加载过程笔记(一)
- Content API与CEF3的关系
- AS基础命令篇一 - android
- 读《重构》1~3章
- 2015年度终结
- 【python】SIR模型实现
- matlab中sort函数的用法
- 课程设计 校园导航
- 解决Myeclipse不能部署项目的问题
- WCF初了解
- pomelo研究
- 2015总结
- mfc在窗口中添加右键菜单
- 一个汉字 占用 三个字节...