% Escolha um metodo: 1 (Euler), 2 (Taylor de ordem 2),
% 3 (Taylor de ordem 3), 4 (Heun), 5 (RK3), 6 (RK4)
% 11, 12, 13, 14, 15, 16 sao os mesmos metodos
% com extrapolacao de Richardson
Metodo = 16;

% Parametros do calculo
t0 = 0;             % Tempo inicial
tf = 1.2;            % Tempo final
h = 0.01;           % Passo de tempo;

% Condicoes iniciais
x0 = 1;             % Valor inicial

% Definindo equacao diferencial
F = @(t,z) Exemplo(t,z);

% Resolvendo usando Metodo Escolhido
if Metodo == 1 % Metodo de Euler
    z = Euler(t0,tf,h,x0,F);
    
elseif Metodo == 2 % Metodo de Taylor ordem 2
    F1 = @(t,z) Exemplo_F1(t,z);
    z = Taylor2(t0,tf,h,x0,F,F1);
    
elseif Metodo == 3 % Metodo de Taylor ordem 3
    F1 = @(t,z) Exemplo_F1(t,z);
    F2 = @(t,z) Exemplo_F2(t,z);
    z = Taylor3(t0,tf,h,x0,F,F1,F2);
    
elseif Metodo == 4 % Metodo de Heun 
    z = Heun(t0,tf,h,x0,F);

elseif Metodo == 5 % Metodo RK3 
    z = RK3(t0,tf,h,x0,F);
    
elseif Metodo == 6 % Metodo RK4
    z = RK4(t0,tf,h,x0,F);

elseif Metodo == 11 % Metodo de Euler com Richardson
    z = Euler_Richardson(t0,tf,h,x0,F);
    
elseif Metodo == 12 % Metodo de Taylor 2 com Richardson
    F1 = @(t,z) Exemplo_F1(t,z);
    z = Taylor2_Richardson(t0,tf,h,x0,F,F1);
    
elseif Metodo == 3 % Metodo de Taylor 3 com Richardson
    F1 = @(t,z) Exemplo_F1(t,z);
    F2 = @(t,z) Exemplo_F2(t,z);
    z = Taylor3(t0,tf,h,x0,F,F1,F2);
    
elseif Metodo == 4 % Metodo de Heun com Richardson
    z = Heun_Richardson(t0,tf,h,x0,F);

elseif Metodo == 5 % Metodo RK3 com Richardson
    z = RK3_Richardson(t0,tf,h,x0,F);
    
elseif Metodo == 6 % Metodo RK4 com Richardson
    z = RK4_Richardson(t0,tf,h,x0,F);
    
end

% Representacao grafica dos resultados
figure; plot(z)

% Apresentacao dos resultados
% z

