Python模拟疫情扩散

导语

Emmmm...

首先必须声明一下这只是一个虚构的例子,并非真实事件。

之前在zulko看到了一些数据动态可视化的例子,感觉很有趣,于是就有了今天这篇文章。

部分内容参考自maxberggren。

让我们愉快地开始吧~~~

开发工具

Python版本:3.6.4

相关模块:

numpy模块;

matplotlib模块;

PIL模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

病毒传播模型:

本文采用了SIR模型,其核心公式为:

参数解释:

其中,S代表易感人群;I代表染病群体或者说是僵尸数量;R代表移除量,即死亡或者恢复健康者。

β表示疾病的传染性程度;γ表示从感染走向死亡的速率。

S'告诉我们健康者变成僵尸的速率;I'告诉我们感染者是如何增加的以及僵尸进入移除态的速率;R'只是加上了参数γ的I。

考虑S/I/R空间分布后对其修正如下:

欧拉法:

现在我们已经知道了u',那么预测函数u的计算可以用欧拉法近似,推导如下:

具体实现:

利用北欧国家的人口密度图作为具体实现的例子,并以斯德哥尔摩作为第一感染源。

具体实现过程详见相关文件中的源代码。

结果展示

在cmd窗口运行Demo.py文件即可。

效果如下:

更多

代码截止2018-06-11测试无误。

其实我之前看的数据动态可视化效果比我现在实现的效果要高大上很多,只是没想好怎么用,以后有机会再实现一些高端点的例子吧~~~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611B1R9OY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券