Рассмотрим пример кода на Python для реализации SIR-модели:

```python

import numpy as np

from scipy.integrate import odeint

import matplotlib.pyplot as plt

# Определение функции, представляющей систему дифференциальных уравнений SIR-модели

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]

# Начальные условия: количество подвергшихся инфекции, инфицированных и выздоровевших

S0 = 0.99

I0 = 0.01

R0 = 0.0

# Временные параметры

t = np.linspace(0, 200, 1000) # Временной интервал: от 0 до 200 дней, 1000 точек

# Коэффициенты модели: скорость передачи болезни (beta) и скорость выздоровления (gamma)

beta = 0.3

gamma = 0.1

# Решение системы дифференциальных уравнений

solution = odeint(sir_model, [S0, I0, R0], t, args=(beta, gamma))

# Построение графика

plt.plot(t, solution[:, 0], label='Подверженные') # Подверженные

plt.plot(t, solution[:, 1], label='Инфицированные') # Инфицированные

plt.plot(t, solution[:, 2], label='Выздоровевшие') # Выздоровевшие

plt.xlabel('Время (дни)')

plt.ylabel('Доля населения')

plt.title('Модель SIR')

plt.legend()

plt.grid(True)

plt.show()

```


Этот код реализует SIR-модель для моделирования распространения инфекционного заболевания в популяции. Он использует библиотеки NumPy, SciPy и Matplotlib для выполнения численных вычислений, решения дифференциальных уравнений и визуализации результатов.

Комментарии в коде объясняют каждую часть программы: определение функции `sir_model` для системы дифференциальных уравнений SIR-модели, установка начальных условий и временных параметров, решение дифференциальных уравнений с помощью функции `odeint`, построение графика, показывающего изменение численности каждой группы (подверженные, инфицированные, выздоровевшие) с течением времени.

После выполнения кода, мы получаем графики, отображающие динамику эпидемии во времени. В результате мы увидим три кривые, представляющие количество подверженных инфекции (S), инфицированных (I) и выздоровевших (R) с течением времени.

– График для подверженных инфекции (S): На этом графике мы увидим, как количество подверженных инфекции уменьшается с течением времени, поскольку люди заражаются и становятся иммунными к болезни.

– График для инфицированных (I): Этот график показывает, как количество инфицированных меняется во времени. На начальном этапе количество инфицированных может расти, затем оно может достигнуть пика и начать снижаться по мере того, как люди выздоравливают от болезни.

– График для выздоровевших (R): На этом графике мы видим, как количество выздоровевших от болезни растет с течением времени, поскольку инфицированные люди выздоравливают и становятся иммунными к болезни.

Эти графики позволяют нам визуально оценить динамику эпидемии, а также определить основные параметры, такие как скорость распространения болезни и эффективность мер по ее контролю. Это позволяет принимать более обоснованные решения в области общественного здравоохранения для борьбы с эпидемией.


3. SEIRS-модель является вариантом SEIR-модели, которая в свою очередь является математической моделью для изучения распространения инфекционных заболеваний в популяции. В SEIR-модели популяция разделяется на четыре категории: подверженные инфекции (Susceptible), инфицированные (Exposed), инфицированные и инфекциозные (Infectious), и выздоровевшие или имеющие иммунитет (Recovered).

В SEIRS-модели добавляется дополнительная категория – Recovered with temporary immunity, что означает, что выздоровевшие имеют временный иммунитет перед тем, как вернуться в состояние подверженности инфекции. Это позволяет учесть факторы, такие как временное уменьшение иммунитета после выздоровления или длительный период времени, когда человек может быть вновь подвержен заражению после излечения.