Método de Runge-Kutta

10

Click here to load reader

Transcript of Método de Runge-Kutta

Page 1: Método de Runge-Kutta

Método de Runge-Kutta

Los métodos de Runge-Kutta son un conjunto de métodos iterativos (implícitos y explícitos) para la aproximación de soluciones de ecuaciones diferenciales ordinarias, concretamente, del problema de valor inicial.

Estas técnicas fueron desarrolladas alrededor de 1900 por los matemáticos alemanes Carl David Tolmé Runge y Martin Wilhelm Kutta.

Uno de los métodos más utilizados es el método de Runge-Kutta de cuarto orden, el cual proporciona un pequeño margen de error con respecto a la solución real del problema, es fácilmente programable en un software para realizar las iteraciones necesarias y es sumamente útil para casos en los que la solución no puede hallarse por los métodos convencionales (como separación de variables).

El método se utiliza para resolver ecuaciones diferenciales de la forma explícita:

O en su forma implícita:

Hay variaciones en el método de Runge-Kutta de cuarto orden pero el más utilizado es el método en el cual se elige un tamaño de paso h y un número máximo de iteraciones n.

El método esta dado por la siguiente ecuación:

Donde:

Page 2: Método de Runge-Kutta

Así, el siguiente valor (yi+1) es determinado por el presente valor (yi) más el producto del tamaño 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 método de Runge-Kutta con h = 0.1 para aproximar y(2.2) tomando como numero de pasos n=2 dada la ecuación diferencial:

Solución

Primero, identificamos las condiciones iníciales, el intervalo y la función:

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

Page 3: Método de Runge-Kutta

Segunda iteración:

Resumimos los resultados en la siguiente tabla:

n Xn Yn0 0 11 0,1 4,63622 0,2 5,34982

Concluimos que el valor obtenido con el método de Runge-Kutta es:

Page 4: Método de Runge-Kutta

Ecuación diferencial de segundo orden

Para aplicar el procedimiento de Runge Kutta a una ecuación diferencial de segundo orden

Con las condiciones iníciales

Debemos saber que una ecuación 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 función.

Ejemplo

Las leyes de newton nos llevan a obtener la ecuación diferencial que describe el movimiento del péndulo. Generalmente esta se resuelve de manera analítica teniendo en cuenta la aproximación de ángulos pequeños, pero en este caso utilizaremos el método numérico llamado Runge Kutta cuatro para resolver la ecuación de movimiento sin ninguna restricción del ángulo de oscilación.

Page 5: Método de Runge-Kutta

La ecuación diferencial a resolver se obtiene a partir de la descomposición de fuerzas en el sistema como se muestra en el siguiente dibujo.

Para el problema no tendremos en cuenta los efectos de fricción, por consiguiente tenemos:

Para

Que corresponde a un péndulo cuya masa se suelta partiendo del reposo con un ángulo inicial a.

Podemos reescribir esta ecuación diferencial de segundo orden como un sistema de ecuaciones de primer orden.

Se tendrá el sistema de ecuaciones diferenciales de primer orden en forma canónica

Page 6: Método de Runge-Kutta

Los pasos de Runge Kutta serán:

Las ecuaciones que describen la posición angular y su velocidad serán

Programa de Runge-Kutta de orden cuatro

Este programa aproxima la solución 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:nit=i-1;x0=xs(i);x=x0;

Page 7: Método de Runge-Kutta

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);endfprintf('\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

Page 8: Método de Runge-Kutta

Respuesta y(0.5) = 3.218750