Está en la página 1de 1

function [x,y]=rk40de(dydx,xspan,y0,h)

xi=xspan(1);
xf=xspan(2);
x=(xi:h:xf)';
n=length(x);
y=y0*ones(n,1);
for i=1:n-1
k1=feval(dydx,x(i),y(i));
k2=feval(dydx,x(i)+(1/2)*h,y(i)+(1/2)*k1*h);
k3=feval(dydx,x(i)+(1/2)*h,y(i)+(1/2)*k2*h);
k4=feval(dydx,x(i)+h,y(i)+k3*h);
y(i+1)=y(i)+(1/6)*(k1+2*k2+2*k3+k4)*h;
end

dydx=inline('sqrt(x^2+y)','x','y')

[x,y]=rk4ODE(dydx,[0 2],0.8,0.2);
disp([x,y])

También podría gustarte