如何实现疫情扩散仿真程序?

428 阅读2分钟

内容简介

  • 1.简单介绍疫情扩散仿真程序的实现思路

实现程序

一个完整的程序涉及很多细节,细节过多难以阅读,所以只介绍大致的实现思路,具体细节可以自行看代码理解。

先看完整程序的运行效果,如图。

从图可以看出,整个程序可以分为3大部分。

  • 1.人群散点图
  • 2.床位散点图
  • 3.不同数据间的折现图

大体思路是这样的。

通过numpy来构建人群矩阵,矩阵的每一行表示一个人,大致形式为[[x, y, status ...]],以类似的方式构建床位矩阵,通过这些矩阵就可以轻松绘制出散点图了。

散点图使用matplotlib进行绘制,matplotlib支持动图,使用matplotlib下的animation则可。

有了人群矩阵与床位矩阵,通过numpy就可以轻松统计出不同状态下的人数与床位数,有了这些数据就可以通过matplotlib来绘制折线图了。

至于如何模拟人的接触,其实也很简单,直接计算移动后人群矩阵与移动前人群矩阵间的欧氏距离,然后判断这个距离是否小于某个值,如果小于,则通过random函数随机判断是否要改变人的状态为被感染状态。

要实现程序,需要对numpy与matplotlib有一定程度的掌握。我将实现好的代码上传到了github,代码有详细的注释。

github.com/ayuLiao/Py2…

如果你感兴趣,也可以看一下我编写疫情扩散仿真程序后拍的视频,真人上镜哟。

www.youtube.com/watch?v=ZRG…

关于实现思路的讨论就到这了。

最后,如果你喜欢我的文章,点个「在看」让更多人知道我吧!