% calcula eq. diferencial y'= (-x)*y
% entre a e b, por euler simples
% com m subintervalos
% 
clc;
clear;
%condicoes iniciais
m=5;
y0=4;
a=1;
b=4;

y=y0;
h=(b-a)/m
x=linspace(a,b,m+1);
y(1)=y0;
for i=1:m,
   %  exemplo m=-x*y
   %m=- x(i)*y;
   
     %  exemplo m=-x/y
    m=- x(i)/y(i);

   y(i+1)= y(i) +  h*(m);
end;
solnum=y;

% solucao exata em no dominio [a,b]
xx=linspace(a,b);
yexato=sqrt(17-xx.^2);
%yexato=exp(-(xx.^2)/2 );


%solucao exata na particao x
yexatoparticao=sqrt(17-x.^2);
%yexatoparticao=exp(-(x.^2)/2 );


%diferenca sol numerica com exata nos pontos da particao
erro=abs(solnum -yexatoparticao);
errorel=erro./y0
plot(xx,yexato,x,solnum,'r*');
