传染病传播动力学模型python代码
时间: 2024-09-27 21:13:27 浏览: 48
传染病传播动力学模型通常用于理解疾病如何在人群中的传播过程,通过数学公式描述感染者的增长、康复和死亡等动态变化。Python是一种强大的工具,因其丰富的库和易读性而常用于此类建模。
以下是一个简单的SIR(Susceptible-Infectious-Recovered)模型的Python代码示例,这是一个基本的传染病模型,分为三个阶段:易感者(S)、感染者(I)和恢复者(R)。这个模型假设人口总数不变,并且感染过程中有固定的传染率和恢复率:
```python
import numpy as np
from scipy.integrate import odeint
# 模型参数
N = 1000000 # 总人口数
beta = 0.5 # 传染率
gamma = 0.1 # 恢复率
S0, I0, R0 = N - 1, 1, 0 # 初始状态
# SIR模型函数
def sird_model(t, state):
S, I, R = state
dSdt = - gamma * I
dRdt = gamma * I
return [dSdt, dIdt, dRdt]
# 时间范围和步长
t_start, t_end = 0, 180 # 从第0天到第180天
dt = 0.1
t = np.arange(t_start, t_end + dt, dt)
# 计算SIR模型轨迹
solution = odeint(sird_model, [S0, I0, R0], t)
# 可视化结果
import matplotlib.pyplot as plt
plt.plot(t, solution[:, 0], label='易感者')
plt.plot(t, solution[:, 1], label='感染者')
plt.plot(t, solution[:, 2], label='恢复者')
plt.xlabel('时间 (天)')
plt.ylabel('人数')
plt.title('SIR模型')
plt.legend()
plt.show()
阅读全文