Untitled

 avatar
unknown
plain_text
a month ago
1.7 kB
1
Indexable
%ESERCIZIO 2
%LOTKA-VOLTERRA
alfa=0.05; %[1/giorno]
beta=0.00114; %[1/gatto/giorno]
gamma=0.000001; %[1/ratto/giorno]
%(1-G/70) limite della popolazione di gatti che il territorio può sostenere 
%delta è il tasso di mortalità dei gatti
delta0=0.001; %[1/giorno]
deltafin=0.015; %[1/giorno] (dopo l'irrorazione con insetticida)
%calcola numero di gatti G e di topi T



T0=1000;
G0=100;
y0=[T0,G0];
tspan=[0 7300];
[t,y]=ode45(@lotka_volterra, tspan, y0);

figure(1)
plot(t,y(:,1), '-b');
hold on;
xlabel('tempo in giorni');
ylabel('topi');
title('numero di topi nel tempo');
grid on; 

figure(2)
plot(t,y(:,2), '-r');
hold on;
xlabel('tempo in giorni');
ylabel('gatti');
title('numero di gatti nel tempo');
grid on;

T=y(1);
G=y(2);
fun=@(y) [alfa*y(1)-beta*y(1)*y(2);
    gamma*(1-y(2)/70)*y(1)*y(2)-delta0*y(2)];
y0_finale=y(end,:);
sol=fsolve(fun, y0_finale);
T=sol(1);
G=sol(2);
fprintf('soluzione stazionaria topi= %.0f \n', T);
fprintf('soluzione stazionaria gatti= %.0f \n', G);

T02=2569;
G02=44;
y02=[T02,G02];
tspan2=[0 90];
[t,y]=ode45(@lotka_volterra2, tspan2, y02);
T90=round(y(end,1));
fprintf('soluzione stazionaria topi a 90 giorni= %.0f \n', T90);


function dydt=lotka_volterra(t,y)
alfa=0.05; %[1/giorno]
beta=0.00114; %[1/gatto/giorno]
gamma=0.000001; %[1/ratto/giorno]
delta0=0.001;
T=y(1);
G=y(2);
dTdt=alfa*T-beta*T*G;
dGdt=gamma*(1-G/70)*T*G-delta0*G;
dydt=[dTdt; dGdt];
end

function dydt=lotka_volterra2(t,y)
alfa=0.05; %[1/giorno]
beta=0.00114; %[1/gatto/giorno]
gamma=0.000001; %[1/ratto/giorno]
deltafin=0.015;
T=y(1);
G=y(2);
dTdt=alfa*T-beta*T*G;
dGdt=gamma*(1-G/70)*T*G-deltafin*G;
dydt=[dTdt; dGdt];
end



Leave a Comment