使用Python3.11编程传染病模型
时间: 2024-01-11 12:02:34 浏览: 71
这里是一个简单的Python3.11编程传染病模型的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义模型参数
beta = 0.3 # 感染率
gamma = 0.1 # 恢复率
N = 1000 # 总人口数
I0, R0 = 1, 0 # 初始感染人数和恢复人数
S0 = N - I0 - R0 # 初始易感人数
# 定义时间步长和时间间隔
dt = 0.1
t = np.arange(0, 100, dt)
# 定义SIR模型的微分方程
def SIR_model(S, I, R, beta, gamma):
dS = -beta*S*I/N
dI = beta*S*I/N - gamma*I
dR = gamma*I
return dS, dI, dR
# 初始化模型状态
S = np.zeros(len(t))
I = np.zeros(len(t))
R = np.zeros(len(t))
S[0], I[0], R[0] = S0, I0, R0
# 使用欧拉方法求解微分方程
for i in range(1, len(t)):
dS, dI, dR = SIR_model(S[i-1], I[i-1], R[i-1], beta, gamma)
S[i] = S[i-1] + dS*dt
I[i] = I[i-1] + dI*dt
R[i] = R[i-1] + dR*dt
# 绘制SIR模型的曲线
plt.plot(t, S, label='Susceptible')
plt.plot(t, I, label='Infected')
plt.plot(t, R, label='Recovered')
plt.legend()
plt.xlabel('Time (days)')
plt.ylabel('Number of people')
plt.title('SIR Model')
plt.show()
```
这个代码生成了一个简单的SIR模型,使用欧拉方法求解微分方程,并绘制了模型的曲线。你可以改变模型参数来探索不同的情况。
阅读全文