Чтение онлайн

на главную - закладки

Жанры

Математические модели в естественнонаучном образовании
Шрифт:

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

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);

Поделиться:
Популярные книги

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Релокант. Вестник

Ascold Flow
2. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант. Вестник

Хозяйка поместья, или отвергнутая жена дракона

Рэйн Мона
2. Дом для дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Хозяйка поместья, или отвергнутая жена дракона

Аргумент барона Бронина 4

Ковальчук Олег Валентинович
4. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 4

Последний попаданец

Зубов Константин
1. Последний попаданец
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Последний попаданец

Метатель. Книга 2

Тарасов Ник
2. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 2

Имя нам Легион. Том 8

Дорничев Дмитрий
8. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 8

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Часограмма

Щерба Наталья Васильевна
5. Часодеи
Детские:
детская фантастика
9.43
рейтинг книги
Часограмма

Эволюционер из трущоб. Том 3

Панарин Антон
3. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
6.00
рейтинг книги
Эволюционер из трущоб. Том 3

Вамп

Парсиев Дмитрий
3. История одного эволюционера
Фантастика:
рпг
городское фэнтези
постапокалипсис
5.00
рейтинг книги
Вамп

Жизнь в подарок

Седой Василий
2. Калейдоскоп
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Жизнь в подарок

Гридень 2. Поиск пути

Гуров Валерий Александрович
2. Гридень
Детективы:
исторические детективы
5.00
рейтинг книги
Гридень 2. Поиск пути

Хозяйка усадьбы, или Графиня поневоле

Рамис Кира
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Хозяйка усадьбы, или Графиня поневоле