Sei sulla pagina 1di 4

Mtodo de Rugen Kutta

Mtodos de Tayler
Al intentar mejorar la solucin obtenida con la aplicacin del mtodo de Euler
aparecen de manera natural los mtodos de Tayler. Desde un punto de vista terico los
mtodos de Taylor son sencillos y permiten obtener una mayor precisin sin ms que
aumentar convenientemente el grado del desarrollo. Para obtener los mtodos de Taylor
s debe aplicar a la solucin de la ecuacin diferencial un desarrollo de Taylor de orden k
en cada punto x
n
= x
0
+ nh, con lo que se obtiene la frmula:
y
n+1
= y
n
+ h*y'
n
+ (h
2
/2!)*y''
n
+ ... + (h
k
/k!)*y
('k)
n
.
Por tanto, para poder aplicar un mtodo de Taylor de orden k se tiene el
inconveniente de tener que evaluar, en cada paso, las primeras k derivadas de la funcin
f(x,y) que define la ecuacin diferencial, lo que actualmente se realiza sin dificultad
mediante programas de clculo simbolico, aunque se debe de tener en cuenta que dicha
funcin debe tener derivadas parciales sucesivas en la regin del plano en la que se
evale la curva solucin.
Como y'(x) = f(x, y(x)), derivando se obtiene que y'
n
= f(x
n
, y(x
n
)):
(d
2
y/dx
2
) = [f(x,y(x))/x] + [f(x,y(x))/y]*(dy/dx) = f
x
+ f
y
* f
(d
3
y/dx
3
) = [
2
f(x, y(x))/x
2
] + 2[
2
f(x, y(x))/xy]*[f(x, y(x))] + [
2
f(x, y(x))/y
2
]*[f(x, y(x))
2
] +
[f(x, y(x))/y]*[f(x, y(x))/x] + [(f(x, y(x))/y)
2
]*[f(x, y(x))]
= f
xx
+ 2f
xy
*f + f
yy
*f
2
+ f
y
*f
x
+ f
y
2
*f
y as sucesivamente, por lo tanto al aumentar el orden se complica la expresin de la
derivada (d
k
y/dx
k
).
Los mtodos de Taylor de orden superior proporcionan una convergencia rpida,
pero su implementeacin es complicada, ya que es preciso calcular los valores
aproximados de las derivadas de la solucin. El mtodo de Euler en cambio es muy
sencillo de aplicar, pero sin embargo su convergencia es lenta. Es interesante entonces
obtener mtodos nmericos ms secillos que de Taylor, pero cuya convergencia sea
rpida.
Si la funcin f depende slo de la variable x, f(x, y) = f(x), existen frmulas
nmericas, que tienen una convergencia ms rpida que la que se obtiene con el mtodo
de Euler. As, si el problema que se quiere aproximar es:
[ y' = f(x); y(x
0
) = y
0
]
la solucin que se busca se puede expresar de la forma:
y(x) = y
0
+ l
x
x0
f(s)ds
Para obtener un valor aproximado en un punto x*, se puede aplicar, por ejemplo, la
regla del punto medio del clculo integral:
z
n+1
= z
n
+ h*f(x
n
+ h/2).
En este caso el error global que se comete es de orden 2, con lo cual aunque la
formula es tan sencilla como la de Euler, la convergencia es mejor.
El problema en esta formula es obtener el valor de y(x
n
+ h/2). Runge pens que se
podra sustituir este valor por el valor aproximado obtenido al aplicar la frmula de
Euler con un tamao del paso que fuera la mitad del valor de h, de manera que
y(x
n
+h/2) se sustituye por:
z
n
+ (h/2)*f(x
n
, z
n
)
con lo cual la frmula resultante obtenida es:
z
n+1
= z
n
+ h*f(x
n
+ (h/2), z
n
+ (h/2)*f(x
n
, z
n
))
Otra frmula del mismo tipo es:
z
n+1
= z
n
+ (h/2)[f(x
n
, z
n
) + f(x
n
+ h, z
n
+ h*f(x
n
, z
n
))
En este caso se ha sustituido en la frmula de Euler el valor de la funcin f en el
punto (x
n
, z
n
) por la media aritmtica de los valores de f en los puntos (x
n
, z
n
) y (x
n+1
, z
n+1
).
Las dos frmulas anteriores tienen una convergencia ms rpida que la del mtodo
de Euler, ya que en ambos casos la convergencia es de orden 2.
La generalizacin de estas frmulas con vistas a la obtenin de algoritmos con orden
de convergencia mayor evitando el clculo de las derivadas dio lugar al desarrollo, desde
finales del siglo XIX, de los mtodos de Runge Kutta, en los que el clculo de las
derivadas se sustituye por distintas evaluacines de la funcin f(x, y), ms fciles de
programar.
En el caso del mtodo de Runge Kutta, lo ms comn es solucionarlos con un orden
de 4, un ejemplo de esto es con los datos siguientes:
Realizar el siguiente problema por mtodo de Rugen-Kutta con los siguientes datos y
frmulas:
Para clcular la constante k
1
sustituimos h, x
0
, y
0
en la frmula:
k 1=(0.1)(2)(
1
3
3
)=0.06667
Sustituimos k
1
y los valores antes mencionados ( h, x
0
, y
0
) en la formula de k
2
:
k 2=(0.1)(2)(
(1
3
+0.05)
(3+0.03334)
)=0.06923153
Sustituimos k
2
y los valores antes mencionados (h, x
0
, y
0
) en la frmula de k
3
:
k 3=(0.1)(2)(
(1
3
+0.05)
(3+0.034615765)
)=0.069201512
Sustituimos k
3
y los valores antes mencionados (h, x
0
, y
0
) en la frmula de k
4
:
k 4=(0.1)(2)(
(1
3
+0.1)
(3+0.069201512)
)=0.071679881
Finalmente sustituimos los valores de las 4 constantes para determinar y
1
:
y1=3+(
((0.06667)+(0.13846306)+(0.138403024)+(0.071679881))
6
)=3.069201994
En base a estas formulas y lo obtenido se pudo crear la siguiente tabla donde se soluciona
el problema:
y(1) = 3
h = 0.1
y' = (2x
3
)/y
1<x<2
x
0
= 1
y
0
= 3
Y
n+1
= y
n
+ (k
1
+ 2k
2
+ 2k
3
+ k
4
)/6
k
1
= h*f(x,y)
k
2
= h*f(x+(h/2), y+(k
1
/2))
k
3
= h*f(x+(h/2), y+(k
2
/2))
k
4
= h*f(x+h, y+k
3
)
As es como se resuelve una ecacin por mtodo de Rugen Kutta.
x y
1 3 0.0666666667 0.0692307692 0.0692015209 0.0716798811
1.1 3.0692018547 0.0867326467 0.0887370121 0.0887084498 0.0906295532
1.2 3.1579107086 0.1094394465 0.1106881129 0.1106666063 0.1118529454
1.3 3.2685776803 0.1344315611 0.1347205711 0.1347147353 0.1349869314
1.4 3.4032925312 0.1612556061 0.1603940235 0.1604138589 0.1596091085
1.5 3.5637059444 0.189409567 0.1872397746 0.1872953167 0.185283862
1.6 3.7509998797 0.2183951016 0.2148076659 0.214907527 0.2116035283
1.7 3.9659047157 0.2477618779 0.2427022059 0.2428524281 0.2382175939
1.8 4.208752839 0.2771367302 0.2706034233 0.2708069124 0.2648474551
1.9 4.4795536484 0.3062358681 0.2982728163 0.2985293859 0.2912883661
2 4.7780750882 0.3348628832 0.3255480486 0.3258549216 0.3174024716
k
1
= h*f(x,y) k
2
= h*f(x+(h/2), y+(k
1
/2)) k
3
= h*f(x+(h/2), y+(k
2
/2)) k
4
= h*f(x+h, y+k
3
)

Potrebbero piacerti anche