Carlos A. Aguilar A.               Control de Maquinas Eléctricas              Tarea1-30/01/2012Métodos Numéricos para la ...
Carlos A. Aguilar A.            Control de Maquinas Eléctricas               Tarea1-30/01/2012A continuación se presenta e...
Carlos A. Aguilar A.          Control de Maquinas Eléctricas             Tarea1-30/01/2012Graficas de la solución de “A” p...
Carlos A. Aguilar A.   Control de Maquinas Eléctricas   Tarea1-30/01/2012                                                 ...
Carlos A. Aguilar A.            Control de Maquinas Eléctricas               Tarea1-30/01/2012A continuación se presenta e...
Carlos A. Aguilar A.          Control de Maquinas Eléctricas             Tarea1-30/01/2012Graficas de la solución de “B” p...
Carlos A. Aguilar A.   Control de Maquinas Eléctricas   Tarea1-30/01/2012                                                 ...
Upcoming SlideShare
Loading in …5
×

Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Runge-Kutta 4 y la Función de MATLAB ODE45 (Comparativa)

12,441 views
12,169 views

Published on

En este documento se comparan los métodos de Euler, Runge-Kutta 4 y la función ODE45 de MATLAB para la solución aproximada de ecuaciones diferenciales ordinarias con distintos pasos de integración.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,441
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
326
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Runge-Kutta 4 y la Función de MATLAB ODE45 (Comparativa)

  1. 1. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012Métodos Numéricos para la Solución de Ecuaciones DiferencialesMétodo de EulerEl método de Euler, es un procedimiento numérico de primer orden para resolver ecuacionesdiferenciales ordinarias con un valor inicial dado. Es el más básico de los métodos explícitos para laintegración numérica de ecuaciones diferenciales ordinarias, y es la forma más simple del métodode Runge-KuttaBusca aproximar la solución del problema de valor inicial, usando los dos primeros términos de laexpansión de Taylor de la función , basándose en el estimado del próximo valor de después deun tiempo de integración o paso de integración .Método de Runge-KuttaProcedimiento numérico que, al igual que el de Euler, sirve para resolver ecuaciones diferencialesordinarias con un valor inicial dado.Sea un problema de valor inicialLa solución de este problema está dada pordonde yn + 1 es la aproximación de y(tn + 1), y 1
  2. 2. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012A continuación se presenta el código en MATLAB con el cual es posible resolver por los métodosde Euler, Runge-Kutta y la función ODE45 con pasos de integración de 0.1, 0.01 y 0.001 la siguienteecuación: A)Código para la solución de la ecuación “A” por los métodos de Euler, Runge-Kutta 4 y la funciónODE45.Nota: Esta función (las siguientes 2 líneas de código) se debe escribir en un m-file aparte ynombrarlo “vdp2.m”, el cual se debe encontrar en la misma carpeta que el otro m-file con el restodel programa.function x = vdp(t,y)x=[y(2); 2*(1-y(1)^2)*y(2)-y(1)+2*sin(3*t)];clcclear all%Propiedades del analisis discretoa=0;b=20;h=0.01; %Variar el paso e intervalo de integracion aqui%Declaracion de vectorest=a:h:b;x1=a:h:b;x2=a:h:b;%Condiciones iniciales y constantes dadasu=2;A=2;w=3;x1(1)=2;x2(1)=0;%Calculo de la solucion aproximada por el metodo de Eulerfor n=2:((b-a)/h)+1x1(n)=x1(n-1)+h*(x2(n-1));x2(n)=x2(n-1)+h*(u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1)+A*sin(w*t(n-1)));endhold onplot(t,x1,r--)%Calculo de la solucion aproximada por el metodo de Runge-Kutta 4for n=2:((b-a)/h)+1k1=h*x2(n-1);l1=h*[u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1)+A*sin(w*t(n-1))];k2=h*(x2(n-1)+(1/2)*l1);l2=h*[u*(1-(x1(n-1)+(1/2)*k1)^2)*(x2(n-1)+(1/2)*l1)-(x1(n-1)+(1/2)*k1)+A*sin(w*(t(n-1)+(1/2)*h))];k3=h*[x2(n-1)+(1/2)*l2];l3=h*[u*(1-(x1(n-1)+(1/2)*k2)^2)*(x2(n-1)+(1/2)*l2)-(x1(n-1)+(1/2)*k2)+A*sin(w*(t(n-1)+(1/2)*h))];k4=h*(x2(n-1)+l3);l4=h*[u*(1-(x1(n-1)+k3)^2)*(x2(n-1)+l3)-(x1(n-1)+k3)+A*sin(w*(t(n-1)+h))];x1(n)=x1(n-1)+(1/6)*(k1+2*k2+2*k3+k4);x2(n)=x2(n-1)+(1/6)*(l1+2*l2+2*l3+l4);endplot(t,x1,k:)%Calculo de la solucion aproximada usando la funcion ODE45 que corresponde%al me metodo de Runge-Kutta(4,5) de paso adaptativooptions = odeset(InitialStep,h,MaxStep,h);[t,y] = ode45(@vdp,[a,b],[x1(1); x2(1)],options);plot(t,y(:,1))%Etiquetado y leyendas en la graficalegend(Euler,RK4,ODE45)title([SOLUCION APROXIMADA DE LA ECUACION "A" h=,num2str(h), seg])xlabel(TIEMPO(t))ylabel(SOLUCION(x)) 2
  3. 3. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012Graficas de la solución de “A” por los métodos de Euler, Runge-Kutta 4 y la función ODE45 paradistintos pasos de integración: 3
  4. 4. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012 4
  5. 5. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012A continuación se presenta el código en MATLAB con el cual es posible resolver por los métodosde Euler, Runge-Kutta y la función ODE45 con pasos de integración de 0.1, 0.01 y 0.001 la siguienteecuación: B)Código para la solución de la ecuación “B” por los métodos de Euler, Runge-Kutta 4 y la funciónODE45.Nota: Esta función (las siguientes 2 líneas de código) se debe escribir en un m-file aparte ynombrarlo “vdp2.m”, el cual se debe encontrar en la misma carpeta que el otro m-file con el restodel programa.function x = vdp2(t,y)x=[y(2); 2*(1-y(1)^2)*y(2)-y(1)];clcclear all%Propiedades del analisis discretoa=0;b=20;h=0.1; %Variar el paso e intervalo de integracion aqui%Declaracion de vectorest=a:h:b;x1=a:h:b;x2=a:h:b;%Condiciones iniciales y constantes dadasu=2;A=2;w=3;x1(1)=2;x2(1)=0;%Calculo de la solucion aproximada por el metodo de Eulerfor n=2:((b-a)/h)+1x1(n)=x1(n-1)+h*(x2(n-1));x2(n)=x2(n-1)+h*(u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1));endhold onplot(t,x1,r--)%Calculo de la solucion aproximada por el metodo de Runge-Kutta 4for n=2:((b-a)/h)+1k1=h*x2(n-1);l1=h*[u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1)];k2=h*(x2(n-1)+(1/2)*l1);l2=h*[u*(1-(x1(n-1)+(1/2)*k1)^2)*(x2(n-1)+(1/2)*l1)-(x1(n-1)+(1/2)*k1)];k3=h*[x2(n-1)+(1/2)*l2];l3=h*[u*(1-(x1(n-1)+(1/2)*k2)^2)*(x2(n-1)+(1/2)*l2)-(x1(n-1)+(1/2)*k2)];k4=h*(x2(n-1)+l3);l4=h*[u*(1-(x1(n-1)+k3)^2)*(x2(n-1)+l3)-(x1(n-1)+k3)];x1(n)=x1(n-1)+(1/6)*(k1+2*k2+2*k3+k4);x2(n)=x2(n-1)+(1/6)*(l1+2*l2+2*l3+l4);endplot(t,x1,k:)%Calculo de la solucion aproximada usando la funcion ODE45 que corresponde%al me metodo de Runge-Kutta(4,5) de paso adaptativooptions = odeset(InitialStep,h,MaxStep,h);[t,y] = ode45(@vdp2,[a,b],[x1(1); x2(1)],options);plot(t,y(:,1))%Etiquetado y leyendas en la graficalegend(Euler,RK4,ODE45)title([SOLUCION APROXIMADA DE LA ECUACION "B" h=,num2str(h), seg])xlabel(TIEMPO(t))ylabel(SOLUCION(x)) 5
  6. 6. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012Graficas de la solución de “B” por los métodos de Euler, Runge-Kutta 4 y la función ODE45 paradistintos pasos de integración: 6
  7. 7. Carlos A. Aguilar A. Control de Maquinas Eléctricas Tarea1-30/01/2012 7

×