Вы находитесь на странице: 1из 7

Ecuaciones diferenciales ordinarias: solución numérica

Métodos numéricos – Ing. Eléctrica – 2019-B


—————————————————————————————————————————–

Veremos aquí dos métodos importantes para la solución de ecuaciones diferenciales ordinarias de
primer orden con valor inicial:
± 0
y = f(t; y); t 2 [t0 ; t0 + T ]
PVI (1)
y(t0 ) = y0

Resolver este problema consiste en encontrar una función y : [t0 ; t0 + T ] 7! R que satisfaga (1).

Ejemplo 1 Considere la ecuación diferencial de primer orden con condición inicial:


± 0
y = t + y; t 2 [0; 2]
y(0) = 3

Note que t0 = 0, y0 = 3, T = 2 y f(t; y) = t + y. La solución exacta es y(t) = 4et - t - 1 y su


grá…co se aprecia a continuación.

y 25
20

15

10

0
0.0 0.5 1.0 1.5 2.0
t

Los métodos numéricos que veremos no retornan la regla de correspondencia de una función
como solución, sólo construyen una sucesión de pares por donde el grá…co de y debería pasar
aproximadamente. Se caracterizan por:

1. Dado n 2 N, crean una partición uniforme del intervalo [t0 ; t0 + T ] de modo que,

t0 < t1 < t2 < ::: < tk < ::: < tn-1 < tn = t0 + T (2)
T
donde h = tk+1 - tk , para k = 0; :::; n - 1. Observe que h = n.

2. Iniciando con (t0 ; y0 ), construyen una sucesión de pares

(t0 ; y0 ) ; (t1 ; y1 ) ; (t2 ; y2 ) ; :::; (tk ; yk ) ; :::; (tn ; yn )

donde yk es una aproximación para el valor exacto y(tk ), k = 1; :::; n. Es decir,

y0 = y(t0 ) ; y1 ¼ y(t1 ) ; y2 ¼ y(t2 ) ; ::: ; yk ¼ y(tk ) ; ::: ; yn ¼ y(tn )

3. Para calcular yk se requiere apenas conocer el punto anterior yk-1 .

1
1. Método de Euler
Éste es uno de los métodos numéricos más sencillos para resolver el problema PVI, no es e…ciente
pero su rol es ilustrar cómo éstos funcionan.

Se sabe que
y(t0 + h) - y(t0 )
y0 (t0 ) = l´¬m
h! 0 h
podemos decir entonces que

y(t0 + h) - y(t0 )
h¼0 =) y0 (t0 ) ¼ (3)
h
de donde
y(t0 + h) ¼ y(t0 ) + hy0 (t0 )
Además, como
t1 = t0 + h, y0 (t0 ) = f(t0 ; y(t0 )) y y(t0 ) = y0
tenemos
y(t1 ) ¼ y0 + hf(t0 ; y0 )
Por lo tanto, haciendo
y1 = y0 + hf(t0 ; y0 )
tenemos
(t1 ; y(t1 )) ¼ (t1 ; y1 ) = (t0 + h; y0 + hf(t0 ; y0 ))
Repitiendo el proceso anterior, ahora con (t1 ; y1 ) representando la nueva condición inicial aproxi-
mada y(t1 ) ¼ y1 , obtenemos

(t2 ; y(t2 )) ¼ (t2 ; y2 ) = (t1 + h; y1 + hf(t1 ; y1 ))

En general, para k = 1; :::; n,

(tk ; y(tk )) ¼ (tk ; yk ) = (tk-1 + h; yk-1 + hf(tk-1 ; yk-1 ))

Observe que el único par calculado exactamente fue (t0 ; y0 ), los subsiguientes (t1 ; y1 ), (t2 ; y2 )
y (tn ; yn ) son solamente aproximaciones que mejoran a medida que h se haga más pequeño.

2
Algoritmo 1 (Euler) Considere el problema PVI de…nido en (1). Dados t0 , y0 , T y n.

T
1. Calcule el tamaño de paso: h = .
n
2. Para k = 1; 2; :::; n, calcule los pares (tk ; yk ) usando la regla de correspondencia:

tk = tk-1 + h
yk = yk-1 + hf (tk-1 ; yk-1 )

3. Retorna los pares (t0 ; y0 ) ; (t1 ; y1 ) ; :::; (tn ; yn ) que son aproximaciones a los pares exactos
(t0 ; y(t0 )) ; (t1 ; y(t1 )) ; :::; (tn ; y(tn ))

A continuación mostramos el función EULER.m hecho en Matlab/Octave, que ejecuta el algoritmo


de Euler en el computador. Éste retorna dos vectores columna t = [ t0 t1 ::: tn ]T y y =
[ y0 y1 ::: yn ]T .

function [t,y]=EULER(t0,y0,T,n)
h=T/n;
t=zeros(n+1,1);
y=zeros(n+1,1);
t(1)=t0;
y(1)=y0;
for k=2:1:n+1
t(k)=t(k-1)+h;
y(k)=y(k-1)+h*f(t(k-1),y(k-1));
end

Ejemplo 2 Vamos a resolver numéricamente el problema


8
2 3
>
< y0 = -ty - t + 10 ; t 2 [2; 3]
t2 + 1
>
: y(2) = 1

Vemos que t0 = 2, y0 = 1, T = 1 y

-ty2 - t3 + 10
f (t; y) =
t2 + 1
Vamos a considerar n = 10 (esto dice que el intervalo [2; 3] será dividido en 10 subintervalos).
El código asociado a la función f.m, que debe ser añadido al …nal del programa EULER.m o en
otro archivo, pero en el mismo directorio de trabajo, está dado por:

function z=f(t,y)
z=((-t*y^2-t^3+10)/(t^2+1));

Llamando a EULER.m mediante la línea de comando:

[t,y]=EULER(2,1,1,10)

3
obtuvimos los siguientes resultados:

k tk yk
0 2 1
1 2:1 1
2 2:2 0:9748
3 2:3 0:9279
4 2:4 0:8620
5 2:5 0:7791
6 2:6 0:6805
7 2:7 0:5674
8 2:8 0:4401
9 2:9 0:2988
10 3:0 0:1431

Dibujando los puntos (tk ; yk ), k = 0; 1; :::; 10, mediante el comando:

plot(t,y,’*’)

podemos tener una idea por dónde debería pasar la solución exacta del problema original:

Ejercicio 1 Considere el problema PVI dado por


¯ 0
y = t cos y; t 2 [0; 4]
y (0) = 0
t2
cuya solución exacta es y(t) = arcsin e t 2 -1 . Usando EULER.m, para n = 10; 20; 30; 200, resuelva
e +1
numéricamente el problema, gra…que y compare sus resultados con el grá…co siguiente. ¿Cuál es

4
el error cometido por el método de Euler al estimar el valor de y cuando t = 4 en cada caso?

Aproximaciones para el caso n = 30.

1.1. Método de Runge-Kutta 4


Uno de los métodos más populares para resolver el problema PVI es el Método de Runge-Kutta
de cuarto orden. Nuevamente, el problema de valor inicial introducido en (1) está dado por:
± 0
y = f(t; y); t 2 [t0 ; t0 + T ]
PVI (4)
y(t0 ) = y0

Conocido el punto (tk-1 ; yk-1 ), la aproximación yk del valor exacto y(tk ) es obtenida mediante:

yk = yk-1 + 16 q1 + 26 q2 + 26 q3 + 16 q4 ; k = 1; :::; n (5)

donde

q1 = hf (tk-1 ; yk-1 )
¡ ¢
q2 = hf tk-1 + 12 h; yk-1 + 12 q1
¡ ¢
q3 = hf tk-1 + 12 h; yk-1 + 12 q2

q4 = hf (tk-1 + h; yk-1 + q3 )

Algoritmo 2 (de Runge-Kutta 4) Dados t0 , y0 , T y n.


T
1. Calcule h = n.

2. Para k = 1; 2; :::; n, calcule

tk = tk-1 + h
yk = yk-1 + 16 q1 + 26 q2 + 26 q3 + 16 q4

5
donde

q1 = hf (tk-1 ; yk-1 )
¡ ¢
q2 = hf tk-1 + 12 h; yk-1 + 12 q1
¡ ¢
q3 = hf tk-1 + 12 h; yk-1 + 12 q2
q4 = hf (tk-1 + h; yk-1 + q3 )

3. Retorna los pares (t0 ; y0 ) ; (t1 ; y1 ) ; :::; (tn ; yn ), que son puntos por donde se estima que el
grá…co de la solución exacta de (4) debería pasar.

El código en MatLab/Octave asociado al algoritmo de Runge-Kutta de cuarto orden es mostrado


a continuación:
function [t,y]=RK4(t0,y0,T,n)
h=T/n;
t=zeros(n+1,1);
y=zeros(n+1,1);
t(1)=t0;
y(1)=y0;
for k=2:1:n+1
t(k)=t(k-1)+h;
q1=h*f(t(k-1),y(k-1));
q2=h*f(t(k-1)+0.5*h,y(k-1)+0.5*q1);
q3=h*f(t(k-1)+0.5*h,y(k-1)+0.5*q2);
q4=h*f(t(k-1)+h,y(k-1)+q3);
y(k)=y(k-1)+(1/6)*q1+(2/6)*q2+(2/6)*q3+(1/6)*q4;
end

Ejemplo 3 Considere nuevamente el problema PVI dado por


¯ 0
y = t cos y; t 2 [0; 4]
y (0) = 0

Antes de ejecutar el programa RK4.m primero se debe realizar el programa f.m asociado a la
función f(t; y) = t cos y, que puede estar al …nal del programa RK4.m o en otro archivo:

function z=f(t,y)
z=t*cos(y);

Para el caso en que n = 40, la siguiente tabla muestra las tres últimas líneas de los resultados
correspondientes a la solución exacta, el método de Euler y el de Runge-Kutta 4:

Exacto Euler RK4


tk y(tk ) yk yk
.. .. .. ..
. . . .
3:80 1:56933272 1:57017987 1:56934352
3:90 1:56980041 1:57041412 1:56980891
4:00 1:57012540 1:57056318 1:57013198

6
Ejercicio 2 Resuelva numéricamente el problema de valor inicial
¯ 0
y = 3t2 + 2y
y (0) = 1

Compare los resultados numéricos obtenidos por Euler y RK4 con los de la solución exacta
y(t) = 74 e2t - 32 t - 32 t2 - 34 .

Ejercicio 3 Considere una situación formada por una población de organismos zooplanctónicos.
Son colocadas en un recipiente 3 hembras partenogenéticas embarazadas (no hay necessidad de
fecundación por el macho) de um microcrustáceo llamado cladócero, en condiciones ideales de
alimentación, temperatura, aereación e iluminación, y en ausencia de depredadores.

El siguiente modelo matemático representa este fenómeno, donde y es la cantidad de individuos


en el tiempo t (días): ¯ 0
y = 6:9639 £ 10-4 y(690 - y)
y (0) = 3
Resuelva numéricamente. ¿Qué población se espera tener el día t = 24?

Ejemplo 4 El café está a 90o C inmediatamente después de ser colado en un ambiente que se
encuentra a 25o C. Vamos a estimar la temperatura del café en función del tiempo en minutos,
además queremos saber el tiempo que debe transcurrir para que el café esté a 60o C.

El modelo que maneja este comportamiento está basado en la ley de enfriamiento de Newton.
Así, ± 0
T = k(T - 25); t 2 [0; 10]
T (0) = 90
donde en este caso k = -0:0800427, T es la temperatura en el tiempo t. Resuelva numéricamente,
compare los métodos con la solución exacta.

—o—

Вам также может понравиться