龙格库塔解传染病模型python
时间: 2023-10-01 10:12:07 浏览: 65
使用龙格-库塔法(Runge-Kutta method)可以求解传染病模型。以下是一个简单的 Python 代码示例:
```python
import numpy as np
from scipy.integrate import odeint
# 定义传染病模型的ODE方程
def SIR(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
# 初始值
N = 1000
I0, R0 = 1, 0
S0 = N - I0 - R0
y0 = S0, I0, R0
# 参数
beta, gamma = 0.2, 1./10
# 时间点
t = np.linspace(0, 160, 160)
# 解ODE方程
sol = odeint(SIR, y0, t, args=(beta, gamma))
# 绘图
import matplotlib.pyplot as plt
plt.plot(t, sol[:, 0], 'b', label='S')
plt.plot(t, sol[:, 1], 'r', label='I')
plt.plot(t, sol[:, 2], 'g', label='R')
plt.legend(loc='best')
plt.xlabel('Time')
plt.ylabel('Number')
plt.show()
```
在这个例子中,我们使用了 SIR 模型来描述传染病的传播情况。该模型包括三个基本组成部分:易感者(S)、感染者(I)和恢复者(R)。我们使用龙格-库塔法求解该模型,并绘制了 S、I、R 三个变量随时间的变化情况。