Скачать книгу

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

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

      Рассмотрим пример кода на 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) с течением времени.

      – График для подверженных инфекции

Скачать книгу