python讨论qq群:996113038
导语:
现在大家都只能宅在家里了,实在是无聊。更惨的是我们根本不知道怎样才能出门。于是,今天我就给大家讲一下如何用数学模型来预测肺炎疫情的走势,看一看这个肺炎疫情什么时候能控制下来。什么时候,我们能够战胜疫情。
代码及相关资源获取:
关注“python趣味爱好者”公众号,回复“肺炎数学模型”获取源代码以及相关数据
公众号:aa27388473332
开发工具:
Python3.6.4。
需要安装的模块:
scipy
matplotlib
numpy
pandas
效果演示:
结果是得到了肺炎疫情发展图:疑似病例是绿线,红线是感染病例,
紫线是康复人数。
基本原理:
首先我们需要建立相应的传染病模型。需要把人数分为几类:感染人数,康复人数,疑似病例人数。这三种数据之间相互影响。可以用微分方程模拟出来。
代码如下:
# 模型的差分方程
def diff_eqs(INP, t):
Y = np.zeros((3))
V = INP
print(V)
Y[0] = -beta * V[0] * V[1]
Y[1] = beta * V[0] * V[1] - gamma * V[1]
Y[2] = gamma * V[1]
return Y
我们将目前已经公布的数据导入我们的程序,然后输入到我们的微分方程模型中,就可以得到各种结果的数据。
部分代码:
核心代码是上面的微分方程代码,这里面包含着复杂的数学分析。建立数学模型是最重要的工作。其他的程序主要就是画出一些图像,实现可视化。
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")
pl.xlabel("Time")
pl.ylabel("Infectious Susceptibles")
pl.savefig("result.png")
最后说一句:武汉加油,中国加油。
感谢大家观看,有钱的老板可以打赏一下小编哦!
扫描下方二维码,关注公众号
参考资料:
图片来源:
https://www.pexels.com/photo/nature-sky-clouds-field-9198/
参考来源:https://github.com/zwdnet/2019-nCov-SIRmodel