lunes, 23 de febrero de 2009

método de euler (ec dif. ordinarias) Implementada en Matlab

Aquí os dejo el código principal de un programa que implementamos en Matlab unos amigos y yo para entregarselo al profesor de ampliación de matemáticas. Se trata de un programa que calcula y dibuja las soluciones exactas y aproximadas de una ecuación diferencial dada, usando para ello el método iterativo de Euler. Espero que os sirva, pedidme los archivos euler.m, y funcion1.m

% Ejemplo de solucion numerica de un sistema de ecuaciones
% diferenciales ordinarias mediante el metodo de Euler.
% Requiere euler.m y funcion1.m.
% Fija las condiciones iniciales
a = 0;
b = 1;
ya = 1;
M = 5;
h=(b-a)/M;
x=zeros(M+1);
y=zeros(M+1);
z=zeros(2*M+2);
z= euler('funcion1',a,b,ya,M);
x=z(1:M+1);
y=z(M+2:2*M+2);
ye=exp(x);
% Muestra los resultados
fprintf('\n\n Método de Euler aplicado a la ecuación:\n');
fprintf('\n dy/dx =y y(0)=1\n\n para h=');
fprintf('%4.4f\n\n',h);
fprintf(' x y y exacto error \n');
fprintf('---------------------------------------------\n');
fprintf('%6.2f %12.8f %12.8f %12.8f\n',[x;y;ye;ye-y]);
fprintf('---------------------------------------------\n');
xe=a:h/100:b;
ye=exp(xe);
plot(x,y,'+-b',xe,ye,'k')
title('Método de Euler para y''=y, y(0)=1 con h=0.2 y h=0.1');
hold;
pause;
M= 2*M;
h=(b-a)/M;
x=zeros(M+1);
y=zeros(M+1);
z=zeros(2*M+2);
z= euler('funcion1',a,b,ya,M);
x=z(1:M+1);
y=z(M+2:2*M+2);
ye=exp(x);
% Muestra los resultados
fprintf('\n\n Método de Euler aplicado a la ecuación:\n');
fprintf('\n dy/dx =y y(0)=1\n\n para h=');
fprintf('%4.4f\n\n',h);
fprintf(' x y y exacto error \n');
fprintf('---------------------------------------------\n');
fprintf('%6.2f %12.8f %12.8f %12.8f\n',[x;y;ye;ye-y]);
fprintf('---------------------------------------------\n');
plot(x,y,'+-r')

Por cierto nos dieron 8 sobre 10, unas decimas que se suman a la nota del exámen.

17 comentarios:

  1. Hola, tengo que hacer un programa como este, estudio teleco en la UPC. ¿En qué matlab lo pruebo?

    ResponderEliminar
  2. Usa el 6, que es donde yo lo he probado. Mandame un correo y te paso también los otros archivos punto m. Encantado!

    ResponderEliminar
  3. Ya sabes más matlab que yo, siempre me ha superado.

    ResponderEliminar
  4. espero que tu programa corra por que lo presentare en mi proyecto si revisarlo. jeje un saludo¡¡

    ResponderEliminar
  5. hola oye estoy haciendo un proyecto sobre e metodo euler me podrias pasar de favor los archivos .m mi correo es choy_6@hotmail.com
    atte; jesus delgado

    ResponderEliminar
  6. hola podrias compartir los archivos.m los necesito para un trabajo que debo presentar micorreo es mostcrazyfull@yahoo.mx, gracias

    ResponderEliminar
  7. Podrias enviarme los archivos .m
    rmmiranda22@hotmail.com
    urgente gracias

    ResponderEliminar
  8. podrias mandarme porfavor tu programa de euler.m y funcion.m a nestord_90@hotmail.com porfavor es de urge

    ResponderEliminar
  9. Grácias por publicar tu trabajo, me hacen falta los ficheros funcion1.m y euler.m puedes pasarmelos a estrilles@hotmail.com

    saludos y gracias.

    ResponderEliminar
  10. hola xfa me puedes enviar los archivos: euler.m, y funcion1.m los necesito para un deber xfa mi correo es
    leo_aleja08@hotmail.com

    xfa, gracias...

    ResponderEliminar
  11. hola te pido por fa me envies una copia de los archivos euler.m y funcion1.m
    lisseth_.14@hotmail.com

    ResponderEliminar
  12. hola te agradeceria mucho si me puedes enviar los archivos a oazzambrano@gmail.com.
    muy interesante tu trabajo
    gracias

    ResponderEliminar
  13. gracias por el trabajo, podrías mandarme los archivos .m a alejita1815@gmail.com?
    Gracias!

    ResponderEliminar
  14. por favor me puedes enviar los archivos euler.m y funcion1.m mi correo es edwin26_4@hotmail.com

    ResponderEliminar
  15. hola por favor necesito los archivos euler.m y funcion1.m mi correo es j.c.h.81@hotmail.com

    ResponderEliminar
  16. hola por favor necesito los archivos euler.m y funcion1.m mi correo es lalo_jelv@hotmail.com

    ResponderEliminar
  17. me podrias mandar los archivos euler.my funcion1.m
    mi direccion de correo es facundoartaga@hotmail.com
    gracias

    ResponderEliminar