Sunteți pe pagina 1din 8

Mtodo de Runge-Kutta

Los mtodos de Runge-Kutta son un conjunto de mtodos iterativos (implcitos y explcitos) para la aproximacin de soluciones de ecuaciones diferenciales ordinarias, concretamente, del problema de valor inicial. Estas tcnicas fueron desarrolladas alrededor de 1900 por los matemticos alemanes Carl David Tolm Runge y Martin Wilhelm Kutta. Uno de los mtodos ms utilizados es el mtodo de Runge-Kutta de cuarto orden, el cual proporciona un pequeo margen de error con respecto a la solucin real del problema, es fcilmente programable en un software para realizar las iteraciones necesarias y es sumamente til para casos en los que la solucin no puede hallarse por los mtodos convencionales (como separacin de variables). El mtodo se utiliza para resolver ecuaciones diferenciales de la forma explcita:

O en su forma implcita:

Hay variaciones en el mtodo de Runge-Kutta de cuarto orden pero el ms utilizado es el mtodo en el cual se elige un tamao de paso h y un nmero mximo de iteraciones n.

El mtodo esta dado por la siguiente ecuacin:

Donde:

As, el siguiente valor (yi+1) es determinado por el presente valor (yi) ms el producto del tamao del intervalo (h) por una pendiente estimada. La pendiente es un promedio ponderado de pendientes: k1 = Pendiente al principio del intervalo k2 = Pendiente en el punto medio del intervalo, usando k1 para determinar el valor de y en el punto xi + h/2. k3 = Pendiente en el punto medio del intervalo, usando k2 para determinar el valor de y. k4 = Pendiente al final del intervalo, con el valor de y determinado por k3 Promediando las cuatro pendientes, se le asigna mayor peso a las pendientes en el punto medio:

Ejemplo Usar el mtodo de Runge-Kutta con h = 0.1 para aproximar y(2.2) tomando como numero de pasos n=2 dada la ecuacin diferencial:

Solucin Primero, identificamos las condiciones inciales, el intervalo y la funcin:

Para poder calcular el valor de y1, debemos calcular primeros los valores de k1, k2, k3, k4 Tenemos entonces que para la primera iteracin:

Segunda iteracin:

Resumimos los resultados en la siguiente tabla:

n 0 1 2

Xn 0 0,1 0,2

Yn 1 4,6362 5,34982

Concluimos que el valor obtenido con el mtodo de Runge-Kutta es:

Ecuacin diferencial de segundo orden

Para aplicar el procedimiento de Runge Kutta a una ecuacin diferencial de segundo orden

Con las condiciones inciales

Debemos saber que una ecuacin diferencial de segundo orden es equivalente a un sistema de dos ecuaciones diferenciales de primer orden, por lo que aplicaremos el mismo esquema.

En la primera columna, las variables k1, k2, k3, k4 pueden calcularse directamente sin efectuar llamadas a una funcin. Ejemplo Las leyes de newton nos llevan a obtener la ecuacin diferencial que describe el movimiento del pndulo. Generalmente esta se resuelve de manera analtica teniendo en cuenta la aproximacin de ngulos pequeos, pero en este caso utilizaremos el mtodo numrico llamado Runge Kutta cuatro para resolver la ecuacin de movimiento sin ninguna restriccin del ngulo de oscilacin.

La ecuacin diferencial a resolver se obtiene a partir de la descomposicin de fuerzas en el sistema como se muestra en el siguiente dibujo.

Para el problema no tendremos en cuenta los efectos de friccin, por consiguiente tenemos:

Para

Que corresponde a un pndulo cuya masa se suelta partiendo del reposo con un ngulo inicial a. Podemos reescribir esta ecuacin diferencial de segundo orden como un sistema de ecuaciones de primer orden.

Se tendr el sistema de ecuaciones diferenciales de primer orden en forma cannica

Los pasos de Runge Kutta sern:

Las ecuaciones que describen la posicin angular y su velocidad sern

Programa de Runge-Kutta de orden cuatro

Este programa aproxima la solucin del problema de valor inicial fprintf('\n \t RESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO DE RUNGE-KUTTA DE ORDEN 4\n') f=input('\n Ingrese la ecuacion diferencial\n','s'); x0=input('\n Ingrese el primer punto x0:\n'); x1=input('\n Ingrese el segundo punto x1:\n'); y0=input('\n Ingrese la condicion inicial y(x0):\n'); n=input('\n Ingrese el numero de pasos n:\n'); h=(x1-x0)/n; xs=x0:h:x1; fprintf('\n''it x0 y(x1)'); for i=1:n it=i-1; x0=xs(i); x=x0;

y=y0; k1=h*eval(f); x=x0+h/2; y=y0+k1/2; k2=h*eval(f); x=x0+h/2; y=y0+k2/2; k3=h*eval(f); x=x0+h; y=y0+k3; k4=h*eval(f); y0=y0+(k1+2*k2+2*k3+k4)/6; fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0); end fprintf('\n El punto aproximado y(x1) es = %8.6f\n',y0);

Ejemplo Dada la ecuacion diferencial y'=-2x^3+12x^2-20x+8.5, usando el metodo de Runge-Kutta de orden cuarto hallar la aproximacion de y(0.5) tomando como numero de pasos n=5, si la condicion inicial es y(0)=1

Respuesta y(0.5) = 3.218750

S-ar putea să vă placă și