Professional Documents
Culture Documents
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
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:
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
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