Моделирование распространения эпидемии - GPSS

Постановка задачи. В микрорайоне, население которого 60000 человек, возникла эпидемия и появилось 90 инфекционных больных. Пусть прирост больных за день пропорционален произведению числа здоровых, еще не переболевших и не приобретших иммунитет людей, на число больных. Коэффициент пропорциональности К (коэффициент распространения инфекции) включает разного рода профилактические мероприятия.

Задание:

1. Создать модель развития эпидемии.
2. Построить график, в котором по оси абсцисс откладывается время моделирования системы, а по оси ординат – число здоровых и больных в каждый момент времени. Проанализировать полученные графические данные и определить максимальное число больных. Определить время, когда число больных будет максимальным.
3. Проанализировать, как изменится ситуация, если довести коэффициент распространения эпидемии, например, до 0,00003, проведя профилактические мероприятия.

Указания к решению задачи

1. Выявление основных особенностей. Процесс развития эпидемии представим в виде двух дифференциальных уравнений:
X_'=X*(K*Y_-1);
Y_'=-K*X_*Y_, где X – больные, Y – здоровые.
Знак подчеркивания следует вставлять всегда, чтобы введенные обозначения не совпали со СЧА, встроенными в систему. При моделировании выделим две части процесса: непрерывный и дискретный. В качестве единицы измерения времени выберем день.

Создание и представление имитационной модели процесса.

Модель будет состоять из трех секторов. Первый сектор содержит часть процесса моделируемую как непрерывный процесс. Здесь вводится система дифференциальных уравнений (ДУ) и начальные данные. Второй сектор содержит часть процесса моделируемую как дискретный процесс. Третий сектор будет содержать правую часть системы дифференциальных уравнений, представленную с помощью внешних процедур встроенного в систему языка программирования PLUS.

Программа модели:
X_ INTEGRATE (BOLNOI()) ;динамика роста числа больных
Y_ INTEGRATE (ZDOROV()) ;динамика уменьшения числа здоровых
K_ EQU 0.0001 ;коэффициент распространения эпидемии
Y_ EQU 60000 ;начальное число здоровых
X_ EQU 90 ;начальное число больных
*********************************************
 GENERATE 30 ;моделирование в течение 30 дней
 TERMINATE 1
*********************************************
PROCEDURE BOLNOI() BEGIN 
 TEMPORARY A_;
 IF (X_<0) THEN X_ = 0;
 IF (X_>10E50) THEN X_ = 10E50;
 A_=X_#(K_#Y_-1);
 RETURN A_;
END;
PROCEDURE ZDOROV() BEGIN 
 TEMPORARY B_;
 IF (Y_<0) THEN Y_ = 0;
 IF (Y_>10E50) THEN Y_ = 10E50;
 B_=(0-K_)#X_#Y_;
 RETURN B_;
END;
2. Далее необходимо оттранслировать модель и представить результаты решения системы ДУ в графическом виде. Для этого введите информацию в окно Edit Plot Window как показано на рисунке:

Edit Plot Window


Сначала вводится информация о первом графике. Перемещение между полями осуществляется с помощью кнопки Tab. Щелкните по кнопкам Plot и Memorize. Затем заполните поля Label и Expression информацией для второго графика и щелкните по кнопкам Plot и Memorize. После нажатия кнопки OK появится окно PLOTS с заготовкой графика. Используя полосы прокрутки, установите начало отсчета по осям на нулевую отметку.

Запустите систему на моделирование. Начнется решение системы ДУ методом Рунге – Кутта пятого порядка и появится окно с графиком.

Анализируя графические данные, получим, что число больных достигнет максимума через два дня и составит около 32500 человек.

3. Самостоятельно изменить начальные параметры и построить график модели. Сравнить полученные результаты с первым случаем.
Онлайн всего: 4
Гостей: 4
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте