流行病模型的 Python 完整代码示例,SEIR模型,直接写代码
时间: 2023-01-31 11:06:53 浏览: 113
seirsplus:SEIRS流行病学模型
这是一个简单的 SEIR 模型的 Python 代码示例:
```
import numpy as np
def seir_model(t, y, N, beta, gamma, delta):
# y是一个包含四个数的列表,分别表示 S,E,I,R 状态的人数
S, E, I, R = y
# 计算出潜伏期人群数量
latent = E - I
# 计算出感染人群数量
infected = I
# 计算出抗体人群数量
recovered = R
# 计算出易感人群数量
susceptible = N - infected - recovered - latent
# 计算出新增感染人群数量
new_infections = beta * infected * susceptible / N
# 计算出新增抗体人群数量
new_recovered = gamma * infected
# 计算出新增潜伏期人群数量
new_latent = delta * infected
# 返回 SEIR 模型的微分方程
dSdt = -new_infections
dEdt = new_infections - new_latent
dIdt = new_latent - new_recovered
dRdt = new_recovered
return dSdt, dEdt, dIdt, dRdt
# 定义初始值
N = 1000 # 总人数
S0, E0, I0, R0 = 999, 1, 0, 0 # 初始状态人数
# 定义参数
beta = 0.5 # 感染概率
gamma = 0.1 # 治愈概率
delta = 0.1 # 潜伏期概率
# 定义时间轴
t = np.linspace(0, 365, 365) # 从0到365天,每天计算一次
# 调用 odeint 函数求解微分方程
from scipy.integrate import odeint
y0 = S0, E0, I0, R0
solution = odeint(seir_model, y0, t, args=(N, beta, gamma, delta))
S, E, I, R = solution.T
阅读全文