流行病模型的 Python 完整代码示例,SEIR模型,直接写代码
时间: 2023-01-31 19:06:54 浏览: 152
传染病SEIR传播动力模型python代码
下面是一个关于 SEIR 模型的 Python 代码示例:
```python
import numpy as np
# 首先定义一些常量
# 初始人口总数
N = 10000
# 感染者初始人数
I0 = 1
# 潜伏者初始人数
E0 = 0
# 易感者初始人数
S0 = N - I0 - E0
# 恢复者初始人数
R0 = 0
# 感染者生存时间
T_inf = 7
# 潜伏者持续时间
T_lat = 5
# 每日接触人数
contacts_per_day = 10
# 感染概率
p_inf = 0.3
# 时间步长
dt = 0.1
# 模拟的总天数
days = 365
# 每天的时间步数
steps_per_day = int(1 / dt)
# 总的时间步数
total_steps = int(days * steps_per_day)
# 然后初始化变量
# 易感者人数
S = np.zeros(total_steps)
S[0] = S0
# 潜伏者人数
E = np.zeros(total_steps)
E[0] = E0
# 感染者人数
I = np.zeros(total_steps)
I[0] = I0
# 恢复者人数
R = np.zeros(total_steps)
R[0] = R0
# 接下来进行模拟
for t in range(1, total_steps):
# 易感者转潜伏者
E[t] = E[t-1] + dt * (S[t-1] / N) * I[t-1] * contacts_per_day
# 潜伏者转感染者
I[t] = I[t-1] + dt * (E[t-1] / T_lat)
# 感染者转恢复者
R[t] = R[t-1] + dt * (I[t-1] / T_inf)
# 易感者转感染者
S[t] = S[t-1] - dt * (S[t-1] / N) * I[t-1] * contacts_per_day * p_inf
# 最后绘制曲线
阅读全文