%Metodo de Euler ,para a soluçao de equacoes diferenciais:
%consiste na aplicaçao de uma expansao em serie de Taylor
%considerando apenas os dois primeiros termos:
%yn+1=yn +h.f(tn, yn)
%onde f(t,y)=dy/dt
%ou seja conhecendo a derivada, podemos retornar os valores da funcao para y e t.


function [tvals,yvals]=euler(f,to,tf,yo,step)
if sum(size(yo))>2
    n=size(yo);
    if n(2)>n(1)
        yo=yo';
    end
end

steps=(tf-to)/step+1;
y=yo;
t=to;
yvals=yo;
tvals=to;
for i=2:steps
    y1=y+step*feval(f,t,y) ;% calculo de y
    t1=t+step;% incremento de t
    tvals=[tvals,t1];% acrescimo da nova linha
    yvals=[yvals,y1];% acrescimo da nova linha
    t=t1;y=y1;% inversao para o calculo certo
end

tvals=tvals'
yvals=yvals'



%requer function y=function f(t,x)

%f508 to=0 tf=10 passo=0.5 cc=[0 -1]