Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИДЗ / МОДЕЛЬ РАСПРОСТРАНЕНИЯ ВИРУСНОЙ ИНФЕКЦИИ.docx
Скачиваний:
0
Добавлен:
12.02.2026
Размер:
140.68 Кб
Скачать

Моделирование на практике.

Проведём моделирование на практике, для этого напишем программный код на языке python (приложение) и посмотрим, как поведёт себя система с разными начальными условиями.

Для моделирования использовались следующие значения:

  1. β=0.3: скорость передачи инфекции (интенсивность заражения). Это означает, что вероятность заражения одного восприимчивого человека увеличивается пропорционально числу зараженных.

  2. γ=0.1: скорость выздоровления. Это означает, что в среднем человек выздоравливает через 1/γ=10 дней.

  3. μ=0.02: скорость летального исхода. Это означает, что в среднем вероятность смерти для одного зараженного составляет μ/(γ+μ)=16,7%.

После исследования получаем следующий график:

Рис. 2. График моделирования расширенной SIR модели.

Попробуем задать такие условия, чтобы эпидемии не произошло: необходимо, чтобы число репродукции R0 было меньше или равно 1.

Для этого необходимо выполнить одно или несколько из следующих действий:

  1. Уменьшить β (скорость передачи инфекции). Это можно интерпретировать как снижение контактов между людьми или введение профилактических мер (например, ношение масок, социальное дистанцирование).

  2. Увеличить γ + μ (суммарную скорость выздоровления и летального исхода). Это означает ускорение выздоровления (эффективное лечение) или повышение смертности, хотя последний фактор не желателен.

Промоделируем систему со следующими параметрами:

  1. β = 0.1 (уменьшение скорости заражения).

  2. γ = 0.15 (ускорение выздоровления).

  3. μ = 0.05 (летальность осталась на уровне 5%).

Рис. 3. Моделирование системы без эпидемии.

Вывод.

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

Для построенной математической модели был написан код на языке программирования python, который позволил промоделировать систему с разными начальными условиями и проверить теоретические положения моделирования.

Было доказано, что для появления эпидемии, необходимо, чтобы число репродукции было больше 1. В приведённых примерах, при числе репродукции 2,5 эпидемия происходила, а при числе репродукции 0,5 эпидемии не происходило.

Приложение 1. Код программы моделирования.

import numpy as np

import matplotlib.pyplot as plt

from scipy.integrate import odeint

# Функция для системы уравнений SIRD

def sir_model(y, t, beta, gamma, mu):

S, I, R, D = y

dSdt = -beta * S * I

dIdt = beta * S * I - (gamma + mu) * I

dRdt = gamma * I

dDdt = mu * I

return [dSdt, dIdt, dRdt, dDdt]

# Основные параметры

N = 10**2 # Общее население

beta = 0.1 # Скорость передачи инфекции

gamma = 0.15 # Скорость выздоровления

mu = 0.05 # Скорость летального исхода

# Начальные условия

S0 = N - 1 # Восприимчивые

I0 = 1 # Зараженные

R0 = 0 # Выздоровевшие

D0 = 0 # Умершие

# Нормированные начальные условия

S0_norm = S0 / N

I0_norm = I0 / N

R0_norm = R0 / N

D0_norm = D0 / N

# Период моделирования (дни)

t = np.linspace(0, 160, 160)

# Решение системы уравнений

y0 = [S0_norm, I0_norm, R0_norm, D0_norm]

solution = odeint(sir_model, y0, t, args=(beta, gamma, mu))

S, I, R, D = solution.T

# Визуализация результатов

plt.figure(figsize=(10, 6))

plt.plot(t, S, label='Восприимчивые (S)', color='blue')

plt.plot(t, I, label='Зараженные (I)', color='red')

plt.plot(t, R, label='Выздоровевшие (R)', color='green')

plt.plot(t, D, label='Умершие (D)', color='black')

plt.title('Расширенная SIR-модель с летальным исходом')

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

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

plt.legend()

plt.grid()

plt.show()