% programa para chamada o metodo de integracao
disp('Metodos disponiveis:')
disp('1 - Euler')
disp('2 - Euler Modificado')
disp('3 - Euler Aprimorado')
disp('4 - Euler Impricito')
disp('5 - Runge Kutta')
disp('6 - Adams')
Metodo = input("Escolha um metodo: ");

% condicao incial
x0 = [1 0];
%intervalo de integracao
t0 = 0;
tf = 1;

% numero de pontos
n = 50;
dt = (tf-t0)/n;
%chamada do integrador

fun = 'Ex2';

switch(Metodo)
case 1
[t,x] = Euler(t0,tf,x0,fun,n); text="Euler";
case 2
[t,x] = EulerMOD(t0,tf,x0,fun,n); text='Euler MOD';
case 3
[t,x] = EulerAP(t0,tf,x0,fun,n); text='Euler AP';
case 4
[t,x] = EulerIMP2(t0,tf,x0,n); text="Euler IMP";
case 5
[t,x] = RK(t0,tf,x0,fun,n); text='RK';
case 6
[t,x] = Adams(t0,tf,x0,fun,n); text='Adams';
endswitch


%fixando o grafico
%figure(1);
%definindo detalhes
title('resultado da integracao')
xlabel('t')
ylabel('x(t)')
%plotando os pontos (circulos) e a funcao (linha vermelha)
text

x1 = x(:,1);
x2 = x(:,2);

plot(t,x1,'o-;x1;',t,x2,'o-;x2;')

%filename = "resultados.txt";
%fid = fopen (filename, "w");
save -ascii resultados.txt t x;
%fclose (fid);
