利用python预测sir模型_SI,SIS,SIR模型的正确实现(python)
时间: 2023-10-28 15:17:04 浏览: 204
SIR_sis_SIRmatlab_SIR模型_SI_SIS模型_
5星 · 资源好评率100%
可以使用Python中的SciPy库来实现SIR模型的预测。以下是一个简单的代码示例:
```python
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# 定义SIR模型的ODE方程
def sir_model(y, t, N, beta, gamma):
S, I, R = y
dSdt = -beta * S * I / N
dIdt = beta * S * I / N - gamma * I
dRdt = gamma * I
return dSdt, dIdt, dRdt
# 定义模型参数
N = 1000 # 总人口数
beta = 0.2 # 传染系数
gamma = 0.1 # 恢复系数
I0, R0 = 1, 0 # 初始感染和康复人数
S0 = N - I0 - R0 # 初始易感人数
t = np.linspace(0, 100, 1000) # 时间序列
# 解ODE方程
solution = odeint(sir_model, [S0, I0, R0], t, args=(N, beta, gamma))
S, I, R = solution.T
# 绘制结果
plt.plot(t, S, label='Susceptible')
plt.plot(t, I, label='Infected')
plt.plot(t, R, label='Recovered')
plt.xlabel('Time (days)')
plt.ylabel('Number of people')
plt.legend()
plt.show()
```
在这个代码中,我们定义了一个`sir_model`函数,它描述了SIR模型的ODE方程。我们通过`odeint`函数解此方程,然后使用Matplotlib库绘制结果。
阅读全文