% 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;

%intervalo de integracao
t0 = 0;
tf = 1;

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

fun = 'Ex1';

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] = EulerIMP1(t0,tf,x0,n); text="Euler IMP";
case 5
[t,x] = RK(t0,tf,x0,fun,n); text='RK';
case 6
%[t,x] = Adams_ant(t0,tf,x0,fun,n); text='Adams';
[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)
text
plot(t,x,'o-;text;')

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