function [yloppu,ylode45] = Delfiinitfinaali(N)
% Aiolian delfiinien viimeinen taisto
% Kutsu: [yloppuE,yloppuO45]=Delfiinitfinaali(N)
% in: N  -  Osavälien lkm. Eulerin menetelmässä.
%           ode45 valitsee itse
% out: yloppu  - delfiinien lkm.  Eulerilla
%      ylode45 - delfiinien lkm. ode45:llä
% Kutsuesim:  [ye,yo]=Delfiinitfinaali(50)

close all
t0=2017.5; tfin=2025.5; % Alku- ja loppuaika
y0=100;               % Alkuarvo
b=@(t)-0.03*(2-exp(-5*(sin(t*pi)).^2)); 
f=@(t,y)0.06*(1-y/150)*y+b(t)*y;        
% Lasketaan numeerinen ratkaisu Eulerin menetelmällä
[T,Y]=eulerS(f,[t0,tfin],y0,N);
% 
%[To45,Yo45]=ode45(f,[t0,tfin],y0);% ode45 määräisi itse 
                                   % laskentapisteet.
[To45,Yo45]=ode45(f,linspace(t0,tfin,50),y0); % Halutaan samat
                                   % laskentapisteet kuin Euler.     
yloppu=Y(end);    % Loppuarvo Eulerilla
ylode45=Yo45(end);% Loppuarvo ode45:llä
% Piirretään numeerinen ratkaisukäyrä. 
plot(T,Y,'.-','MarkerSize',6); grid on
title('Eulerin menetelmä, N=50');
xlim([2017 2026]);
xlabel('t'); ylabel('y(t)');shg
figure  % Seuraava kuva uuteen ikkunaan
%plot(To45,Yo45,'LineWidth',2); grid on
plot(To45,Yo45,'.-','MarkerSize',6); grid on
title('ode45-ratkaisija');
xlim([2017 2026]);
xlabel('t'); ylabel('y(t)');shg
