%     Metodo de Euler Aperfeiçoado - Runge-Kutta de segunda ordem
function rk2
clc
clear all
format long
% y(a) = y(Xo) = Yo (cond. inicial)
% y(b) = y(Xn) = Yn (queremos calcular)
h = input('Entre com o valor de h: ');
x(1) = input('Entre com o valor de Xo: ');
y(1) = input('Entre com o valor de Yo: ');	
xf = input('Entre com o valor de x final: ');
n = (xf-x(1))/h;
for i=1:n
	  mo = f(x(i)   , y(i)    ) * h;
      m1 = f(x(i)+h , y(i)+mo ) * h;
	  x(i+1) = x(i) + h;
      y(i+1) = y(i) + (mo+m1)/2;
end
disp ('O valor do x final foi: ');
disp (x(n+1))
disp ('O valor do y final foi: ');
disp (y(n+1))
 figure(1)
 plot(x,y);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f=f(x,y)	
      f=-x*y;
