С распространением вируса Covid 19 эпидемиология стала все более популярной темой среди научных сообществ. В эпидемиологии жизненно важно понимать распространение инфекционного заболевания, такого как covid 19. Существует множество передовых математических моделей для прогнозирования и понимания распространения инфекционных заболеваний. Здесь давайте обсудим и реализуем простую математическую модель под названием «модель SIR», чтобы понять распространение болезни в начальной популяции. Идея этой статьи состоит в том, чтобы показать вам, как математика (в конечном счете исчисление) используется для понимания распространения болезней.

Введение в модель SIR

Когда дело доходит до моделирования эпидемии, эксперты обычно используют модели с разделением. Это общий метод математического моделирования при изучении таких вещей, как распространение инфекционных заболеваний. Модель SIR(модель Кермака и Маккендрика, 1927 г.) – это простая форма раздельной модели. Когда мы включаем начальные условия, такие как начальная популяция, частота контактов и т. д., в модель SIR, она возвращает поведение болезни с течением времени.

Модель

Представьте себе инфекционное заболевание, которое распространяется среди N людей в любой момент времени(t). Согласно модели SIR, человека можно разделить на 3 компартмента.

Восприимчивые: количество людей, которые не подвержены заболеванию
Зараженные: количество людей, подвергшихся воздействию болезни
Выздоровевшие: количество людей, которые выздоровели от болезни

Когда мы моделируем явления реального мира с помощью математических моделей, мы делаем различные предположения, основанные на конкретной модели. Модель SIR основана на следующих предположениях.

1.Вспышка непродолжительна, поэтому исходная популяция остается постоянной.
2. Скорость увеличения числа заразных лиц пропорциональна контакту между восприимчивыми и заразными (с постоянной скоростью).
3.Выздоровление ставка постоянна.

Итак, как я уже говорил, эта модель может вычислять количество инфицированных людей с инфекционным заболеванием в постоянной исходной популяции с течением времени(t). Для этого в модели SIR используется набор зависящих от времени нелинейных дифференциальных уравнений.

Эти очень красивые уравнения (рис. 1.0) дают нам скорость изменения между числом восприимчивых людей S(t) и числом инфицированных людей R(t) и количество выздоровевших I(t) в зависимости от времени(t) . Три уравнения имеют два параметра: βкоэффициент контакта и γ коэффициент извлечения. Теперь мы можем численно решить эти уравнения для любого набора входных данных (N, β, γ). S, I и R в качестве начальных условий модели.

Реализация модели SIR с помощью Python

Необходимые условия для разработчиков

Компьютер с хорошим интернет-соединением. Итак, теперь вы можете просмотреть множество руководств о том, как… как… делать вещи.

Вот так!

Давайте представим, что в популяции 1000 человек с одним инфицированным (I0=1). Если коэффициент контактов ( β )составляет 0,2 и коэффициент восстановления ( γ )это 1 человек на 10 дней. И первоначальные выздоровевшие (R0) человек составляют 0. Давайте посмотрим на распространение болезни в течение следующих 200 дней. Здесь мы предполагаем, что только вспышка продлится 200 дней.

Чтобы численно решить уравнения модели SIR при заданных начальных условиях, мы можем использовать язык программирования, такой как R или Python. Здесь давайте решим модель и построим график с помощью Python. Потому что решать эти уравнения вручную довольно хлопотно. Не так ли?

Давайте напишем код прямо в файле .py или даже вы можете использовать блокнот Jupiter.

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

Как только мы импортируем наши зависимости Python, давайте определим начальное состояние нашей модели. Исходная популяция N, Исходное количество инфицированных и выздоровевших составляет I0 и R0соответственно. А у восприимчивых к инфекции лиц изначально S0. Наконец, частота контактов (β) и средняя скорость восстановления (γ).Кроме того, давайте определим временные рамки вспышка с использованием сетки временных точек с использованием функции линейного пространства NumPy.

Теперь добавим дифференциальные уравнения. Для этого давайте определим функцию с именем deriv (вы можете указать любое имя), чтобы интегрировать уравнения для заданных параметров функции. Если вам нужно больше понять этот шаг, вы можете просто выполнить поиск на YouTube «Решение ODE с использованием python». Есть много хороших учебников.

Наконец, мы можем построить S(t), I(t) и Кривые R(t) с использованием библиотеки Python Matplotlib.

Мы можем изменить наши графики, чтобы сделать их более удобочитаемыми, используя значения по умолчанию библиотеки python Matplotlib. Посмотрите на фрагмент кода ниже.

Итог

Я надеюсь, что эта статья даст вам хорошее представление о математическом моделировании и даст вам представление о реальном применении исчисления и компьютерного программирования.

Спасибо!

использованная литература