Математические модели в естественнонаучном образовании. Том I - страница 12



% при нажатии клавиши 'd' числовые данные отобразятся в командное окно MATLAB.

%

p=0;                          % инициализация переменной популяции для формулы

%

disp(' ')

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

disp('численность популяции: (Например: следующее_p = p+.8*p*(1-p/10) )')

next_p=input ('следующее_p = ','s');

%

p=eval(next_p);               % тестируемая формула

%

disp(' ')

disp(' Введите диапазон популяции, который будет отображаться на графике:');

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

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

%

disp(' ')

n=input(' Введите количество шагов для итерации: (по умолчанию n = 20) ');

if isempty(n) n=20; end;

%

disp(' ')

disp(' Наведите курсор на график, чтобы выбрать начальную популяцию и')

disp('кликните для рисования. Нажмите `d'', чтобы отобразить значения популяции')

disp('в командном окне. Нажмите любую другую клавишу, чтобы выйти.')

disp('  ')

disp(' Нажмите любую клавишу, чтобы начать.')

pause

%

figure;                         % настроить отображение нового графика

axis([ [0 n] limits]); grid on;

xlabel('Время');ylabel('Популяция P');

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

hold on;                        % сохранение линий на графике при добавлении новых

%

times=[0:n];                    % генерировать вектор времени для построения графика

%

newcontinue=1;

while newcontinue               % цикл, пока не будет нажата не левая кнопка

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

   if button==1

      pops=p;

      for i=1:n                 % построить вектор итерационных значений популяции

         p=eval(next_p);

         pops=[pops,p];

      end

      plot(times,pops);         % график зависимости численности популяции от времени

   else

      newcontinue=0;            % флаг выхода из цикла

      if button==100

         [times;pops]'          % отобразить время и численность в командном окне

         newcontinue=1;           % повторить цикл снова после отображения значений

                                % если пользователь нажимает `d' для отображения

      end

   end

end

%

hold off                        % возвращает режим автоматической очистки графика


1.2.5. Наиболее распространенными способами записи уравнения дискретного логистического роста являются:

,
,
,
.

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

а.

б.

1.2.6. Дано уравнение модели

а. Постройте график функции

 от
 с использованием MATLAB путем ввода команды:

x=[0:.1:12]

y=.8*x.*(1-x/10)

plot(x,y)


б. Постройте график функции

 от  путем изменения команд MATLAB из части (а).

в. Вычислите значения  для

 при . Затем на графике из части (б) постройте паутину, начинающуюся с
. Можно добавить линию
 на графике, введя команды

hold on, plot(x,y,x,x)


Полученная паутинная диаграмма достаточно точно соответствует таблице значений?

1.2.7. Если бы данные в таблице 1.6 о численности популяции были собраны в ходе лабораторного эксперимента, описывались бы они хотя бы приблизительно логистической моделью? Объясните почему. Если данные описываются логистической моделью, то можете ли оценить

 и
 в модели
?

Таблица 1.6. Значения численности популяции



0 1             2             3             4             5             6             7             8             9             10



           1,94       3,04       4,62       6,72       9,26       11,88     14,08     15,52     16,26     16,60     16,72