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

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

Рисунок 1.12. Две модели  с разными значениями параметров.

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

Задачи для самостоятельного решения:

1.4.1. Для дискретной популяционной модели относительный темп роста определяется как .

а. Заполните пропущенные места: начиная с некоторого значения , если относительный темп роста окажется больше 1, то популяция будет _________ в течение следующего временного интервала, тогда как если он будет меньше 1, то популяция _________.

б. Какой смысл имеет относительный темп роста равный нулю? А отрицательный?

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

г. Постройте график каждой из относительных скоростей роста, которые выведите в части (в) как функции от . Возможно, придется задать несколько конкретных значений параметров, чтобы нарисовать графики.

1.4.2. На графиках (б), (в) и (г) из задачи 1.2.9 раздела 1.2 видно, что  , когда  достаточно мало. Объясните влияние этой особенности на динамику популяции. Почему это может оказаться важным с прикладной точки зрения? Обнаруженный эффект иногда называют эффектом Алле.

1.4.3. Постройте простую модель, показывающую эффект Аллее в следующих вариантах.

а. Объясните, что для некоторых параметров , средняя скорость роста , когда  или , и , когда . Изобразите возможный график зависимости   от .

б. Объясните, почему  имеет нужные характеристики.

в. Исследуйте полученную модель, используя программы onepop.m из задачи 1.2.4, cobweb.m и cobweb2.m в MATLAB для некоторых вариантов значений  и .

% cobweb.m

%

% Паутинная диаграмма для моделирования одной популяции разностным уравнением.

%

% У пользователя запрашивается уравнение, определяющее модель. Затем по

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

% «паутина» будущих численностей популяции.

%

p=0;                                              % инициализация популяции

%

disp (' Введите формулу, определяющую модель популяции, используя "p" для')

disp ('обозначения численности:  (Например: next_p = p+1.8*p*(1-p/10) )')

next_p=input ('next_p = ','s');

if isempty(next_p) next_p='p+1.8*p*(1-p/10)'; end;

eval( [next_p ';']);                              % проверяемая формула

%

disp (' ');

disp (' Введите верхний и нижний пределы значения численности в момент времени t,')

disp ('чтобы задать границы изображения на графике:')

limits=input('(По умолчанию [pmin pmax]=[0 20])      [pmin pmax]= ');

if isempty(limits) limits=[0 20]; end;

pinc=(limits(2)-limits(1))/50;

x=limits(1):pinc:limits(2);

%

p=limits(1); y=eval (next_p);

for i=x(2):pinc:limits(2);                 % цикл для создания вектора значений P

   p=i;

   p=eval (next_p);

   y=[y p];

end;

%

figure                                     % настройка графика

plot(x,y,x,x)

axis([limits(1),limits(2),limits(1),limits(2)]);

xlabel ('P_t');

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

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

%

continueb=1;                               % логическое значение продолжения цикла

while continueb                            % цикл пока кнопку не нажали

   [p,q,button]=ginput(1);                 % получить начальную численность

   if button==1





      %

      plot (x,y,x,x);                      % построение графика

      axis([limits(1),limits(2),limits(1),limits(2)]);

      hold on

      xlabel ('P_t');

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

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

      %

      for i=1:50;                             % цикл построения секций паутины

         w=p;

         p=eval (next_p);

         plot([w,w],[w,p],'k','EraseMode','none');   % рисуем вертикальный фрагмент

         pause(.1);

         if p<0; break; end;                 % фильтрация отрицательных значений P

         plot([w,p],[p,p],'k','EraseMode','none');   % рисуем горизонтальный фрагмент

         pause(.1);

      end;

      hold off;

   else continueb=0;                          % конец цикла

   end

end

%

% cobweb2.m

%

% Паутинная диаграмма для моделирования одной популяции разностным уравнением.

%

% У пользователя запрашивается уравнение, определяющее модель. Затем по

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

% «паутина» будущих численностей популяции. Старые линии постепенно стираются

% с течением времени.

%

m=[];

s=16;                                      % количество линий для рисования

p=0;                                       % инициализируем начальное значение

%                                          % численности популяции

disp (' ')

disp (' Введите формулу, определяющую модель популяции, используя "p" для')

disp ('обозначения численности: (По умолчанию:  next_p = p+2.5*p*(1-p/10) ) ')

next_p=input ('next_p = ','s');

if isempty(next_p) next_p='p+2.5*p*(1-p/10)';

end;

p=eval (next_p);                           % проверяем корректна ли формула

%

disp (' ')

disp ('Введите верхний и нижний пределы P в момент времени t, чтобы задать')

disp ('границы изображения графика:')

plimits=input ('(По умолчанию [pmin pmax]=[0 20])      [pmin pmax]= ');

if isempty(plimits) plimits=[0 20]; end;

%

% Формируем данные для построения модели

pinc=(plimits(2)-plimits(1))/20;            % устанавливает интервал между

%                                           %         соседними значениями

h=[plimits(1):pinc:plimits(2)];

for k=1:21;                                 % цикл создания вектора значений