MB lab 4

zad 1

  1. Zbudować czytelny model Lotki-Volttery używając pakietu Simulink. Każdą z linii sygnałowych oraz każdy blok opisać stosując oznaczenia występujące w równaniach zawartych we wprowadzeniu. Proszę nie używać bloków tworzących podsystemy. W celu mnożenia sygnałów użyć bloku ‘Product’ z grupy Math Operations.

Część dotycząca rozwiązań czasowych:

  1. Wprowadzić zadane parametry modelu r, a, b, s dla podanych warunków początkowych P0,V0. Przeprowadzić symulację dla zadanego czasu tÎ[0,Tmax], wykreślić przebiegi czasowe dla P i V na jednym wykresie dla podanego zestawu warunków początkowych.

  2. Stosując te same parametry co powyżej wyznaczyć numerycznie rozwiązania czasowe dla modelu Lotki-Volterry oraz sporządzić ich wykresy (zastosować funkcj_ę ode45). Porównać wykresy z zad. 2 i 3.

Część dotycząca portretu fazowego:

  1. Wykreślić portret fazowy na płaszczyźnie (V,P) dla wszystkich zestawów warunków początkowych (łącznie 10 trajektorii, zastosować blok ‘XYGraph’ lub wyeksportować dane do przestrzeni roboczej Matlaba i tam stworzyć wykres, model Simulinka można uruchamiać z poziomu skryptu za pomocą komendy sim nazwa_modelu).

  2. Wyznaczyć analitycznie rozwiązania stacjonarne modelu i znaleźć ich wartości na portrecie fazowym.

  3. Rozwiązując całkę pierwszą znaleźć równanie określające powierzchnię stanów f(V,P). Sporządzić wykres tej powierzchni oraz jej poziomice określające konkretne trajektorie fazowe (pomocne funkcje meshgrid oraz contour). Porównać portrety fazowe otrzymane w zad. 4 i 6.

function dy = LotkaVolterra(t, y)

global a b r s

dy=zeros(2,1);

% y(1) <-> V

% y(2) <-> P

dy(1) = r*y(1) - a*y(1)*y(2); % ofiara dV/dt

dy(2) = b*y(1)*y(2) - s*y(2); % drapieżca dP/dt

function dy = LotkaVolterra(t, y, a, b, r, s)

dy=zeros(2,1);

% y(1) <-> V

% y(2) <-> P

dy(1) = r*y(1) - a*y(1)*y(2); % ofiara dV/dt

dy(2) = b*y(1)*y(2) - s*y(2); % drapieżca dP/dt

close all;clear all;

t_max = 200;

colours = 'rgbcymkbrg';

global a b r s

a = 0.005;

b = 0.001;

r = 0.1;

s = 0.1;

P_0 = 20;

V_0 = 45;

i = 1; % przebiegi czasowe rysujemy tylko dla jednej wartości V_0

sim lab_4_zad_1_model;

figure(1);

plot(tout, V, 'g', tout, P, 'r');

xlabel('czas'); ylabel('ilosc zwierzatek');

legend('ofiary', 'drapiezniki');

title('wykres z simulinka');

[t, y] = ode45(@LotkaVolterra, [0, t_max], [V_0, P_0]);

figure(2);

plot(t, y(:, 1), 'g', t, y(:, 2), 'r');

xlabel('czas'); ylabel('ilosc zwierzatek');

legend('ofiary', 'drapiezniki');

title('wykres na podstawie obliczen funkcja ode45');

V_0 = 5:10:100; % wektor wartości V_0 do rysowania portretów fazowych

figure(3);

hold on

for i = 1:length(V_0)

sim lab_4_zad_1_model;

plot(V, P, colours(i));

end;

xlabel('V'); ylabel('P');

title('Portrety fazowe na podstawie simulinka');

hold off

[V, P] = meshgrid(1:500, 1:100);

C = b*V + a*P - s*log(V) - r*log(P);

figure(4);

contour(C);

title('Portrety fazowe na podstawie pierwszej calki');

zad 2.

  1. Zbudować czytelny model drapieżnik-ofiara z ograniczoną pojemnością środowiska dla ofiar w Simulinku.

  2. Przeanalizować zachowanie modelu dla różnych wartości parametru K.

  3. Wyznaczyć analitycznie punkty równowagi modelu oraz wartość K, dla której układ zmienia swoją dynamikę.

  4. Sporządzić wykresy fazowe i przebiegi czasowe liczebności populacji dla różnych wartości K – jakie tendencje zachowaniu modelu zauważyłaś/eś?

function dy = LotkaVolterrazK(t, y, a, b, r, s, K)

dy=zeros(2,1);

% y(1) <-> V

% y(2) <-> P

dy(1) = r*y(1) - (r*y(1)*y(1))/K - a*y(1)*y(2); % ofiara dV/dt

dy(2) = b*y(1)*y(2) - s*y(2); % drapieżca dP/dt

close all;clear all;

t_max = 200;

K = [30, 100, 300];

colours = 'rgbcymkbrg'

a = 0.005;

b = 0.001;

r = 0.1;

s = 0.1;

P_0 = 20;

V_0 = 45;

for i = 1:3

sim lab_4_zad_2_model;

figure(1);

plot(tout, V, 'g', tout, P, 'r');

xlabel('czas'); ylabel('ilosc zwierzatek');

legend('ofiary', 'drapiezniki');

title('wykres z simulinka');

[t, y] = ode45(@LotkaVolterrazK, [0, t_max], [V_0, P_0], [], a, b, r, s, K(i));

figure(2);

plot(t, y(:, 1), 'g', t, y(:, 2), 'r');

xlabel('czas'); ylabel('ilosc zwierzatek');

legend('ofiary', 'drapiezniki');

title('wykres na podstawie obliczen funkcja ode45');

end;


Wyszukiwarka

Podobne podstrony:
MB (Lab) Sprawozdanie 05
MB (Lab) - Różne ściągi, badania, SPRwygląduZEW:rozwinięcieRolkiPapy,określenieRównościOrazStanuKraw
MB (Lab) - Różne ściągi, 3,4
MB (Lab), Sprawozdanie 08
MB (Lab) Sprawozdanie 04
MB (Lab) Instrukcja nr 06
MB (Lab), Instrukcja nr 06
MB (Lab), Sprawozdanie 04
MB (Lab) - Różne ściągi, 5
MB (Lab) - Różne ściągi, wszystko, 1
MB (Lab) Instrukcja nr 07
chomik mb lab 2, matematyczne modelowanie procesów biotechnologicznych, Lista 3 Równania różniczkowe
MB (Lab) - Różne ściągi, Papa, BudowaPapy-składaSięZosnowy(materiałNośny)nasączonejIpowleczonejMater
MB (Lab) - Różne ściągi, Ceramika budowlana ćw.5, Ceramika budowlana - wyroby uformwane z glin albo
MB (Lab) - Różne ściągi, liczby, Gęstość/obj:BetonZwykły2,8(2,0-2,2) Cement3,05-3,15(1,1-1,2) Cerami
MB (Lab) - Różne ściągi, drewno, Drewno-substLignocelulozoweZawarteMiędzyRdzeniemIkorąDrzewa Tarcica
MB (Lab) Rozne sciagi papa
MB-lab-2010, mechanika budowli
MB (Lab), Sprawozdanie 02

więcej podobnych podstron