Скелет модели SEIR представляет собой систему дифференциальных уравнений, описывающих динамику распространения инфекции в популяции. Вот как выглядит скелет SEIR-модели:
Рассмотрим пример реализации модели SEIR на языке Python с использованием библиотеки SciPy для решения дифференциальных уравнений:
```python
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# Функция, описывающая систему дифференциальных уравнений SEIR
def deriv(y, t, N, beta, sigma, gamma):
S, E, I, R = y
dSdt = -beta * S * I / N
dEdt = beta * S * I / N – sigma * E
dIdt = sigma * E – gamma * I
dRdt = gamma * I
return dSdt, dEdt, dIdt, dRdt
# Параметры модели и начальные условия
N = 1000 # Общее количество людей в популяции
beta = 0.2 # Коэффициент передачи болезни
sigma = 0.1 # Скорость перехода от инфицированного, но не инфекционного, к инфекционному состоянию
gamma = 0.05 # Скорость выздоровления или перехода от инфекционного к выздоровевшему состоянию
E0, I0, R0 = 1, 0, 0 # Начальное количество инфицированных, выздоровевших
S0 = N – E0 – I0 – R0 # Начальное количество подверженных
# Временные точки
t = np.linspace(0, 160, 160)
# Решение системы дифференциальных уравнений SEIR
y0 = S0, E0, I0, R0
ret = odeint(deriv, y0, t, args=(N, beta, sigma, gamma))
S, E, I, R = ret.T
# Построение графика
plt.figure(figsize=(10, 6))
plt.plot(t, S, 'b', alpha=0.7, linewidth=2, label='Подверженные')