Método de RKKF
Método de RKKF
Método de RKKF
Métodos de Runge-Kutta
En la sección anterior vimos los métodos de Taylor que tienen un error de truncamiento
de orden alto, pero tienen la desventaja de requerir el cálculo y evaluación de las derivadas
de f(x, y), este es un procedimiento lento y complicado motivo por el cual rara vez se
emplean. Los métodos de Runge Kutta tienen error de truncamiento alto, pero permiten
prescindir del c´alculo y evaluaci´on de las derivadas.
El primer paso para derivar el M´etodo de Runge-Kutta , es determinar los valores
a,b y c con la propiedad de que af(x + b, y + c) aproxima a para p = 2
h
T (2) (x, y) = f (x, y) + f ′ (x, y)
2
h ∂f h ∂f
T (2) (x, y) = f (x, y) + (x, y) + (x, y).f (x, y) (3.1)
2 ∂x 2 ∂y
Al desarrollar f (x + b, y + c) en su polinomio de Taylor grado uno alrededor de (x,y) se
obtiene
∂f ∂f
af (x + b, y + c) = af (x, y) + ab (x, y) + ac (x, y).f (x, y) + aR1 (x + b, y + c) (3.2)
∂x ∂y
donde
b2 ∂ 2 f ∂2f c2 ∂ 2 f
R1 (x + b, y + c) = (ǫ, µ) + bc (ǫ, µ) + (ǫ, µ)
2 ∂x2 ∂x∂y 2 ∂y 2
para ǫ entre x y x + b, µ entre y y y + c
h
Al igualar los coeficientes de las ecuaciones (3.1) y (3.2) obtenemos a = 1 b = 2
y
21
c = h2 f (x, y)
En consecuencia
µ ¶ µ ¶
(2) h h h h
T (x, y) = f x + , y + f (x, y) − R1 x + , y + f (x, y)
2 2 2 2
donde
h h h2 ∂ 2 f h2 ∂2f h2 2
2 ∂ f
R1 (x + , y + f (x, y)) = (ǫ, µ) + f (x, y) (ǫ, µ) + (f (x, y)) (ǫ, µ)
2 2 8 ∂x2 4 ∂x∂y 8 ∂y 2
El método que resulta de sustituir T (2) (x, y) por f x + h2 , y + h2 f (x, y) en el método de
¡ ¢
h h
yn+1 = yn + hf (xn + , yn + f (xn , yn )) (3.3)
2 2
n = 0, 1, 2, . . . (3.4)
Solo tres parámetros se encuentran en af (x+b, y +c) y los tres se requieren en la igualdad
con T (2) ,necesitamos una forma mas compleja para cumplir las condiciones que requiere
cualquiera de los métodos de Taylor de orden superior.
La forma más apropiada de cuatro parámetros con que se aproxima
h h2
T (3) (x, y) = f (x, y) + f ′ (x, y) + f ′′ (x, y)
2 6
es
af (x, y) + bf (x + c, y + df (x, y)) (3.5)
y ni siquiera con esto se tiene la suficiente flexibilidad para igualar el término
¸2
h2 ∂f
·
(x, y) f (x, y)
6 ∂y
h2 ′′
resultante de la expansión de f (x, y)
6
Por lo tanto, lo mejor que podemos lograr utilizando son métodos con el error local
de truncamiento O(h2 ), sin embargo el hecho que tenga cuatro parámetros, da cierta
flexibilidad en su elección para derivar varios métodos O(h2 ). Uno de los más importantes
1
es el método modificado de Euler, que corresponde a seleccionar a = b = 2
yc=d=h
y se representa de la siguiente forma.
22
3.2. Método Modificado de Euler
1
yn+1 = yn + h [f (xn , yn ) + f (xn + h, yn + hf (xn , yn ))] (3.6)
2
n = 0, 1, 2, . . .
· ¸
1 2 2
yn+1 = yn + h f (xn , yn ) + 3f (xn + h, yn + hf (xn , yn )) (3.7)
4 3 3
n = 0, 1, 2, . . .
Ambos son métodos de Runge Kutta de orden dos, que es el orden de su error local de
truncamiento.
Aunque podemos aproximar T (3) (x, y) con el error O(h3 ) mediante una expresión de la
forma
f (x + a, y + df (x + b, y + cf (x, y)))
contiene cuatro parámetros, determinar los valores de a b c y d es complicada, de hecho
el método de Runge Kutta de orden tres que resulta de esta expresión no se emplea. El
método de Runge Kutta de mayor uso es el de cuarto orden
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) , n = 0, 1, 2, . . . (3.8)
6
donde
k1 = hf (xn , yn )
1 1
k2 = hf (xn + h, yn + k1 )
2 2
1 1
k3 = hf (xn + h, yn + k2 )
2 2
k4 = hf (xn + h, yn + k3 )
23
3.4.1. Algoritmo del Método de Runge-Kutta de Cuarto Orden
Este algoritmo calcula la solución del problema de valor inicial (1.1) en puntos
equidistantes x1 = x0 + h ,x2 = x0 + 2h, x3 = x0 + 3h, · · · , xN = x0 + N h, aquı́ f es
tal que (1.1) tiene una solución única en [x0 , xN ].
k1 = hf (xn , yn )
k2 = hf (xn + 12 h, yn + 21 k1 )
k3 = hf (xn + 12 h, yn + 21 k2 )
k4 = hf (xn + h, yn + k3 )
yn+1 = yn + 16 (k1 + 2k2 + 2k3 + k4 )
Salida xn+1 , yn+1
3. Parar
function y1=fe(x,y)
y1=x*exp(3*x)-2*y;
24
Ejemplo
Método
Valor exacto Runge-Kutta Error
xn y(xn ) yn |y(xn ) − yn |
1.0e-003 *
0.0 0 0 0
0.1 0.005752053971599 0.005754631311524 0.002577339924445
0.2 0.026812801841426 0.026818770596771 0.005968755345566
0.3 0.071144527666900 0.071155164515354 0.010636848453718
0.4 0.150777835474151 0.150795060680180 0.017225206029203
0.5 0.283616521867142 0.283643159044116 0.026637176974542
0.6 0.496019565629524 0.496059711486905 0.040145857380935
0.7 0.826480869814429 0.826540417642342 0.059547827913398
0.8 1.330857026396779 1.330944404473756 0.087378076976341
0.9 2.089774397011061 2.089901607341672 0.127210330611138
1.0 3.219099319039492 3.219283395463391 0.184076423899171
observamos que y(1) ≈ 3.219283395463391.
25
Si comparamos con el método de Euler
xi Euler h=0.1 euler h=0.025 Runge kutta solución exacta
4to orden
0 2.000000000000000 2.000000000000000 2.0000000000000000 2.0000000000000000
0.1 2.000000000000000 2.003687890625000 2.0048374999999998 2.0048374180359598
0.2 2.010000000000000 2.016651803662262 2.0187309014062498 2.0187307530779819
0.3 2.029000000000000 2.037998345826651 2.0408184220011774 2.0408182206817180
0.4 2.056100000000000 2.066920168424825 2.0703202889174905 2.0703200460356395
0.5 2.090490000000000 2.102687680219100 2.1065309344233798 2.1065306597126332
0.6 2.131441000000000 2.144641558442873 2.1488119343763148 2.1488116360940266
0.7 2.178296900000000 2.192185981095952 2.1965856186712287 2.1965853037914096
0.8 2.230467210000001 2.244782511051797 2.2493292897344279 2.2493289641172218
0.9 2.287420489000001 2.301944569199290 2.3065699912000754 2.3065696597405991
1.0 2.348678440100001 2.363232439887880 2.3678797744124984 2.3678794411714423