Полная версия научной работы 177 КБ

advertisement
ИССЛЕДОВАНИЕ МОДЕЛИ ХИЩНИК-ЖЕРТВА ЛОТКИ-ВОЛЬТЕРРА С ПОМОЩЬЮ
“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 с.
Download