Sprawozdanie-lab4, Lab 4 Model Lotki-Volterry


Sprawozdanie

Laboratorium nr 4

Model Lotki-Volterry

Zadanie 1:

0x01 graphic

clear all;

close all;

%Parametry:

a = 0.05;

r = 1;

b = 1;

s = 8;

%Warunki początkowe:

P_0 = 20;

V_0 = 30;

t_max = 15;

sim model1;

figure(1)

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

title('Przebieg czasowy - model z simulinka');

legend('Ofiary','Drapiezniki');

xlabel('czas');

ylabel('liczebnosc');

0x01 graphic

Zad 1.3.

function dy = LotkaVolterra(t,y)

global a b r s ;

dy = zeros (2,1);

%y(1) --> V (ofiary)

%y(2) --> P (drapiezniki)

dy(1) = r*y(1) - a*y(1)*y(2);

dy(2) = a*b*y(1)*y(2) - s*y(2);

end

clear all;

close all;

global a b r s;

%Parametry:

a = 0.05;

r = 1;

b = 1;

s = 8;

%Warunki początkowe:

P_0 = 20;

V_0 = 30;

t_max = 15;

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

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

title('Przebieg czasowy - funkcja ode45');

legend('Ofiary','Drapiezniki');

xlabel('czas');

ylabel('liczebnosc');

0x01 graphic

Zad 1.4

clear all;

close all;

%Parametry:

a = 0.05;

r = 1;

b = 1;

s = 8;

P_0 = [10:20:200];

V_0 = 160;

t_max = 15;

figure(1)

for i = 1:length(V_0)

sim model1;

plot (V, P);

end;

title('Portret fazowy - Simulink');

xlabel('ofiary');

ylabel('drapiezniki');

0x01 graphic
clear all;

close all;

%Parametry:

a = 0.05;

r = 1;

b = 1;

s = 8;

P_0 = [10:20:200];

V_0 = 160;

t_max = 15;

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

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

contour(C);

title('Porter fazowy - pierwsza całka');

0x01 graphic

Zadanie 2:

0x01 graphic

0x01 graphic

0x01 graphic

clear all;

close all;

%Parametry:

a = 0.002;

r = 0.2;

b = 2.5;

s = 0.4;

%Warunki początkowe:

P_0 = 50;

V_0 = 100;

K = [50, 100, 300];

for i = 1:3

sim model2;

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

title('wykres - model z simulinka');

legend('Ofiary','Drapiezniki');

xlabel('czas');

ylabel('liczebnosc');

end;

0x01 graphic

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

global a b r s K(i) ;

dy = zeros (2,1);

%y(1) --> V (ofiary)

%y(2) --> P (drapiezniki)

dy(1) = r*y(1)*(1-y(1)/K) - a*b*y(1)*y(2);

dy(2) = -s*y(2) + a*y(1)*y(2);

end

[t, y] = ode45(@LotkaVolterra2, [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');



Wyszukiwarka