Carlos A. Aguilar A.

Control de Maquinas Eléctricas Tarea1-25/01/2012

Métodos Numéricos para la Solución de Ecuaciones Diferenciales
A continuación se presenta el código en MATLAB con el cual es posible resolver ecuaciones
diferenciales ordinarias por los métodos de Euler y Runge-Kutta con pasos de integración de 0.1s,
0.01 y 0.001, para las siguientes ecuaciones:
2
d x dx
A) 2
−μ [1−x 2 ] + x− Asin ωt=0
dt dt

Método de Euler para ED de Segundo Orden “A”
%Resolver por metodos numericos la siguiente ecuacion diferencial
% x''-u*[1-x^2]*x'+x=0

%Metodo de Euler para ED de Segundo Orden
%f(y,t)=y'(y,t) y(0)=y0
%y(t+1)=y(t)+h*f(x,t)
clc
clear all

for i=1:3
if i==1 %Paso de integracion h=0.1
h=0.1;
end
if i==2 %Paso de integracion h=0.01
h=0.01;
end
if i==3 %Paso de integracion h=0.001
h=0.001;
end
%Propiedades del analisis discreto
a=0;b=20;
%Declaracion de vectores
t=a:h:b;%Vector tiempo
x1=a:h:b;
x2=a:h:b;%Primera derivada
%Condiciones iniciales y constantes dadas
u=2;A=2;w=3;%Constantes
x1(1)=2; %Condicion inicial
x2(1)=0;%Condicion inicialA
%Ciclo de iteracion para el calculo de la solucion aproximada
for n=2:((b-a)/h)+1
x1(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)));
end
%Codigo para el graficado con lineas diferentes para cada valor de "h"
hold on
if i==1
plot(t,x1,'r--')
end
if i==2
plot(t,x1,'k:')
end
if i==3
plot(t,x1)
end
end
%Etiquetado y leyendas en la grafica
legend('h=0.1','h=0.01','h=0.001')
Title('Metodo de Euler para Resolver EDO de Segundo Orden')
xlabel('Tiempo(t)')
ylabel('Solucion(x)')

1

001 h=0.t) %Con condiciones iniciales x(t0)=x0 x'(t0)=x'(0) %k1=h*x' l1=h*f(x. end if i==2 %Paso de integracion h=0.b=20. 2 . t+(1/2)h) %k3=h*(x'+(1/2)l2) l3=h*f(x+(1/2)k2. x2=a:h:b. Aguilar A.1. Control de Maquinas Eléctricas Tarea1-25/01/2012 La grafica de la solución de “A” por el método de Euler es la siguiente: Método de Runge-Kutta para ED de Segundo Orden “A” %Metodo de Runge-Kutta para ED de Segundo Orden %x''=f(x. x'+(1/2)l2.01 h=0.1 h=0.x'. %Declaracion de vectores t=a:h:b. x'+l3.x'. x'+(1/2)l1. t+h) % %x(t+h)=x+(1/6)(k1+2k2+2k3+k4) x'(t+h)=x'+(1/6)(l1+2l2+2l3+l4) clc clear all for i=1:3 if i==1 %Paso de integracion h=0. t+(1/2)h) %k4=h*(x'+l3) l4=h*f(x+k3.001.01. end if i==3 %Paso de integracion h=0. x1=a:h:b.Carlos A.t) %k2=h*(x'+(1/2)l1) l2=h*f(x+(1/2)k1. end %Propiedades del analisis discreto a=0.

k4=h*(x2(n-1)+l3). x2(n)=x2(n-1)+(1/6)*(l1+2*l2+2*l3+l4).Carlos A.'r--') end if i==2 plot(t.01'. 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))]. 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))].x1.x1) end end legend('h=0. for n=2:((b-a)/h)+1 k1=h*x2(n-1). end hold on if i==1 plot(t. k3=h*[x2(n-1)+(1/2)*l2].A=2. x1(1)=2.'k:') end if i==3 plot(t.w=3.x1.'h=0.1'. x2(1)=0. x1(n)=x1(n-1)+(1/6)*(k1+2*k2+2*k3+k4). Aguilar A. k2=h*(x2(n-1)+(1/2)*l1). Control de Maquinas Eléctricas Tarea1-25/01/2012 %Condiciones iniciales y constantes dadas u=2. l4=h*[u*(1-(x1(n-1)+k3)^2)*(x2(n-1)+l3)-(x1(n-1)+k3)+A*sin(w*(t(n-1)+h))]. l1=h*[u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1)+A*sin(w*t(n-1))].001') Title('Metodo de Runge-Kutta para Resolver EDO de Segundo Orden') xlabel('Tiempo(t)') ylabel('Solucion(x)') La grafica de la solución de “A” por el método de Runge-Kutta es la siguiente: 3 .'h=0.

x1. x2(n)=x2(n-1)+h*(u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1)).001') Title('Metodo de Euler para Resolver EDO de Segundo Orden') xlabel('Tiempo(t)') ylabel('Solucion(x)') 4 . Aguilar A.x1) end end %Etiquetado y leyendas en la grafica legend('h=0.%Primera derivada %Condiciones iniciales y constantes dadas u=2.1 h=0. %Declaracion de vectores t=a:h:b. %Condicion inicial x2(1)=0.001.'k:') end if i==3 plot(t. end if i==2 %Paso de integracion h=0.'h=0.01'.'r--') end if i==2 plot(t. Control de Maquinas Eléctricas Tarea1-25/01/2012 2 d x dx B) 2 −μ [ 1−x 2 ] + x=0 dt dt Método de Euler para ED de Segundo Orden “B” %Metodo de Euler para ED de Segundo Orden %f(y.t)=y'(y. end %Propiedades del analisis discreto a=0.Carlos A.1.01. end if i==3 %Paso de integracion h=0.%Vector tiempo x1=a:h:b.%Condicion inicial %Ciclo de iteracion para el calculo de la solucion aproximada for n=2:((b-a)/h)+1 x1(n)=x1(n-1)+h*(x2(n-1)).t) clc clear all for i=1:3 if i==1 %Paso de integracion h=0.%Constantes x1(1)=2.x1. x2=a:h:b. end %Codigo para el graficado con lineas diferentes para cada valor de "h" hold on if i==1 plot(t.'h=0.001 h=0.b=20.01 h=0.t) y(0)=y0 %y(t+1)=y(t)+h*f(x.1'.

t+(1/2)h) %k3=h*(x'+(1/2)l2) l3=h*f(x+(1/2)k2. end 5 . x'+(1/2)l1. Control de Maquinas Eléctricas Tarea1-25/01/2012 La grafica de la solución de “B” por el método de Euler es la siguiente: Método de Runge-Kutta para ED de Segundo Orden “B” %Metodo de Runge-Kutta para ED de Segundo Orden %x''=f(x. Aguilar A.x'. for i=1:3 if i==1 %Paso de integracion de 0.1. t+h) % %x(t+h)=x+(1/6)(k1+2k2+2k3+k4) x'(t+h)=x'+(1/6)(l1+2l2+2l3+l4) clc clear % close %Constantes dadas u=2. x'+(1/2)l2.t) %Con condiciones iniciales x(t0)=x0 x'(t0)=x'(0) %k1=h*x' l1=h*f(x.Carlos A.01. t+(1/2)h) %k4=h*(x'+l3) l4=h*f(x+k3.1 h=0. end if i==2 %Paso de integracion de 0. x'+l3.01 h=0.w=3.001 h=0.x'.001.A=2.t) %k2=h*(x'+(1/2)l1) l2=h*f(x+(1/2)k1. end if i==3 %Paso de integracion de 0.

l4=h*[u*(1-(x1(n-1)+k3)^2)*(x2(n-1)+l3)-(x1(n-1)+k3)]. l3=h*[u*(1-(x1(n-1)+(1/2)*k2)^2)*(x2(n-1)+(1/2)*l2)-(x1(n-1)+(1/2)*k2)]. for n=2:((b-a)/h)+1 k1=h*x2(n-1).'r--') end if i==2 plot(t.'h=0. x2(n)=x2(n-1)+(1/6)*(l1+2*l2+2*l3+l4).001') Title('Metodo de Runge-Kutta para Resolver EDO de Segundo Orden') xlabel('Tiempo(t)') ylabel('Solucion(x)') 6 .'h=0.b=20. k2=h*(x2(n-1)+(1/2)*l1). x2(1)=0. x1(n)=x1(n-1)+(1/6)*(k1+2*k2+2*k3+k4). l2=h*[u*(1-(x1(n-1)+(1/2)*k1)^2)*(x2(n-1)+(1/2)*l1)-(x1(n-1)+(1/2)*k1)].x1.Carlos A. x1=a:h:b.x1) end end legend('h=0.01'. Control de Maquinas Eléctricas Tarea1-25/01/2012 %Propiedades del analisis discreto a=0.'k:') end if i==3 plot(t. l1=h*[u*(1-x1(n-1)^2)*x2(n-1)-x1(n-1)]. x2=a:h:b.x1. Aguilar A. %Declaracion de vectores t=a:h:b.1'. %Condiciones iniciales x1(1)=2. k3=h*[x2(n-1)+(1/2)*l2]. k4=h*(x2(n-1)+l3). end hold on if i==1 plot(t.

Aguilar A.Carlos A. Control de Maquinas Eléctricas Tarea1-25/01/2012 La grafica de la solución de “A” por el método de Runge-Kutta es la siguiente: 7 .