ИССЛЕДОВАНИЕ МОДЕЛИ ХИЩНИК-ЖЕРТВА ЛОТКИ-ВОЛЬТЕРРА С ПОМОЩЬЮ “MATLAB”. Пискунов К.А., Воронова Л.И. Российский государственный гуманитарный университет Москва, Pоссия INVESTIGATION OF LOTKA-VOLTERRA PREDATOR-PREY MODEL USING "MATLAB" SOFTWARE. Piskunov K.A., Voronova L.I. Russian State University for the Humanities Moscow, Russia В рамках дисциплины «Математическое моделирование», которая читается для бакалавров по направлению «Прикладная информатика» на четвертом курсе факультета информационных систем и безопасности РГГУ авторами разработана программа для одной из работ лабораторного практикума «Исследование модели хищник-жертва в пакете прикладных программ “Matlab”, Цель работы: при помощи пакета прикладных программ “Matlab” промоделировать модель хищник-жертва Лотки-Вольтерра. Постановка задачи: исследование влияния коэффициентов, отражающих взаимодействия между видами. Продемонстрировать на построенных графиках. Краткие теоретические сведения Рассмотрим сообщество, состоящее из двух видов, один из которых — хищник, другой — жертва. — численность жертвы. — численность хищника. Сформулируем основные положения модели: Два вида (хищник и жертва) существуют изолированно на ограниченной территории (другие виды не оказывают влияния на их численность). В отсутствие хищника жертва развивается по мальтусовскому закону роста. α— коэффициент прироста жертвы в отсутствие хищника; β – коэффициент убыли жертв при встрече с хищниками. Хищник питается только жертвой. В отсутствие жертвы он развивается по экспоненциальному закону гибели, при этом коэффициент убыли хищника — γ. Поедание жертвы хищником пропорционально численности жертвы (один хищник поедает в единицу времени количество жертв, пропорциональное численности жертв, а общее количество жертв, поедаемых в единицу времени будет пропорционально произведению численности жертв и численности хищников). δ – коэффициент, отображающий зависимость от частоты встреч хищников и жертв, заканчивающихся трапезой хищников. Тогда скорость изменения численности жертв описывается уравнением: . А изменение численности популяции хищников характеризуется следующим уравнением: . Составим систему уравнений (1), описывающую динамику численности: — классическая модель "хищник-жертва" (модель ЛоткаВольтерра). Получена задача Коши, в решении которой нам помогут специальные функции в “Matlab”. Теоретические сведения по “Matlab” Основные преимущества “Matlab”, выгодно выделяющие ее среди существующих ныне математических систем и пакетов (MathCad, Mathematica и др.), заключаются в следующем: система “Matlab” специально создана для проведения именно инженерных расчетов: математический аппарат, используемый ею, предельно приближен к современному математическому аппарату инженера и ученого и опирается на вычисления с матрицами, векторами и комплексными числами; графическое представление функциональных зависимостей здесь организовано в форме, требуемой именно инженерной документацией; язык программирования системы “Matlab” очень прост, посилен любому начинающему; он содержит всего несколько десятков операторов; незначительное количество операторов здесь компенсируется большим числом процедур и функций, смысл которых понятен пользователю с соответствующей математической и инженерной подготовкой; в отличие от большинства математических систем, “Matlab” является открытой системой; это означает, что практически все процедуры и функции “Matlab” доступны не только для использования, но и для коррекции и модификации; “Matlab” система, которую пользователь может расширять по своему усмотрению созданными им программами и процедурами (подпрограммами); ее легко приспособить к решению нужных классов задач; последние версии “Matlab” позволяют легко интегрировать ее с текстовым редактором Word, что дает возможность использовать при составлении текстовых документов вычислительные и графические средства “Matlab”. Опишем те функции и возможности “Matlab”, которыми воспользовались при реализации модели хищник-жертва Лотки-Вольтерра. Поскольку мы будем выполнять одну последовательность операций несколько раз и отличаться будут только значения коэффициентов,целесообразно создать файлфункцию(M-файл), а потом вызывать его при необходимости. M-файлы являются обычными текстовыми файлами, которые создаются с помощью текстового редактора. Для операционной среды персонального компьютера система MATLAB поддерживает специальный встроенный редактор/отладчик, хотя можно использовать и любой другой текстовый редактор с ASCII-кодами. Открыть редактор можно двумя способами: из меню File выбрать опцию New, а затем M-File. использовать команду редактирования edit. М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB. Также нам потребуется команда global. Она объявляет переменные глобальными и. следовательно, доступными в функции. Таким образом, они могут быть изменены из командной строки, а новые решения будут получены без редактирования М-файла. Для работы с глобальными переменными необходимо: объявить переменную как глобальную в каждой̆ М-функции, в которых необходима эта переменная. Для того чтобы переменная рабочей области была глобальной, необходимо объявить ее как глобальную из командной строки; в каждой функции использовать команду global перед первым появлением переменной; (рекомендуется указывать команду global в начале M-файла). Для изображения нескольких графиков на одном рисунке нам потребуется команда hold. Описание: Команда hold on включает режим сохранения текущего графика и свойств объекта axes, так что последующие команды приведут к добавлению новых графиков в графическом окне. Команда hold off выключает режим сохранения графика. Команда hold реализует переключение от одного режима к другому. Для решения система дифференциальных уравнений воспользуемся специальной встроенной функцией ode23: Синтаксис: [t, X] = ode23(‘<имя функции>‘, t0, tf, x0) Функция ode23 предназначена для численного интегрирования систем ОДУ. Она применима как для решения простых дифференциальных уравнений, так и для моделирования сложных динамических систем (что пригодится в нашем случае). Любая система нелинейных ОДУ может быть представлена как система дифференциальных уравнений 1-го порядка в явной форме Коши: dx/dt=f(x,t), где x - вектор состояния; t - время; f - нелинейная вектор-функция от переменных x, t. Функция [t, X] = ode23(‘<имя функции>‘, t0, tf, x0, tol, trace) интегрирует системы ОДУ, используя формулы Рунге - Кутты соответственно 2-го и 3-го или 4-го и 5-го порядка. Эта функция имеют следующие параметры: ‘<имя функции>‘ - строковая переменная, являющаяся именем М-файла, в котором вычисляются правые части системы ОДУ; t0 - начальное значение времени; tfinal - конечное значение времени; (можно задать интервалом); x0 - вектор начальных условий; Выходные параметры: t - текущее время; X - двумерный массив, где каждый столбец соответствует одной переменной. tol - задаваемая точность; по умолчанию для ode23 tol = 1.e-3, для ode45 tol = 1.e-6); trace - флаг, регулирующий вывод промежуточных результатов; по умолчанию равен нулю, что подавляет вывод промежуточных результатов; Ход выполнения работы Исследуем влияние начальных условий для модели хищник-жертва, описываемой уравнениями Лотке-Вольтерра: Создадим M-файл lotka.m: function yr = lotka(t, y) %LOTKA уравнения Лотки-Вольтерра для модели хищник-жертва global alpha beta gamma delta yr = [alpha*y(1) - beta*y(1)*y(2); -gamma*y(2) + delta*y(1)*y(2)]; Сохраним его в любой удобной для нас папке. При вызове файла он будет найден. global alpha beta gamma delta alpha = 4; beta = 2.5; gamma = 2; delta = 1 ; [t,y] = ode23('lotka',[0 30],[100;100]); plot(t,y) Задав начальные значения для коэффициентов и начальную численность (по 100 каждого вида), строится график на промежутке времени от 0до 30. Результат получен и приведен на рис.1. Ось ОУ – численность, ось ОХ – единицы времени. Рис. 1. Зависимость числа хищников (синяя линия) и жертв (зеленая линия) от времени. Теперь построим фазовый портрет при помощи следующего набора команд. >> global alpha beta gamma delta alpha = 0.04; beta = 0.025; gamma = 0.2; delta = 0.1 ; [t,y] = ode23('lotka',[0 10],[50;40],opt); hold on global alpha beta gamma delta alpha = 0.04; beta = 0.025; gamma = 0.2; delta = 0.1 ; [t,y] = ode23('lotka',[0 10],[50;45],opt); global alpha beta gamma delta alpha = 0.04; beta = 0.025; gamma = 0.2; delta = 0.1 ; [t,y] = ode23('lotka',[0 10],[50;48],opt); global alpha beta gamma delta alpha = 0.04; beta = 0.025; gamma = 0.2; delta = 0.1 ; [t,y] = ode23('lotka',[0 10],[50;50],opt); В результате получили график, показанный на Рис. 2. Рис. 2. Зависимость числа хищников от числа жертв при различных начальных условиях. Полученная зависимость согласуется с экспериментальными данными. Однако модель является неустойчивой: при скачкообразном изменении числа особей в одной из популяций (например, из-за миграции животных, деятельности человека или иных причин, не учтенных в модели) колебания навсегда изменят свой характер, система перейдет с одной фазовой траектории на другую. Кроме того, особая точка типа центр не является грубой, то есть при введении в модель даже малых поправок, она может изменить свой характер. Выводы В публикации представлена лабораторная работа по реализации модель «хищникжертва» (модель Лотки-Вольтерра) с различными параметрами в пакете прикладных программ MATLAB. Для получения наглядной демонстрации связи численности двух популяций, одна из которых охотится на другую, использованы графические возможности пакета Matlab. Кроме того, в ходе выполнения работы студенты изучают следующие возможности Matlab: объявление глобальных переменных, использование М-файлов (М-функций), построение нескольких графиков на одном рисунке. Список источников и литературы 1. 1. В.Н.Ашихмин, М.Б.Гитман и др.Введение в математическое моделирование: Учеб.пособие. – М.:Логос, 2005. – 440с. 2. Ю.Ю.Тарасевич Математическое и компьютерное моделирование Вводный курс: Учебное пособие. - М.: Едиториал УРРС, 2002. – 144с. 3. Дьяконов, В. П. MATLAB 7.*/R2006/R2007. ДМК Пресс, 2008. - 767 с 4. Кетков, Ю. Л. Matlab 7: программирование, численные методы. БХВ-Петербург, 2005. - 752 с.