function [vetx,vety] = Euler_Melhorado(funcao,a,b,m,y0); %objetivo: resolver PVI pelo metodo de Euler Modificado %parametros de entrada: funcao,a,b,m,y0 -> funcao,limites inferior, superior, num. de %intervalos e valor inicial %parametros de saida: vetx, vety -> abcissas e solucao do PVI h = (b-a)/m; x=a; y = y0; Fxy = eval(funcao); vetx(1) = x; vety(1) = y; disp(' i x y Fxy '); for i=1:m xa = x; ya = y; x = x+h; y = y+h*Fxy; ter = eval(funcao); y = ya + (h/2)*(Fxy+ter); x= a+i*h; Fxy = eval(funcao); disp([i x y Fxy]); vetx(i+1) = x; vety(i+1) = y; end end