You are on page 1of 6

METODOS NUMERICOS RESOLUCION DE EJERCICIOS DE ECUACIONES

DIFERENCIALES ORDINARIAS Y SISTEMA DE ECUACIONES DIFERENCIALES


1. En una red eléctrica, las corrientes i1(t) e i2(t) están definidas por el siguiente
sistema de ecuaciones diferenciales:
di1
 50 i 2  60
dt
di
0,005 2  i 2  i1  0
dt
Las corrientes i1(t) e i2(t) son nulas al inicio. Utilizando el algoritmo de Runge Kutta,
determinar ambas corrientes después de t=0,04 s. Realizar mínimo dos
iteraciones.
SOLUCION
Despejamos las ecuaciones en su forma diferencial
𝑑𝑖1
= 60 − 50 ∗ 𝑖2
𝑑𝑡
𝑑𝑖2 𝑖1 − 𝑖2
=
𝑑𝑡 0.005
APLICANDO EL ALGORITMO DE RANGE KUTTA DE CUARTO ORDEN
En general, una ecuación diferencial ordinaria de orden 𝑛 − 𝑒𝑠𝑖𝑚𝑜 queda convertida en
un sistema de n- ecuaciones diferenciales simultáneas ordinarias de la forma general
𝑦1′ = 𝑓1 (𝑥, 𝑦1, 𝑦2, 𝑦3 … 𝑦𝑛)
𝑦2′ = 𝑓2 (𝑥, 𝑦1, 𝑦2, 𝑦3 … 𝑦𝑛)

𝑦𝑛′ = 𝑓3 (𝑥, 𝑦1, 𝑦2, 𝑦3 … 𝑦𝑛)
Que puede resolverse aplicando, por ejemplo, algunos de los métodos de 𝑅𝑎𝑛𝑔𝑒 𝐾𝑢𝑡𝑡𝑎
a cada ecuación, e iterando cada ecuación en turno, tal como en los sistemas de
ecuaciones no lineales y los métodos de predicción-corrección

𝑦 ′ = 𝑓1 (𝑥, 𝑦, 𝑧)
𝑧 ′ = 𝑓2 (𝑥, 𝑦, 𝑧)
Donde solo se emplea z como una nueva variable a fin de no usar sub índices dobles
en las ecuaciones


𝑦𝑖+1 = 𝑦𝑖 + ∗ (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6

𝑧𝑖+1 = 𝑧𝑖 + ∗ (𝑐1 + 2𝑐2 + 2𝑐3 + 𝑐4 )
6
Las cuales se calculan alternadamente, y las 𝑘 y 𝑐 se obtienen de:
𝑘1 = 𝑓1 (𝑥𝑖 , 𝑦𝑖 , 𝑧𝑖 )
𝑐1 = 𝑓2 (𝑥𝑖 , 𝑦𝑖 , 𝑧𝑖 )
Calculando las segundas constantes
ℎ ℎ𝑘1 ℎ𝑐1
𝑘2 = 𝑓1 (𝑥𝑖 + , 𝑦𝑖 + , 𝑧𝑖 + )
2 2 2
ℎ ℎ𝑘1 ℎ𝑐1
𝑐2 = 𝑓2 (𝑥𝑖 + , 𝑦𝑖 + , 𝑧𝑖 + )
2 2 2
Calculando las terceras constantes
ℎ ℎ𝑘2 ℎ𝑐2
𝑘3 = 𝑓1 (𝑥𝑖 + , 𝑦𝑖 + , 𝑧𝑖 + )
2 2 2
ℎ ℎ𝑘2 ℎ𝑐2
𝑐3 = 𝑓2 (𝑥𝑖 + , 𝑦𝑖 + , 𝑧𝑖 + )
2 2 2
Calculando las cuartas constantes
𝑘4 = 𝑓1 (𝑥𝑖 + ℎ, 𝑦𝑖 + ℎ𝑘3 , 𝑧𝑖 + ℎ𝑐3 )
𝑐4 = 𝑓2 (𝑥𝑖 + ℎ, 𝑦𝑖 + ℎ𝑘3 , 𝑧𝑖 + ℎ𝑐3 )
Las cuales son calculadas en ese orden
clc, clear
%METODO DE RANGE KUTTA
disp(' RANGE KUTTA')
syms i1 i2 t
%CONDICIONES INICIAES
i10=0; i20=0; t0=0;
%PRIMERA FUNCION
di1=60-50*i2
%SEGUNDA FUNCION
di2=(i1-i2)/0.005
%MARCA DE PASO
h=0.04;
n=4;
while i<=n
i1=i10; i2=i20; t=t0;
k1=eval(di1); c1=eval(di2);
t=t0+h/2; i1=i10+h/2*k1; i2=i20+h/2*c1;
k2=eval(di1); c2=eval(di2);
t=t0+h/2; i1=i10+h/2*k2; i2=i20+h/2*c2;
k3=eval(di1); c3=eval(di2);
t=t0+h; i1=i10+h*k3; i2=i20+h*c3;
k4=eval(di1); c4=eval(di2);
i10=i10+h/6*(k1+2*k2+2*k3+k4);
i20=120+h/6*(c1+2*c2+2*c3+c4);
t0=t0+h;
i=i+1;
fprintf('%i %4.4f %4.4f %4.4f\n',i,t0,i10,i20)
end

HACIENDO CORRER EL PROGRAMA


2. Debido a que la ecuación diferencial que describe el movimiento de este sistema
es no lineal:
d2x dx
m 2 c  k1x  k 2 x 3  0
dt dt
El desplazamiento de x en función del tiempo no puede encontrarse con los
métodos analíticos tradicionales. Por esta razón se usa una solución numérica a
esta ecuación diferencial.
Los parámetros físicos del
sistema de suspensión
son:

N
m  0,01 kg k 1  2,0
cm
N N
c  2,0 k 2  0,2
cm cm 3
Al inicio el objeto está a 10 cm del objeto en la dirección positiva del eje x, y su
velocidad en cm
Utilizando el algoritmo de Runge Kutta, determinar ambas corrientes después de
t=0,04 s. Realizar mínimo dos iteraciones.
SOLUCION
Se tiene la siguiente ecuación diferencial de segundo orden
𝑑2 𝑥 𝑑𝑥
𝑚∗ 2
+𝑐∗ + 𝑘1 𝑥 − 𝑘2 𝑥 3 = 0
𝑑𝑡 𝑑𝑡
Cambio de notación
𝑚 ∗ 𝑥 ′′ + 𝑥 ′ + 𝑘1 ∗ 𝑥 − 𝑘2 ∗ 𝑥 3 = 0
Tomando un cambio de variable
𝑦 = 𝑥′
𝑥′ = 𝑦
𝑘2 ∗ 𝑥 3 − 𝑐 ∗ 𝑦 − 𝑘1 ∗ 𝑥
𝑦′ =
𝑚
Hallando las condiciones iniciales
𝑡(0) = 0
𝑥(0) = 10
𝑑2 𝑥
Sabemos que la segunda derivada 𝑑𝑡 2
es la aceleración, por lo tanto cuando el tiempo
es cero la aceleración también es 0
𝑦 ′ = 𝑘2 ∗ 𝑥 3 − 𝑦 − 𝑘1 ∗ 𝑥

0 = 𝑘2 (10)3 − 𝑘1 (10) − 𝑦(0)

𝑦(0) = 𝑘2 (10)3 − 𝑘1 (10)

𝑦(0) = 0.2(10)3 − 2(10)


𝑦(0) = 180
clc, clear
%METODO DE RANGE KUTTA
%INSERTANDO CONDICIONES INICIALES
disp(' RANGE KUTTA ')
syms x y
t0=0; x0=10; y0=180;
%INSERTANDO LAS CONSTANTES
m=0.01; C=2; K1=2; K2=0.2;
%INSERTANDO LAS ECUACIONES DIFERENCIALES
dx=y;
dy=(K2*x^3-C*y-K1*x)/m;
%INSERTANDO LA MARCA DE PASO
h=0.01;
n=4;
while i<=n
t=t0; x=x0; y=y0;
k1=eval(dx); c1=eval(dy);
t=t0+h/2; x=x0+h/2*k1; y=y0+h/2*c1;
k2=eval(dx); c2=eval(dy);
t=t0+h/2; x=x0+h/2*k2; y=y0+h/2*c2;
k3=eval(dx); c3=eval(dy);
t=t0+h; x=x0+h*k3; y=y0+h*c3;
k4=eval(dx); c4=eval(dy);
x0=x0+h/6*(k1+2*k2+2*k3+k4);
y0=y0+h/6*(c1+2*c2+2*c3+c4);
t0=t0+h;
i=i+1;
fprintf('%i %4.4f %4.4f %4.4f\n',i,t0,x0,y0)
end

HACIENDO CORRER EL PROGRAMA


EXAMEN PARCAIL 2017-I
Se tiene las siguientes ecuaciones diferenciales de un circuito eléctrico
𝑑𝑖1 𝑑𝑖2 𝑑2 𝑖2 𝑑𝑖1
+ + 400𝑖1 = 100, 200 + 3𝑖2 − 2 =0
𝑑𝑡 𝑑𝑡 𝑑𝑡 𝑑𝑡
Cuando 𝑡 = 7.5 𝑠 las intensidades de corriente y carga son nulas. Desarrollar un
programa para determinar el número de nodos y conocer las intensidades de corriente
en 𝑡 = 42.3, utilizar el método de Euler modificado
SOLUCION
𝑑𝑖1 𝑑𝑖2
+ + 400𝑖1 = 100
𝑑𝑡 𝑑𝑡
Generamos una ecuación
𝑑𝑖2
= 𝑦 … (1)
𝑑𝑡
Despejamos la primera ecuación
𝑑𝑖1
= 100 − 𝑦 − 400𝑖1 … (2)
𝑑𝑡
Remplazamos en la segunda ecuación del problema
𝑑𝑦 2(100 − 𝑦 − 400𝑖1 ) − 3𝑖2
= … (3)
𝑑𝑡 200
Las condiciones iniciales
𝑖10 = 0, 𝑖20 = 0, 𝑡0 = 7.5, 𝑦0 = 0
DESARROLLANDO UN PROGRAMA PARA EL METODO DE EULER MODIFICADO
clc, clear
%METODO DE EULER MODIFICADO
disp('METODO DE EULER MODIFICADO')
syms i1 i2 y t
%CONDICIONES INICIALES
i10=0; i20=0; y0=0; t0=7.5;
%INSERTANDO LAS ECUACIONES DIFERENCIALES
di1=100-y-400*i1;
di2=y;
dy=(2*(100-y-400*i1)-3*i2)/200;
%INSERTANDO LA MARCA DE PASO Y TAMBIEN n
a=7.5;
b=42.3;
n=3;
h=(b-a)/n;
while i<=n
i1=i10; i2=i20; y=y0; t=t0;
Ui1=i10+h*eval(di1);
mi1=eval(di1);
Ui2=i20+h*eval(di2);
mi2=eval(di2);
Uy=y0+h*eval(dy);
my=eval(dy);
i1=Ui1; i2=Ui2; y=Uy; t=t0;
%ALGORITMO
i10=i10+h/2*(mi1+eval(di1));
i20=i20+h/2*(mi2+eval(di2));
y0=y0+h/2*(my+eval(dy));
t0=t0+h;
i=i+1;
fprintf('%i %4.4f %4.4f %4.4f\n',i,t0,i10,i20,y0)
end

You might also like