Искусственный интеллект в прикладных науках. Медицина - стр. 19
```python
import numpy as np
import matplotlib.pyplot as plt
def seirs_model(beta, sigma, gamma, delta, susceptible, exposed, infectious, recovered, days):
N = susceptible + exposed + infectious + recovered
S = [susceptible]
E = [exposed]
I = [infectious]
R = [recovered]
for _ in range(days):
new_exposed = beta * S[-1] * I[-1] / N
new_infectious = sigma * E[-1]
new_recovered = gamma * I[-1]
new_susceptible = delta * R[-1]
susceptible -= new_exposed
exposed += new_exposed – new_infectious
infectious += new_infectious – new_recovered
recovered += new_recovered – new_susceptible
S.append(susceptible)
E.append(exposed)
I.append(infectious)
R.append(recovered)
return S, E, I, R
# Параметры модели
beta = 0.3 # Скорость инфекции
sigma = 0.2 # Скорость инкубационного периода
gamma = 0.1 # Скорость выздоровления
delta = 0.05 # Скорость временного иммунитета
susceptible = 990
exposed = 10
infectious = 0
recovered = 0
days = 160
# Запуск модели
S, E, I, R = seirs_model(beta, sigma, gamma, delta, susceptible, exposed, infectious, recovered, days)
# Визуализация результатов
plt.figure(figsize=(10, 6))
plt.plot(S, label='Susceptible')
plt.plot(E, label='Exposed')
plt.plot(I, label='Infectious')
plt.plot(R, label='Recovered')
plt.xlabel('Days')
plt.ylabel('Population')
plt.title('SEIRS Model')
plt.legend()
plt.grid(True)
plt.show()
```
Этот код создает функцию `seirs_model`, которая моделирует SEIRS-модель в течение определенного количества дней. Затем задаются параметры модели и вызывается функция `seirs_model` с этими параметрами. Результаты моделирования визуализируются с помощью библиотеки `matplotlib`.
На графике, полученном в результате выполнения этого кода, можно увидеть изменение численности каждой категории популяции (подверженные инфекции, инфицированные, выздоровевшие) в течение времени (в днях).
– "Susceptible" (подверженные инфекции) показывает, как меняется количество людей, которые могут быть инфицированы.
– "Exposed" (инфицированные, но еще не заразные) показывает количество людей, которые уже заразились, но еще не стали инфекциозными.
– "Infectious" (инфициозные) отображает количество людей, которые являются инфекциозными и могут передавать болезнь.
– "Recovered" (выздоровевшие) показывает количество людей, которые уже выздоровели от болезни и временно имеют иммунитет.
График позволяет визуализировать динамику эпидемии: как изменяется число подверженных инфекции, инфицированных, выздоровевших с течением времени в моделируемой популяции.
4. SIS-модель – это математическая модель, которая описывает динамику распространения инфекционных заболеваний в популяции, учитывая только переход между инфицированными и восприимчивыми состояниями, без учета выздоровления или приобретения иммунитета. В этой модели популяция делится на две основные категории: инфицированные (Infected) и восприимчивые (Susceptible).
Основное предположение SIS-модели состоит в том, что после инфицирования человек остается восприимчивым к заболеванию снова, после того как вылечится или станет носителем болезни. Это означает, что в модели нет категории выздоровевших или имеющих иммунитет.
Математически SIS-модель описывается системой дифференциальных уравнений, которые описывают скорость изменения численности инфицированных и восприимчивых во времени, учитывая параметры, такие как скорость заражения и скорость выздоровления. Эта модель может быть использована для прогнозирования динамики эпидемии, определения оптимальных стратегий контроля и оценки эффективности мер по борьбе с распространением инфекционных заболеваний.