生成seir模型的python代码
时间: 2023-12-15 12:27:57 浏览: 114
传染病SEIR传播动力模型python代码
以下是一个简单的 Python 代码,用于生成基于 SEIR 模型的流行病学模型:
```python
import numpy as np
import matplotlib.pyplot as plt
# 模型参数
beta = 0.2 # 传染率
sigma = 0.1 # 潜伏期
gamma = 0.05 # 恢复率
N = 1000 # 总人口数
I0, E0, R0 = 1, 0, 0 # 初始感染、潜伏和康复人数
S0 = N - I0 - E0 - R0 # 初始易感人数
# 时间步长
t = np.linspace(0, 200, 200)
# SEIR 模型方程
def deriv(y, t, N, beta, sigma, gamma):
S, E, I, R = y
dSdt = -beta * S * I / N
dEdt = beta * S * I / N - sigma * E
dIdt = sigma * E - gamma * I
dRdt = gamma * I
return dSdt, dEdt, dIdt, dRdt
# 初始条件
y0 = S0, E0, I0, R0
# 解方程
ret = odeint(deriv, y0, t, args=(N, beta, sigma, gamma))
S, E, I, R = ret.T
# 绘制曲线
plt.plot(t, S, label='Susceptible')
plt.plot(t, E, label='Exposed')
plt.plot(t, I, label='Infected')
plt.plot(t, R, label='Recovered')
plt.legend()
plt.xlabel('Time (days)')
plt.ylabel('Population')
plt.show()
```
该代码使用了 Python 中的 SciPy 库中的 odeint() 函数来解决 SEIR 模型的微分方程。模型参数包括传染率、潜伏期、恢复率以及总人口数等。解方程后,将得到易感、潜伏、感染和康复人数的时间变化曲线。
阅读全文