ИССЛЕДОВАНИЕ МОДЕЛИ ХИЩНИК-ЖЕРТВА ЛОТКИ-ВОЛЬТЕРРА С ПОМОЩЬЮ “MATLAB”. - Студенческий научный форум

VII Международная студенческая научная конференция Студенческий научный форум - 2015

ИССЛЕДОВАНИЕ МОДЕЛИ ХИЩНИК-ЖЕРТВА ЛОТКИ-ВОЛЬТЕРРА С ПОМОЩЬЮ “MATLAB”.

Пискунов К.А. 1, Воронова Л.И. 1
1Российский Государственный Гуманитарный Университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В рамках дисциплины «Математическое моделирование», которая читается для бакалавров по направлению «Прикладная информатика» на четвертом курсе факультета информационных систем и безопасности РГГУ авторами разработана программа для одной из работ лабораторного практикума «Исследование модели хищник-жертва в пакете прикладных программ “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 с.

Просмотров работы: 7626