简单的疫情预测模型的Python实现
下面是一个使用SIR模型(易感染-感染-恢复)的简单疫情预测模型的Python代码示例。代码中包括了初始参数设置和模型方程的实现。通过该模型可以对疫情传播的进程进行预测和估计。具体实现过程如下:
import numpy as np
import matplotlib.pyplot as plt
# 设置初始参数
N = 1000 # 受感染人群总数
I0 = 10 # 初始感染人数
beta = 0.4 # 疫情扩散速度
gamma = 0.1 # 感染恢复速度
days = 200 # 预测天数
# 构建SIR模型方程
def sir_model(y, t, N, beta, gamma):
S, I, R = y
dSdt = -beta * S * I / N
dIdt = beta * S * I / N - gamma * I
dRdt = gamma * I
return dSdt, dIdt, dRdt
# 初始化时间和初始状态
t = np.linspace(0, days, days)
y0 = N - I0, I0, 0
# 数值求解
result = odeint(sir_model, y0, t, args=(N, beta, gamma))
S, I, R = result.T
# 绘制曲线图
fig, ax = plt.subplots()
ax.plot(t, S, label='易感人群')
ax.plot(t, I, label='感染人数')
ax.plot(t, R, label='恢复人数')
plt.xlabel('时间')
plt.ylabel('人数')
plt.title('疫情传播模型')
plt.legend()
plt.show()
用户评论