Bijlage 2. Het MATLAB Programma.

echo off
% Met dit scriptje worden de functies benaderd die voldoen aan:
% du/dt(t)=a*(b(t)-u(t))*u(t)-u(t)*v(t)
% dv/dt(t)=c*(u(t)-d)*v(t)
% u(0)=u0
% v(0)=v0
% Dit zal gebeuren met de Euler-Forward methode.
% Tevens zal de nauwkeurigheid van de benadering worden berekend in een bepaalt punt.
clear a b c d h n t u v;

% Vastleggen van de waarde van de parameters:
h(1)=0.01;
n(1)=5200;
a=0.01;
b=1000;
c=0.0038;
d=100;
u(1)=250;
v(1)=5;
t(1)=0;
moment=input('Op welk moment wilt u de nauwkeurigheid weten?? ');


% Dit stukje heb ik gebruikt om een tijdsafhankelijk maximum te gebruiken.
% Het is een simpele sinusoide, waaruit volgt dat er in de winter minder konijnen
% kunnen leven dan in de winter. (als t in weken is).
% for j=1:n+1,
% b(j)=900+100*sin((pi/26)*(j+12));
% end;



h(2)=h(1)/2;
h(3)=h(2)/2;
n(2)=n(1)*2;
n(3)=n(2)*2;

for i=1:1:3,
for j=2:1:n(i)+1,
t(j)=t(j-1)+h(i);
v(j)=v(j-1)+h(i)*c*(u(j-1)-d)*v(j-1);
u(j)=u(j-1)+h(i)*(a*(b-u(j-1))*u(j-1)-u(j-1)*v(j-1));
end;
u_nauw(i)=u(round(moment*n(i)+1));
v_nauw(i)=v(round(moment*n(i)+1));
end;


a=log((u_nauw(2)-u_nauw(1))/(u_nauw(3)-u_nauw(2)))/log(2);
b=log((v_nauw(2)-v_nauw(1))/(v_nauw(3)-v_nauw(2)))/log(2);
Z=(u_nauw(3)-u_nauw(2))/(h(2)^a*(1/2)^a);
Y=(v_nauw(3)-v_nauw(2))/(h(2)^b*(1/2)^b);


% berekening van de nauwkeurigheid.

for i=1:3,
nauwkeurig_u(i)=Z*h(i)^a;
nauwkeurig_v(i)=Y*h(i)^b;
end;
nauwkeurig_u
nauwkeurig_v

% Het plotten van twee figuren.

figure;
plot(t,10*v,'y');
hold on;
plot(t,u,'m');
xlabel('t -->');
ylabel('u,v -->');

figure;
plot(u,v,'b');
xlabel('u -->');
ylabel('v -->');

% einde programma.


Terug  Bovenkant  volgende