You are on page 1of 10

UNIVERSIDAD SURCOLOMBIANA

PROGRAMA DE INGENIERIA ELECTRONICA


METODOS NUMERICOS
ECUACIONES DIFERENCIALES
Problema
Jonathan Capera Botache
20132121247
Albert Plaza Snchez
20132123066
Se necesitan aplicar los metodos para solucion de ecuaciones diferenciales
(euler, euler mejorado y runge-kutta) a los siguientes ejercicios.
Analisis de que debo saber y hacer

Necesito saber las condicones iniciales y hallar la ecuacion diferencial de


los ejercicios, con estos datos y ademas el dato de la posicion final, ya
tengo lo necesario para desarrollar la solucion, tanto analiticamente
como por los metodos de euler, euler mejorado y runge kutta, de tar
manera que se pueda comparar los resultados y saber, que el proceso
fue realizado de una manera satisfactoria
En cuanto a cada metodo, se debe calcular el numero de pasos, el valor
de las pendientes y los puntos para el trazo de la grafica, y con esto ya
tenemos una aproximacion a lo real

Como los valores de K y A son constantes, los puedo reemplazar para obtener
un valor numerico que sera operado en la ecuacion diferencial
Solucionando la ecuacion diferencial

Reemplanzando los valores inciales to=0, ho=2 obtenemos que C=1.25 y nos
queda la siguiente ecuacion

Ahora reemplazando en la anterior ecuacion, obtenemos que h(45)= 0.3288


Ahora pasamos a solucionarlo con los metodos aprendidos en clase
De las graficas obtenidas, mostraremos iniciando con 16 pasos, ya
que es donde se inician a observar las 3 graficas, la de color azul
(Metodo de Euler), la de color negro (Metodo de Euler Mejorado) y la de
color rojo (Metodo de Runge Kutta)
Fig 1. Grafica con 16 pasos

Fig 2 . Grafica con 20 pasos

Fig 3 . Grafica con 50 pasos


Fig 4. Grafica con 100 pasos
Como se observa en la fig 4, las graficas estan casi una sobre la otra, lo que
significa que ya todos estan cerca o en el valor exacto (en el caso del metodo
de Runge Kutta que desde el inicio ya redondeaba el valor exacto ) por lo tanto
no se agregaron mas graficas

Valores obtenidos segn el metodo utilizado


N de pasos Euler Euler Mejorado Runge Kutta
1 -34 9200 3.2842
2 9200 2.5757 0
4 2.5767 Inf 0
8 inf -0.2015 0.3381
16 -0.2015 0.3089 0.3221
20 0.1724 3.155 0.3270
30 0.3055 0.3210 0.3286
50 0.3190 0.3243 0.3288
100 0.3243 0.3266 0.3288
500 0.3279 0.3284 0.3288
1000 0.3284 0.3286 0.3288
5000 0.3287 0.3288 0.3288
10000 0.3288 0.3288 0.3288

clear all
hold on
grid on
n=input('dig num pas');
xo=input('dig x inic');
xx=xo;x1=xo;x2=xo;
yo=input('dig y inic');yy=yo;y1=yo;y2=yo;
xf=input('dig x final');
h=(xf-xo)/n;
i=1;
x(i)=xo;y(i)=yo;%RK
x01(i)=xo;y01(i)=yo;%E
x02(i)=xo;y02(i)=yo;%EM
edo1=@(xx,yy)(-0.1*yy^3);
edo2=@(x1,y1)(-0.1*y1^3);
edo3=@(x2,y2)(-0.1*y2^3);
while (i<=n)
k1=edo1(xx,yy);
k2=edo1(xx+h/2,yy+k1*h/2);
k3=edo1(xx+h/2,yy+k2*h/2);
k4=edo1(xx+h,yy+k3*h);
km=(k1+2*k2+2*k3+k4)/6;
me=edo2(x1,y1);
mp1=edo3(x2,y2);
mp2=edo3(x2+h/2,y2+mp1*h/2);
mp=(mp1+mp2)/2;
i=i+1;
xx=xx+h;
x1=x1+h;
x2=x2+h;
yy=yy+km*h;
y1=y1+me*h;
y2=y2+mp*h;
x(i)=xx;y(i)=yy;
x01(i)=x1;y01(i)=y1;
x02(i)=x2;y02(i)=y2;
end

plot(x01,y01,'b')%Euler
plot(x02,y02,'k')%EulerM
plot(x,y,'r');%Runge Kutta

Ejercicio propuesto

Se cuenta con un circuito RL simple que consta de una bobina de 100 mili-
Henrios y una resistencia de 50ohms, al cual se le aplica una fem (fuerza
electromotriz) de 30v, analice el comportamiento de la corriente en el circuito,
cuando el tiempo sea 0.01segundos , y que sucede si el tiempo aunmenta
hasta infinito, sabiendo que antes de accionar la fuente de alimentacion, no
existia corriente alguna

Analizando, tenemos que i=0 con t=0, y nos piden 2 cosas, analizar para
t=0.01seg y para cuando t=0.5seg
Entonces analizando el circuito solo tenemos una malla siemple, asi que
aplicando la ley de malla de kirchoff, y sabiendo que VL=Ldi/dt y VR=i*R,
tengo que

Ldi/dt + iR = E(t)
Donde L=100mH, R=50ohms y E(t)=30v
Ahora reemplazando estos valroes obtenemos

0.1di/dt + 50i = 30
Ahora resolviendo esta ecuacion diferencial, tenemos que:

Para encontrar el valor de C utilizamos los valores iniciales i(0)=0, es decir


cuando el tiempo t es 0 la corriente i en el circuito es 0 tambin.

Por tanto, sustituyendo estos valores en la ecuacin para la corriente


resultante del circuito (4), tenemos que C=-3/5 = -0.6

De donde la Corriente Buscada es:


i ( t )=0.6 e500t + 0.6

Es evidente, observando la ecuacin , que cuando t , i(t)=0.6, ahora


partimos a hallar el valor de la corriente cuando t=0.01seg

i(0.01)=0.5960A
Ahora que ya sabemos como se nos va a comportar realmente nuestra
corriente, que tiende ma mantenerse en 0.6 con respecto al tiempo, vamos a
analizar con los metodos aprendidos

Con respecto a los metodos, ya que se utilizo Matlab, por ser un


establecimiento de la corriente muy pequea se va a encontrar graficas muy
parecidas entre metodo y metodo, del cual su respuesta variar tan solo en
milesimas y se comprueba que nuestros circuito va a tender a permanecer
establecido en 0.6A cuando el tiempo trascurre y mucha mas aun si tiende a
ser infinito

Fig 1. Grafica con 1 paso

Fig 2. Grafica con 2 pasos


Fig 3. Grafica con 4 pasos

Fig 4. Grafica con 8 pasos


Fig 5. Grafica con 20 pasos

Fig 4. Grafica con 100 pasos

Valores obtenidos segn el metodo utilizado


N de pasos Euler Euler Mejorado Runge Kutta
1 3 -0.75 -7.625
2 -0.75 0.5977 0.3477
4 0.5977 0.5998 0.5946
8 0.5998 0.5985 0.5969
16 0.5985 0.5974 0.5960
20 0.5981 0.5971 0.5960
30 0.5975 0.5968 0.5960
50 0.5969 0.5964 0.5960
100 0.5964 0.5962 0.5960
500 0.5961 0.5960 0.5960
750 0.5960 0.5960 0.5960

clear all
hold on
grid on
n=input('dig num pas');
xo=input('dig x inic');
xx=xo;x1=xo;x2=xo;
yo=input('dig y inic');yy=yo;y1=yo;y2=yo;
xf=input('dig x final');
h=(xf-xo)/n;
i=1;
x(i)=xo;y(i)=yo;%RK
x01(i)=xo;y01(i)=yo;%E
x02(i)=xo;y02(i)=yo;%EM
edo1=@(xx,yy)(30-50*yy)/0.1;
edo2=@(x1,y1)(30-50*y1)/0.1;
edo3=@(x2,y2)(30-50*y2)/0.1;
while (i<=n)
k1=edo1(xx,yy);
k2=edo1(xx+h/2,yy+k1*h/2);
k3=edo1(xx+h/2,yy+k2*h/2);
k4=edo1(xx+h,yy+k3*h);
km=(k1+2*k2+2*k3+k4)/6;
me=edo2(x1,y1);
mp1=edo3(x2,y2);
mp2=edo3(x2+h/2,y2+mp1*h/2);
mp=(mp1+mp2)/2;
i=i+1;
xx=xx+h;
x1=x1+h;
x2=x2+h;
yy=yy+km*h;
y1=y1+me*h;
y2=y2+mp*h;
x(i)=xx;y(i)=yy;
x01(i)=x1;y01(i)=y1;
x02(i)=x2;y02(i)=y2;
end

plot(x01,y01,'b')%Euler
plot(x02,y02,'k')%EulerM
plot(x,y,'r');%Runge Kutta

You might also like