Sei sulla pagina 1di 10

MTODO DE RUNGE KUTTA

Los mtodos de Runge-Kutta son una serie de mtodos numricos usados para
encontrar aproximaciones de las soluciones de ecuaciones diferenciales y
sistemas de ecuaciones diferenciales, lineales y no lineales.

Veremos los mtodos de Runge-Kutta en detalle y sus principales variantes en las


siguientes secciones.

Mtodos lineales a un paso

Son mtodos numricos que para avanzar un paso, slo dependen del paso
anterior, es decir el paso n+1 solo depende del paso n o, con ms precisin, son
mtodos de la forma

x n+1=x n + F ( x n , t n , h )

x 0=x (0)

Dnde:

x n = un vector R
n

t n = es la variable independiente

h = el tamao del paso

xn tn
F es una funcin vectorial (posiblemente no lineal) : , , h , ie.

F: Rn+2 Rn

Ntese que lo que tenemos es en realidad un sistema de n ecuaciones.

Existen otros mtodos llamados multipaso, en los que para avanzar un paso se
requiere una funcin de dos o ms pasos anteriores, as como existen mtodos no
lineales, no trataremos de ellos aqu.

TEORA EN EXTENSIN

Los mtodos de Runge-Kutta son una especializacin de los mtodos numricos a


un paso. Fundamentalmente, lo que caracteriza a los mtodos de Runge-Kutta es
que el error en cada paso i es de la forma
n
Ei=Ch

Siendo C una constante real positiva, al nmero k se le llama orden del mtodo y h
ya sabemos que es el tamao del paso en cada nodo.

En los mtodos de Runge-Kutta se llama etapas a las sucesivas evaluaciones de


la funcin f en cada paso. El nmero de etapas de un mtodo de Runge-Kutta es
el nmero de veces que la funcin es evaluada en cada paso i, Este concepto es
importante porque evaluar la funcin requiere un coste computacional (a veces
alto) por tanto se prefieren mtodos con el menor nmero posible de etapas.

Un primer ejemplo es el mtodo de Euler que es de la forma.

EL MTODO DE EULER (RUNGE-KUTTA DE ORDEN 1)

x n+1=x n +h f ( x n , t n)

En dicho mtodo el error es de la forma e Ch y por tanto el mtodo de Euler es


de orden 1

Observacin: La funcin se evala 1 vez en cada paso, nmero de etapas: 1.

Un ejemplo de un mtodo de orden 2 es el mtodo del punto medio o tambin


regla del punto medio, que es de la forma

EL MTODO DEL PUNTO MEDIO (RUNGE-KUTTA DE ORDEN 2)

h h
x n+1=x n +h f ( x n+ f ( x n ,t n ) , t n + )
2 2

2
En dicho mtodo el error es de la forma e Ch y por tanto el mtodo del
punto

medio es de orden 2.

Observacin: El nmero de veces que se evala la funcin en cada paso del


mtodo es 2, nmero de etapas: 2.

RUNGE-KUTTA ESTNDAR DE ORDEN 4 (RUNGE-KUTTA DE ORDEN 4)

h
x n+1=x n + (k 1 +2 k 2 +2 k 3 +k 4)
6
Dnde:

k 1=f ( x n , t n )

hk 1 h
k 2=f ( x n + , t n+ )
2 2

hk 2 h
k 3 =f ( x n + , t n+ )
2 2

k 4=f (x n+ hk 3 ,t n +h)

Ahora el error es de la forma e Ch 4 y por tanto el mtodo es de orden 4.

Observacin: El nmero de veces que se evala la funcin en cada paso del


mtodo es 4, nmero de etapas: 4.

GRFICAS DEL ERROR PARA ESTOS MTODOS

Grfica en escala Logartmica error frente al tamao de paso de los 3 mtodos


que veremos aqu:

- En rojo el mtodo de Euler.

- En verde el mtodo del Punto medio de orden 2.

- En negro el R/k Clsico de orden 4.


Obsrvese la diferencia de pendiente, que aumenta en funcin del orden del
mtodo.

Podemos adoptar la siguiente definicin como mtodos Runge-Kutta:

Un mtodo Runge-Kutta de s etapas y de orden p es un mtodo numrico de la


forma:
s
x n+1=x n +h ( bi k i
i=1
) Con

s
k i=f ( x n + a ij k k , t n+ hci )
j=1

Y el error cumple la condicin

ti x i 0
Max |x ( )- ch t

Es decir para dar un mtodo de Runge-Kutta, tenemos que dar los nmeros:

bi , c i , aij .

Es decir s 2 +2 s nmeros.

Una particularidad interesante de los mtodos Runge-Kutta es que no necesitan


calcular derivadas de la funcin f para avanzar. El precio a pagar por ello es el de
evaluar ms veces la propia funcin f con el consiguiente coste de operaciones.

TEOREMA DE CONVERGENCIA DE LOS MTODOS DE RUNGE-KUTTA

Si F es Lipschitz en x

Entonces:

ti xi Lb
Max |x ( )- | k ( e 1 /L

Donde L es la constante de Lipschitz de F y k es el error de Truncacin local del


mtodo.

Un mtodo ser ms eficiente en la medida que podamos reducir el nmero de


etapas, manteniendo el orden, por ejemplo entre un mtodo de 3-Etapas con
orden 3 y otro de 4-etapas con orden 3, es mucho ms interesante el primero que
el segundo ya que si tomamos un paso h, el nmero de clculos a realizar ser
menor para el primero de los mtodos.

TABLEROS DE BUTCHER

Dado un mtodo de Runge-kutta, construimos un tablero de la forma

ci aij

bi

O bien, se puede escribir el tablero de Butcher como

C B

M sxs Rs , C RS
Donde A , b

Por ejemplo, el tablero de Butcher para el mtodo de Euler es

1 0
1

Para la regla del punto medio de orden 2.

0 0

0 1

Y para el Runge-Kutta standar de orden 4.

1 0 0 1

1/6 1/3 1/3 1/6

Un mtodo de Runge-Kutta se dice que es consistente si el error de truncacin


global tiende a cero cuando el tamao del paso tiende a cero.

Se puede demostrar que una condicin necesaria y suficiente para la consistencia


de un mtodo de Runge-Kutta es que la suma de los bi's sea igual a 1, es decir si
se cumple
S

1= bi
i=1

s s

Adems el mtodo ser de orden 2 si cumple que 1 = 2 ai b j


j=1 i=1

Se pueden dar condiciones anlogas para mtodos con orden 3, 4,

MTODOS DE RUNGE-KUTTA EXPLCITOS

En un mtodo de Runge-Kutta explcito, los ki dados en la definicin no aparecen


como funcin de ellos mismos, aparecen despejados. De modo ms un poco ms
preciso, en un mtodo de Runge-Kutta explcito, la matriz A del tablero de Butcher
es "casi 'triangular inferior'", con lo que queremos decir que es triangular inferior y
adems su diagonal tambin est formada por ceros.

TEOREMA

Un mtodo de Runge-Kutta explcito de s etapas no puede tener un orden mayor


que s.

Se sabe que no que hay mtodos de Runge-Kutta explcitos de s etapas con


orden s, para s mayor o igual que 5.

Adems se sabe que no hay mtodos de Runge-Kutta explcitos de s etapas con


orden s - 1, para s mayor o igual que 7.

EJERCICIO EXPICATIVO

Usar el mtodo de runge-kutta para aproximar y (2.2) dada la ecuacin diferencial.

y`= x + y

y (2) = 4

Solucin:

Igual que siempre, tomamos h = 0.1 y llegaremos a la aproximacin en dos pasos.

Con esta aclaracin, tenemos los siguientes datos:

x 0=2

y 0=4
h=0.1

f ( x , y ) =x+ y

PRIMERA INTERACCIN:

x 1=x 0+ h=2+0.1=2.1

k 1=h f ( x 0 , y 0 ) =0.1 (2+ 4 )=0. 6

1 1
( )
k 2=hf x 0 + h , y 0+ k 1 =0.1 ( 2.05+ 4.3 )=0.635
2 2

1 1
( )
k 3 =hf x 0 + h , y 0+ k 2 =0.1 ( 2.05+ 4.3 175 )=0.6367 5
2 2

k 4=hf ( x 0 +h , y 0 +k 3 ) =0.1 (2.1+ 4.63675 )=0.67367 5

1
y 1 = y 0+ ( k 1 +2 k 2 +2 k 3 +k 4 ) =4.636 2
6

SEGUNDA INTERACCION:

x 2=x 1+ h=2 .1+ 0.1=2. 2

k 1=h f ( x 1 , y 1 )=0.1 ( 2 .1+ 4.6362 )=0.6 7362

1 1
( )
k 2=hf x 1+ h , y 1 + k 1 =0.1 ( 2.15+ 4.97301 )=0.7123
2 2

1 1
( )
k 3 =hf x 1+ h , y 1 + k 2 =0.1 ( 2.1 5+4.9923 5 )=0.71424
2 2

1
y 2 = y 1+ ( k 1 +2 k 2 +2 k 3 +k 4 )=5.34982
6

Concluimos entonces que el valor buscado es:


Y (2,2) 5.34982

MATLAB
Esto se crea en otra pestaa con el nombre de f1

function ye=f1(x,y)
ye=x*y+1;

Esto tambin se crea en una diferente pestaa a la de arriba:

clear x,y;
x0=0;
y0=21;
xf=10;
n=20;
h=(xf-x0)/n;
i=1;
x(i)=x0;
y(i)=y0;
while i<=n
k1=h*f1(x0,y0);
k2=h*f1(x0+h/2,y0+k1/2);
k3=h*f1(x0+h/2,y0+k2/2);
k4=h*f1(x0+h,y0+k3);
km=(k1+2*k2+2*k3+k4)/6;
y1=y0+km;
x1=x0+h;
i=i+1;
x(i)=x1;
y(i)=y1;
x0=x1;
y0=y1;
disp([y1])
end
plot(x,y)
grid on
%disp([x1])
%disp([y1])
title('Mtodo de Runge Kutta de cuarto orden')

Potrebbero piacerti anche