Приклад 4. Моделювання системи “Хижак-здобич”
Розглянемо модель Лотка-Волътерра (Lotka-Volterra) або модель “Хижак–здобич” [3]. Нехай на певній території нестримно росте колонія шкідників сільського господарства. Одним із важливих заходів для боротьби зі шкідниками є завезення на цю територію хижаків, які поїдають шкідників. Потрібно визначити, скільки хижаків необхідно завезти, щоб знищити всіх шкідників.
Ця модель описується системою звичайних диференціальних рівнянь. Для моделювання роботи системи “Хижак-здобич” необхідно виділити неперервну й дискретну складові процесу моделювання.
Імітаційну модель “Хижак-здобич” формуємо із трьох секторів. У першому секторі моделюється неперервний процес. У цій частині представимо систему із двох диференціальних рівнянь першого порядку і початкові вихідні дані моделі.
У другому секторі моделюється дискретний процес моделі.
У третьому секторі представимо праву частину системи диференціальних рівнянь моделі за допомогою PLUS-процедур.
Перший сектор моделі:
Hyzhak INTEGRATE (Pryrist_hyzhak())
Zdobych INTEGRATE (Pryrist_zdobych())
Hyzhak EQU 50
Zdobych EQU 800
A_ EQU 0.3000;Коеф. народжуваності хижака.
B_ EQU 0.0100;Коеф. смерті хижака.
C_ EQU 0.0002;Ефективність нападу.
D_ EQU 0.0500;Коеф. народжуваності здобичі
Другий сектор моделі може бути представлений у такому вигляді:
GENERATE 2000
TERMINATE 1
Третій сектор моделі може бути представлений у такому вигляді:
PROCEDURE Pryrist_hyzhak() BEGIN
TEMPORARY Din_narodzhennja, Din_smerti, Din_pryrostu;
IF (Hyzhak < 0) THEN Hyzhak = 0;
IF (Hyzhak > 10e50) THEN Hyzhak = 10e50;
Din_narodzhennja = A_ # C_ # Hyzhak # Zdobych;
Din_smerti = B_ # Hyzhak;
Din_pryrostu = Din_narodzhennja - Din_smerti;
RETURN Din_pryrostu;
END;