Рисунок 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; % цикл создания вектора значений