% Métodos Numéricos - PVIs para EDOs
% Exercicio 2 da ficha nº 9
% Carlos Balsa 2008/2009

close all
ti=0; tf=1;
y0=-1;
h=0.2;
n=(tf-ti)/h;

f=@(t,y) -2*t-y; % função derivada

% alinea a)
[T,Ye]=ode_euler(f,[ti tf],y0,n) % met. de Euler

% alinea b)
[T,Yem]=ode_meuler(f,[ti tf],y0,n) % met. de Euler modificado

% alinea c)
t=[0:0.2:1]';
[T,Yrk]=ode45(f,t,y0) % met. de Runge-Kutta de 4ª ordem

% alinea d)
Yex=-3*exp(-t)-2*t+2; % sol. exacta

figure(1); % grafico da várias soluções
plot(t,Ye,'-b*');  hold on;
plot(t,Yem,'-r*'); hold on;
plot(t,Yrk,'-g*'); hold on;
plot(t,Yex,'-ko'); hold on;
xlabel('t'); ylabel('y(t)');
legend('Euler','Euler modif.','RK','Exacta')

% alinea e)
Ee=abs(Yex-Ye);
Eem=abs(Yex-Yem);
Erk=abs(Yex-Yrk);

figure(2); % grafico dos erros associados às várias soluções
plot(t,Ee,':*b'); hold on;
plot(t,Eem,':*r');hold on;
plot(t,Erk,':*g');hold on;
xlabel('t'); ylabel('erro');
legend('Euler','Euler modif.','RK',2)
