You are on page 1of 8

1

Metodo de Runge-Kutta
Marco Antonio Alonso Ramrez
Junio 01, 2010
Resumen
El uso m as com un; para la soluci on de ecuaciones diferenciales en la ciencia son los metodos
numericos. Los metodos numericos nos dan una aproximaci on a la soluci on de la ecuacion difer-
encial usada; siendo el de Runge-Kutta el metodo numerico estandar usado para la aproximacion
numerica de soluciones. En este documento, se muestra el uso del metodo de Runge-Kutta para dar
soluci on a un problema de valor inicial y con ello; mostrar las ventajas de este metodo, as como
su aproximaci on exacta a la soluci on real.
1. Introducci on
El metodo de Runge-Kutta es publicado en 1895 por Carl David Runge (1856-1927) en su artculo
sobre la solucion numerica de las ecuaciones diferenciales, en 1901 es extendido el metodo hacia los
sistemas de ecuaciones por M. Wilhelm Kutta (1867-1944).
El metodo de Runge-Kutta surge a partir de que el metodo de Euler; no es sucientemente exacto
como para ser un procedimiento ecaz para resolver problemas, de modo que se tienen que hacer unos
calculos extras para mejorar su precision, i.e. consideramos el problema con valor inicial:
y

= f(t, y), y(t


0
) = y
0
(1)
Y considerese que y = (t) denota su solucion. Entonces al integrar la ecuacion diferencial dada desde
t
n
hast t
n+1
se obtiene
(t
n+1
) = (t
n
) +

tn+1
tn
f[t, (t)] dx (2)
De aqu se obtiene la formula de Euler
y
n+1
= y
n
+ hf(t
n
, y
n
) (3)
al sustituir f[t, (t)] en la ecuacion (2) por su valor aproximado f(t
n
, y
n
) en el extremo izquierdo del
intervalo de integracion.
Es posible obtener una mejor formula aproximada si el integrando de (2) se aproxima con mas
exactitud. Una manera de hacerlo es sustituir el integrando por el promedio de sus valores en los dos
puntos extremos; a saber, f[t
n
, (t
n
)] + [f(t
n+1
), (t
n+1
)]/2. Ademas, (t
n
) y (t
n+1
) se sustituyen
por sus valores respectivos aproximados y
n
y y
n+1
. De esta manera se obtiene de la ecuacion (2),
y
n+1
= y
n
+
f(t
n
, y
n
) + f(t
n+1
, y
n+1
)
2
h. (4)
En virtud de que la incognita y
n+1
aparece como uno de los argumentos de f en el segundo miembro
de (4), a menudo es bastante difcil despejar y
n+1
de esta ecuacion. Se puede superar esta dicultad
2
al sustituir y
n+1
en el segundo miembro por el valor obtenido al aplicar la formula de Euler (3). Por
tanto,
y
n+1
= y
n
+
f(t
n
, y
n
) + f[t
n
+ h, y
n
+ hf(t
n
, y
n
)]
2
h
= y
n
+
y

n
+ f(t
n
+ h, y
n
+ hy

n
)
2
h, (5)
en donde t
n+1
se ha sustituido por t
n
+ h.
La ecuacion (5) da una formula para calcular y
n+1
, el valor aproximado de (t
n+1
), en terminos
de los datos en t
n
. Esta formula se conoce como formula mejorada de Euler.
Con lo anterior sabemos que, si modicamos el metodo de Euler de tal manera que efectuamos un
poco mas de trabajo en cada paso, conseguimos una solucion mas exacta; con esta idea; buscamos un
algoritmo que pueda maximizar la exactitud, minimizando los calculos a efectuar. Este algoritmo es el
metodo de Runge-Kutta, debido a que es a menudo el metodo numerico usado para la aproximacion
numerica de soluciones.
En la siguiente seccion veremos como se obtiene entonces el metodo de Runge-Kutta y llegamos a
ver que este metodo es de orden mayor que el de Euler, con lo que nos asegura mayor precision.
2. Desarrollo del tema
El metodo de Runge-Kutta considera un promedio ponderado seg un sean las diversas pendientes
usadas en el procedimiento.
Las cuatro pendientes (ver g. 1.0) se determinan a continuacion:
C:/Users/MadMark/Pictures/Runge-Kutta.jpg
Figura 1: La parte (d) ilustra las cuatro pendientes usadas en el metodo de Runge-Kutta. Las partes (a)-(c) ilustran c omo se
determinan los puntos en los que se eval uan las pendientes.
1. La primera pendiente m
k
se calcula igual que en el metodo de Euler, i.e., m
k
= f(t
k
, y
k
).
2. En el metodo de Euler mejorado usamos m
k
para producir una segunda pendiente correspondiente
a un punto con t = t
k+1
= t
k
+ t. El metodo de Runge-Kutta hace casi lo mismo excepto que
3
va s olo a la mitad del camino a lo largo del eje t hasta

t = t
k
+t/2. Esto signica que utilizamos
m
k
para prooducir un punto

t, y
k
, donde
y
k
= y
k
+ m
k
t
2
[vea Fig. 1(a)]. Una vez que hemos determinado este punto, usamos la funcion f(t, y) para
determinar la segunda pendiente n
k
por medio de
n
k
= f(

t, y
k
).
3. Ahora repetimos el paso previo del algoritmo donde empleamos la pendiente n
k
en lugar de m
k
.
En otras palabras, pasamos de (t
k
, y
k
) a la lnea t =

t a lo largo de una lnea de pendiente n
k
.
Obtenemos entonces un nuveo n umero y
k
, donde

y k = y
k
+ n
k
t
2
[vea Fig. 1(b)]. Dado este punto sobre la lnea t =

t, calculamos la tercera pendiente q
k
mediante
q
k
= f(

t, y
k
)
4. Finalmente, obtenemos nuestra cuarta pendiente usando q
k
para producir un punto sobre la lne
t = t
k+1
. Obtenemos
y
k
= y
k
+ q
k
t
[vea Fig. 1(c)]. Una vez que tenemos este cuarto punto, calculamos ah la pendiente con
p
k
= f(t
k+1
, y
k
).
5. Ahora que tenemos las cuatro pendientes [vea Fig. 1(d)], tomamos un romedio ponderado y con
este calculamos el siguiente paso. Ponderamos al doble cada una de las pendientes que provienen
de los puntos con t =

tildet, respecto a las otras dos pendientes. En otras palabras, nuestro


promedio ponderado es
m
k
+ 2n
k
+ 2q
k
+ p
k
6
Por tanto el paso que realmente tomamos es
y
k+1
= y
k
+ (
m
k
+ 2n
k
+ 2q
k
+ p
k
6
)t (6)
Esta expresion se ve complicada, pero funciona bien. Basicamente las pendientes se escogen de
manera que aproximamos la solucion hasta terminos de orden 4.
Ahora para simplicar la ecuacion (6) en un algoritmo mas sencillo y eciente. Consideramos el
sistema de primer orden
dY
dt
= F(t, Y ), Y (t
0
) = Y
0
.
Calculamos cuato vectores K
1
, K
2
, K
3
y K
4
en cada paso del algoritmo. Estos son analogos a las
cuatro pendientes que calculamos para ecuaciones de primer orden y se denien escencialmente de la
4
misma manera. Suponiendo un punto (t
k
, Y
k
). Los vectores nos quedan como
K
1
= F(t
k
, Y
k
)
K
2
= F(t
k
+
t
2
, Y
k
+ (
t
2
)K
1
)
K
3
= F(t
k
+
t
2
, Y
k
+ (
t
2
)K
2
)
k
4
= F(t
k
+ t, Y
k
+ tK
3
).
Con ellos podemos formar un promedio ponderado como en el caso de las ecuaciones de primer orden.
Obtenemos el vector
K = (
K
1
+ 2K
2
+ 2K
3
+ K
4
6
) (7)
y utilizamos K para formar el paso de (t
k
, Y
k
) a
(t
k+1
, Y k + 1) = (t
k
+ t, Y
k
+ tK)
Si estamos trazando las curvas solucion en el plano fase, entonces gracamos simplemente los puntos Y
k
.
Dicho esto tenemos por (7) que la formula de Runge-Kutta comprende un promedo ponderado de
valores de f(t, y) tomados en diferentes puntos del intervalo t
n
t t
n+1
; se expresa por
y
n+1
= y
n
+
h
6
(k
n1
+ 2k
n2
+ 2k
n3
+ k
n4
) (8)
de donde
k
n1
= f(t
n
, y
n
)
k
n2
= f(t
n
+ frac12h, y
n
+
1
2
hk
n1
),
k
n3
= f(t
n
+ frac12h, y
n
+
1
2
hk
n2
),
k
n4
= f(t
n
+ h, y
n
+ hk
n3
)
Notese que si f no depende de y, entonces la ecuacion (8) se reduce a
y
n+1
y
n
=
h
6
[f(t
n
) + 4f(t
n
+
h
2
) + f(t
n
+ h)] (9)
La ecuacion (9) puede identicarse como la regla de Simpson para la evaluacion aproximada de la
integral y

= f(t).
En adelante la ecuacion (8) sera la que utilicemos para resolver cualquier P.V.I. en el documento,
mientras no se se nale lo contrario.
3. Resultados
Para ilustrar y comprender mejor el uso del metodo de Runge-Kutta, consideramos el problema
con valor inicial:
y

= x y + 1, y(0) = 1, 0 x 1 (10)
con h = 0,1
Tomamos n = 0 y obtenemos los valores para k
1
, k
2
, k
3
y k
4
.
k
1
= (0,1)f(x
0
, y
0
)
= (0,1)(x
0
y
0
+ 1)
= 0
5
k
2
= (0,1)f[x
0
+
1
2
(0,1), y
0
+
1
2
(0)]
= (0,1)(x
0
+
1
2
(0,1) y
0
+ 1)
= 0,005
k
3
= (0,1)f[x
0
+
1
2
(0,1), y
0
+
1
2
(0,005)]
= (0,1)(x
0
+
1
2
(0,1) y
0

1
2
(0,005) + 1)
= 0,00475
k
4
= (0,1)f[x
0
+ (0,1), y
0
+ 0,00475]
= (0,1)(x
0
+ (0,1) y
0
0,00475 + 1)
= 0,009525
Una vez que obtuvimos estos valores los sustituimos en la ecuacion (8) y nos queda
y
1
= y
0
+
1
6
(k
1
+ 2k
2
+ 2k
3
+ k
4
)
= 1 +
1
6
(0 + 0,01 + 0,0095 + 0,00475)
= 1,0048375 (11)
Se observa que el valor de (11) concide con el real hasta la quinta cifra decimal. Tomando n =
1, 2, . . . , 10, se obtienen los demas valores [vease Cuadro 1].
x
n
y
n
Valor Real Error Procentaje de
error relativo
0.0 1.00000 1.00000 0.00000 0.00
0.1 1.00483 1.00483 0.00000 0.00
0.2 1.01873 1.01873 0.00000 0.00
0.3 1.04081 1.04081 0.00000 0.00
0.4 1.07032 1.07032 0.00000 0.00
0.5 1.10653 1.10653 0.00000 0.00
0.6 1.14881 1.14881 0.00000 0.00
0.7 1.19658 1.19658 0.00000 0.00
0.8 1.24932 1.24932 0.00000 0.00
0.9 1.30656 1.30656 0.00000 0.00
1.0 1.36787 1.36788 0.00001 0.0007
Cuadro 1: Si tomaramos ocho cifras decimales, el error ya es apreiable, pero no signicativo. Sea, por ejemplo, n = 7, entonces:
y8 = 1,24932896 es el valor exacto en la solucion y = x +
x
, para x = 0,8. Utilizando el metodo de Runge-Kutta, se obtiene:
y8 = 1,24932928, con error = 0,00000128 y 0,00010245 en porcentaje de error relativo. Esto muestra la ecacia del metodo.
4. Conclusiones
Claramente podemos ver que, el uso de este metodo es bastante es sencillo, ademas de que tiene
una gran precision en la aproximacion de una solucion. El relativo problema que podemos encontrar
relacionado a este tema; es el de entender el procedmiento para hallar la ecuacion que describe al metodo
de Runge-Kutta. Sn embargo es un tema bastante interesante, ya que con los metodos numericos se
6
puede aproximar la solucion tanto para una ecuacion diferencial, como para un sistema de ecuaciones
diferenciales.
El curso me parecio muy completo; el metodo de la profesora bastante accesible y de facil entendimiento.
7
Referencias
[1] William E. Boyce, Richard C. DiPrima; Elementary dierential equations and boundary value
problems, Limusa-Willey, 2000
[2] Paul Blanchard, Robert L. Devaney, Glen R. Hall; Dierential Equations, Thomson, 2006
[3] Tom M. Apostol; Calculus Volumen II, Reverte, 2002
8

You might also like