lunes, 20 de junio de 2011

Metodo de runge_kutta

function runge_kutta

clear %limpiando Variables 

clc % limpiando pantalla

format short % exportando formato 

% ingreso de Datos

fprintf('\n ///// RUNGE-KUTTA DE ORDEN 4/////\n')

dfx=input('\EC. DIFERENCIAL dfx =','s');

a =input('\n ingrese a=:\n');

b =input('\n ingrese b=:\n');

y0=input('\n  EL valos inicial y0 = :\n');

n=input('\n cual es el No de Pasos? :\n');

h=(b-a)/n;

%vector final agustado al numero de pasos

xs=a:h:b;

fprintf('\n''Funcion de x0  Vs  y(x1)');

for i=1:n

it=i-1;

a=xs(i);

x=a;

y=y0;

k1=h*eval(dfx);

x=a+h/2;

y=y0+k1/2;

k2=h*eval(dfx);

x=a+h/2;

y=y0+k2/2;

k3=h*eval(dfx);

x=a+h;

y=y0+k3;

k4=h*eval(dfx);

y0=y0+(k1+2*k2+2*k3+k4)/6;

%formato de impresion de resultados

fprintf('\n%2.0f%5.6f%10.6f\n',it,a,y0);

%plot(xs,y0,':ok');

end

fprintf('\n El punto aproximado y(x1) es = %8.6f\n',y0);

No hay comentarios:

Publicar un comentario