Моделирование распространения эпидемии - GPSS
Задание:
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 как показано на рисунке:
Сначала вводится информация о первом графике. Перемещение между полями осуществляется с помощью кнопки Tab. Щелкните по кнопкам Plot и Memorize. Затем заполните поля Label и Expression информацией для второго графика и щелкните по кнопкам Plot и Memorize. После нажатия кнопки OK появится окно PLOTS с заготовкой графика. Используя полосы прокрутки, установите начало отсчета по осям на нулевую отметку.
Запустите систему на моделирование. Начнется решение системы ДУ методом Рунге – Кутта пятого порядка и появится окно с графиком.
Анализируя графические данные, получим, что число больных достигнет максимума через два дня и составит около 32500 человек.
3. Самостоятельно изменить начальные параметры и построить график модели. Сравнить полученные результаты с первым случаем.