sis传染模型python案例
时间: 2023-10-15 15:27:05 浏览: 39
以下是一个基于SIS传染病模型的Python案例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 传染病模型参数
beta = 0.3 # 感染率
gamma = 0.05 # 恢复率
# 初始人数
N = 1000 # 总人数
I0 = 10 # 初始感染人数
# 时间参数
t_start = 0
t_end = 100
dt = 0.1
t = np.arange(t_start, t_end, dt)
# 初始化人群状态
S = np.zeros_like(t) # 易感人群
I = np.zeros_like(t) # 感染人群
S[0] = N - I0
I[0] = I0
# 模型求解
for i in range(1, len(t)):
dSdt = -beta * S[i-1] * I[i-1] / N + gamma * I[i-1]
dIdt = beta * S[i-1] * I[i-1] / N - gamma * I[i-1]
S[i] = S[i-1] + dSdt * dt
I[i] = I[i-1] + dIdt * dt
# 绘制结果
plt.plot(t, S, label='Susceptible')
plt.plot(t, I, label='Infected')
plt.legend()
plt.xlabel('Time')
plt.ylabel('Population')
plt.show()
```
这个案例使用欧拉方法对SIS传染病模型进行求解,并使用matplotlib库绘制结果。其中,beta和gamma分别是感染率和恢复率,N是总人数,I0是初始感染人数,t是时间序列,S和I是易感人群和感染人群的数量。与SI模型不同的是,SIS模型中感染者可以恢复并成为易感者。