你可以写seir传染病模型的python代码吗
时间: 2024-06-10 11:06:50 浏览: 308
传染病SEIR传播动力模型python代码
当然可以,以下是Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义初始值
N = 10000 # 总人数
I0 = 1 # 初始感染人数
E0 = 0 # 初始潜伏期感染人数
R0 = 0 # 初始康复人数
S0 = N - I0 - E0 - R0 # 初始易感者人数
# 定义模型参数
beta = 0.2 # 感染率
sigma = 1/14 # 潜伏期转化为感染率
gamma = 1/7 # 治愈率
# 定义时间步长和时间段
dt = 0.1
t = np.arange(0, 100, dt)
# 定义初始条件
E = [E0]
I = [I0]
R = [R0]
S = [S0]
# 开始迭代
for i in range(len(t)-1):
# 计算每个时间步骤的人数变化
de = beta * S[i] * I[i] / N - sigma * E[i]
di = sigma * E[i] - gamma * I[i]
dr = gamma * I[i]
ds = -beta * S[i] * I[i] / N
# 计算下一个时间步骤的人数
E.append(E[i] + de*dt)
I.append(I[i] + di*dt)
R.append(R[i] + dr*dt)
S.append(S[i] + ds*dt)
# 可视化结果
plt.plot(t, S, label='Susceptible')
plt.plot(t, E, label='Exposed')
plt.plot(t, I, label='Infected')
plt.plot(t, R, label='Recovered/Removed')
plt.legend()
plt.title('SEIR Model')
plt.xlabel('Time /days')
plt.ylabel('Number')
plt.show()
```
说明:这是一个基于SEIR模型的传染病模拟代码,可以模拟新冠等病毒的传播过程,但仅供学习和研究使用。如果需要更加精确的模拟结果,需要更多的数据和假设,以及更精细的模型。
阅读全文