内容简介
- 1.简单介绍疫情扩散仿真程序的实现思路
实现程序
一个完整的程序涉及很多细节,细节过多难以阅读,所以只介绍大致的实现思路,具体细节可以自行看代码理解。
先看完整程序的运行效果,如图。
从图可以看出,整个程序可以分为3大部分。
- 1.人群散点图
- 2.床位散点图
- 3.不同数据间的折现图
大体思路是这样的。
通过numpy来构建人群矩阵,矩阵的每一行表示一个人,大致形式为[[x, y, status ...]],以类似的方式构建床位矩阵,通过这些矩阵就可以轻松绘制出散点图了。
散点图使用matplotlib进行绘制,matplotlib支持动图,使用matplotlib下的animation则可。
有了人群矩阵与床位矩阵,通过numpy就可以轻松统计出不同状态下的人数与床位数,有了这些数据就可以通过matplotlib来绘制折线图了。
至于如何模拟人的接触,其实也很简单,直接计算移动后人群矩阵与移动前人群矩阵间的欧氏距离,然后判断这个距离是否小于某个值,如果小于,则通过random函数随机判断是否要改变人的状态为被感染状态。
要实现程序,需要对numpy与matplotlib有一定程度的掌握。我将实现好的代码上传到了github,代码有详细的注释。
https://github.com/ayuLiao/Py...
如果你感兴趣,也可以看一下我编写疫情扩散仿真程序后拍的视频,真人上镜哟。
https://www.youtube.com/watch...
关于实现思路的讨论就到这了。
最后,如果你喜欢我的文章,点个「在看」让更多人知道我吧!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。