Добавил:
koba004
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ИДЗ / VirusInfModel
.pyimport 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**6 # Общее население
beta = 5 # Скорость передачи инфекции
gamma = 0.1 # Скорость выздоровления
mu = 0.02 # Скорость летального исхода
# Начальные условия
I0 = 1 # Зараженные
S0 = N - I0 # Восприимчивые
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()
Соседние файлы в папке ИДЗ
