Добавить в цитаты Настройки чтения

Страница 19 из 36

   p=h(k);

   p=eval (next_p);

   m=[m p];

end;

% начало построения нового графика с изображением функции модели и диагональной линии

figure;

hold on;

axis([plimits plimits]);

curve=plot(h,m,'Color','b');

diag=plot(h,h,'Color','g');

xlabel ('P_t');

ylabel ('P_{t+1}');

title (['следующее_p=',next_p] );

% создаём вектор фрагментов для ступенек

stephan=ones(1,2*s);

button=1;

% получаем начальное значение численности популяции от пользователя

disp(' ')

disp(' Щелкните левой кнопкой на начальном значении или правой, чтобы выйти.')

[p,x,button]=ginput(1);

%

while(button==1)

   %

   x=p;

   for i=1:s;                                  % цикл для начала создания паутины

      p=eval (next_p);

      stephan(2*i-1)=plot([x;x],[x;p],'k','EraseMode','background');

      pause(.1);

      stephan(2*i)=plot([x;p],[p;p],'k','EraseMode','background');

      pause(.1);

      x=p;

   end

   %

   for i=1:64;                                  % цикл удаления первого элемента

      p=eval(next_p);                           % вычисляем следующий член

      delete(stephan(1))                        % удаляем вертикальную линию

      stephan(1:2*s-1)=stephan(2:2*s);          %     и указатель на неё

      for k=1:2*s-1

         set(stephan(k),'EraseMode','background');% перерисовываем линии

      end;

      set(curve,'Color','b');                   % перерисовываем кривые





      set(diag,'Color','g');

      stephan(2*s)=plot([x;x],[x;p],'k','EraseMode','background');% добавляем линию

      pause(.1);

      delete(stephan(1))                        % стираем горизонтальную линию

      stephan(1:2*s-1)=stephan(2:2*s);          %      и указатель на неё

      for k=1:2*s-1

         set(stephan(k),'EraseMode','background');% перерисовываем линии

      end;

      set(curve,'Color','b');           % перерисовываем кривые

      set(diag,'Color','g');

      stephan(2*s)=plot([x;p],[p;p],'k','EraseMode','background');% добавляем линию

      x=p;                                      % сохраняем новую популяцию

      pause(.1);

   end

   % получаем начальную популяцию от пользователя

   disp(' ')

   disp('Щелкните левой кнопкой на начальной численности или правой, чтобы выйти.')

   [p,x,button]=ginput(1);

   if (button==1) delete(stephan); end;

   %

end

Является ли обнаруженная динамика популяции интуитивно ожидаемой?

г. Какие особенности этого уравнения кажутся нереалистичными? Как можно улучшить модель?

Проектные работы:

1. Исследуйте модель Рикера 1954 года  более детально.

Рекомендации

 Используйте калькулятор или компьютер для построения графика функции  от  для разных значений  и . Сравните результат с соответствующим графиком логистической модели. Какие обнаруживаются качественные сходства и различия между графиками?

 Найдите все точки равновесия модели.

 Используйте программу onepop.m в MATLAB из задачи 1.2.4 для исследования динамического поведения этой модели при  и различных . Обнаруживается ли стабильное равновесие? А 2-циклы? 4-циклы? Хаотичное поведение?

Используйте программу longterm.m в MATLAB из проектной работы 1.3.1 для создания диаграммы бифуркации этой модели по мере изменения .

2. Повторение из предыдущего проекта для модели , которая часто используется для моделирования популяций в живой природе. Для различных параметров можно сначала зафиксировать ,  и варьировать положительные значения . Затем зафиксируйте ,  и варьируйте  и так далее.

3. Интересная модель популяции елового почкового червя была предложена Людвигом с соавторами в 1978 году. Исследуйте её. Авторы модели использовали дифференциальное уравнение и предполагали логистический рост популяции почкового червя, но вводили дополнительный параметр для учета влияния хищных птиц на моделируемую численность. Формализовалось явление «хищничества» функцией  , где  обозначало количество почковых червей, а параметры  и  могли быть выбраны для изменения графика в соответствии с экспериментальными данными.

Рекомендации

 Изобразите график функции  и подумайте, чем можно объяснить наблюдаемое количество почковых червей, потребляемых хищными птицами при разных размерах популяции почковых червей. В частности, увеличивается ли численность популяции и стабилизируется ли, как должно быть, согласно интуитивному представлению? Как значения α и β влияют на форму графика?

 Изучите полную модель  с помощью MATLAB для различных значений параметров, но выбирайте  достаточно малым, чтобы избежать циклов или хаоса в логистической части модели. Найдите значения параметров, которые выглядят реалистичными.

 Что можно сказать об устойчивых состояниях данной модели и типе их стабильности?

1.5. Комментарии к дискретным и непрерывным моделям

В этой главе обсуждались модели, использующие разностные уравнения, которые построены на дискретных, конечных (в отличие от бесконечно малых) временных шагов. Альтернативой является использование дифференциальных уравнений, которые предполагают непрерывное «Omnia mutantur, nihil interit». Как разностные, так и дифференциальные уравнения широко используются для моделирования во всех науках, и во многих отношениях они имеют общую математическую теорию.

Дифференциальные уравнения иногда легче поддаются аналитическому решению, чем разностные уравнения. Например, логистическое дифференциальное уравнение на самом деле имеет явное решение, то есть формулу, дающую численность популяции в любой период времена, а не только в последующий. В докомпьютерную эпоху дифференциальные уравнения были основным выбором профессиональных математиков-моделистов, потому что можно было добиться большего прогресса в понимании таких моделей. Для определенных областей, таких как физиология, например, при моделировании кровотока через сердце, и в большей части физики, где вещи действительно постоянно меняются, эти инструменты по-прежнему являются единственно доступными.

Разностные уравнения более уместны в ситуациях, когда существуют естественные дискретные временные шаги. Примером может служить моделирование ежегодной численности абитуриентов и выпускников математических факультетов, которые, как правило, имеют довольно жесткие рамки специализации с четко определенными перспективами развития и продолжительностью обучения. Теперь, когда компьютеры стали доступны, разностные уравнения могут быть изучены с помощью численных экспериментов.