miércoles, 23 de mayo de 2012

METODO_DE_RUNGE_KUTTA Y METODO_DE_EULER_MEJORADo


function Y=METODO_DE_RUNGE_KUTTA
format long
disp('METODO DE RUUGE-KUTTA')
syms w
f=inline(input('ingrese la funcion f(t,w):=','s'));
syms t
y=inline(input('ingrese la solucion exacta y(t)=','s'));
a=input('ingrese el valor de a:');
b=input('ingrese el valor de b:');
N=input('ingrese el valor de N:');
y0=input('ingrese la condicion inicial:');
t=a;
exacta=y(t);
w0=y0;
k1=0;
k2=0;
k3=0;
k4=0;
error=abs(w0-exacta);
fprintf('\t\t\t\t\t METODO DE RUNGE KUTTA \n\n');
fprintf('\t t(i) \t\t k1 \t\t k2 \t\t k3 \t\t k4 \t\t w(i) \t\t y(i) \t ERROR \n');
fprintf('%9.2f \t %8.5f  \t %8.5f \t %8.5f \t %8.5f \t %7.5f \t %7.5f \t %7.5f \n',t,k1,k2,k3,k4,w0,exacta,error);
t=a;
w=y0;
h=(b-a)/N;
for i=1:N
k1=h*(feval(f,t,w));
z=t+(1/2*(h));
u=w+(1/2*(k1));
k2=h*(feval(f,z,u));
u=w+(1/2*(k2));
k3=h*(feval(f,z,u));
z=t+h;
u=w+k3;
k4=h*(feval(f,z,u));
w=w+((1/6)*(k1+2*k2+2*k3+k4));
t=t+h;
exacta=y(t);
error=abs(w-exacta);
fprintf('%9.2f \t %7.5f  \t %7.5f \t %7.5f \t %7.5f \t %7.5f \t %7.5f \t %7.5f \n',t,k1,k2,k3,k4,w,exacta,error);
end
end





function Y=METODO_DE_EULER_MEJORADO
format long
disp('METODO DE EULER_MEJORADO')
syms w
f=inline(input('ingrese la funcion f(t,w):=','s'));
syms t
y=inline(input('ingrese la solucion exacta y(t)=','s'));
a=input('ingrese el valor de a:');
b=input('ingrese el valor de b:');
N=input('ingrese el valor de N:');
y0=input('ingrese la condicion inicial:');
t=a;
exacta=y(t);
w0=y0;
k1=0;
k2=0;
error=abs(w0-exacta);
fprintf('\t\t\t\t\t METODO DE EULER_MEJORADO \n\n');
fprintf('\t\t t(i) \t\t\t k1 \t\t\t k2 \t\t\t w(i) \t\t\t y(i) \t\t ERROR \n');
fprintf('%13.2f \t %11.5f  \t %11.5f \t %12.5f \t %12.5f \t %11.5f \n',t,k1,k2,w0,exacta,error);
t=a;
w=y0;
h=(b-a)/N;
for i=1:N
k1=h*(feval(f,t,w));
z=t+h;
u=w+k1;
k2=h*(feval(f,z,u));
w=w+((1/2)*(k1+k2));
t=t+h;
exacta=y(t);
error=abs(w-exacta);
fprintf('%13.2f \t %11.5f \t %11.5f \t %12.5f \t %12.5f \t %11.5f \n',t,k1,k2,w,exacta,error);
end
end










No hay comentarios:

Publicar un comentario