新冠sir模型python实现
时间: 2023-11-02 13:07:15 浏览: 56
SIR模型是一种常见的用于描述疫情传播的数学模型。要在Python中实现SIR模型,可以使用Scipy工具包的odeint函数来求解微分方程组。
首先,我们需要导入所需的库和函数:
```python
import numpy as np
from scipy.integrate import odeint
```
然后,定义SIR模型的微分方程:
```python
def sir_model(y, t, beta, gamma):
S, I, R = y
dSdt = -beta * S * I
dIdt = beta * S * I - gamma * I
dRdt = gamma * I
return [dSdt, dIdt, dRdt]
```
接下来,定义模型参数和初始条件:
```python
beta = 0.2 # S->I传染率
gamma = 0.1 # I->R康复率
N = 1000 # 总人口数
I0 = 1 # 初始感染人数
R0 = 0 # 初始康复人数
S0 = N - I0 - R0 # 初始易感人数
y0 = [S0, I0, R0] # 初始条件
t = np.linspace(0, 100, 100) # 时间范围
```
最后,利用odeint函数求解微分方程,并绘制结果:
```python
solution = odeint(sir_model, y0, t, args=(beta, gamma))
S, I, R = solution[:, 0], solution[:, 1], solution[:, 2]
import matplotlib.pyplot as plt
plt.plot(t, S, label='Susceptible')
plt.plot(t, I, label='Infected')
plt.plot(t, R, label='Recovered')
plt.xlabel('Time')
plt.ylabel('Population')
plt.legend()
plt.show()
```
这样,我们就可以得到SIR模型的传播情况图表。