10
MÉTODO DE RUNGE – KUTTA Sin entrar en mucho detalle, mencionamos solamente que el método de Runge-Kutta cambia la dirección en el sentido de que no sigue la misma línea de los métodos de Euler. De hecho está basado en una aplicación de los polinomios de Taylor. Comentamos sin embargo, que el método de Runge-Kutta si contiene como casos especiales los de Euler. Las fórmulas Donde Los métodos desarrollados por Runge (1885), Kutta (1901), Heun (1900) y otros para la solución de problemas con valor en la frontera. Este consiste en obtener un resultado que se obtendría al utilizar un número finito de términos de una serie de Taylor de la forma: Este método es superior al método de punto medio (Runge-Kutta de segundo orden) ya que contiene los primeros cinco términos de la serie de Taylor, lo cual significa gran exactitud sin el cálculo de las derivadas, pero se tiene que evaluar la función f(x) cuatro veces para cada sub intervalo. Reacomodando para los valores de f(x) y haciendo f(x)' = y + hf(x), se tiene:

ecuaciones-diferenciales.doc

Embed Size (px)

Citation preview

Page 1: ecuaciones-diferenciales.doc

MÉTODO DE RUNGE – KUTTA 

Sin entrar en mucho detalle, mencionamos solamente que el método de Runge-Kutta cambia la dirección en el sentido de que no sigue la misma línea de los métodos de Euler. De hecho está basado en una aplicación de los polinomios de Taylor.

Comentamos sin embargo, que el método de Runge-Kutta si contiene como casos especiales los de Euler. 

Las fórmulas

Donde 

 

Los métodos desarrollados por Runge (1885), Kutta (1901), Heun (1900) y otros para la solución de problemas con valor en la frontera. Este consiste en obtener un resultado que se obtendría al utilizar un número finito de términos de una serie de Taylor de la forma:

Este método es superior al método de punto medio (Runge-Kutta de segundo orden) ya que contiene los primeros cinco términos de la serie de Taylor, lo cual significa gran exactitud sin el cálculo de las derivadas, pero se tiene que evaluar la función f(x) cuatro veces para cada sub intervalo.

Reacomodando para los valores de f(x) y haciendo f(x)' = y + hf(x), se tiene:

Las reglas o fórmulas de Runge-Kutta de orden cuatro para la ecuación diferencial:

Ejemplo 1: Usar el método de Runge-Kutta para aproximar

Page 2: ecuaciones-diferenciales.doc

dada la siguiente ecuación diferencial:

Primero, identificamos el mismo ejemplo 1 de los dos métodos anteriores. Segundo, se procede con los mismos datos:

Para poder calcular el valor de , debemos calcular primeros los valores de

Se tiene entonces que: 

con el fin de un mayor entendimiento de las fórmulas, vea la siguiente iteración:

El proceso debe repetirse hasta obtener: iEn la siguiente tabla, se resumen los resultados de las iteraciones:

Page 3: ecuaciones-diferenciales.doc

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

Finalmente se calcula el error relativo verdadero:

Con lo cual se ve que efectivamente se ha reducido mucho el error relativo. De hecho se observa que tenemos 6 cifras significativas en la aproximación!

Ejemplo: Usar el método de Runge-Kutta para aproximar   dada la ecuación diferencial:

Igual que siempre, si se toma:     se llega a la aproximación en dos pasos.

Con esta aclaración, se tienen los siguientes datos:

Primera Iteración:

Segunda iteración:

Page 4: ecuaciones-diferenciales.doc

Entonces que el valor buscado es:

 

 

 

Se conocen como las reglas o fórmulas de Runge-Kutta de orden cuatro para la ecuación diferencial: 

Ejemplo 1Usar el método de Runge-Kutta para aproximar dada la siguiente ecuación diferencial: 

 

SoluciónPrimero, identificamos el mismo ejemplo 1 de los dos métodos anteriores. Segundo, procedemos con los mismos datos: 

 

Para poder calcular el valor de , debemos calcular primeros los valores de ,

, y . Tenemos entonces que: 

 

 

Page 5: ecuaciones-diferenciales.doc

 

 

 

Con el fin de un mayor entendimiento de las fórmulas, veamos la siguiente iteración: 

 

 

 

 

El proceso debe repetirse hasta obtener . Resumimos los resultados en la siguiente tabla: 

n

0 0 1

1 0.1 1.01005

2 0.2 1.04081

3 0.3 1.09417

4 0.4 1.17351

5 0.5 1.28403

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

 

Finalmente, calculamos el error relativo verdadero: 

Page 6: ecuaciones-diferenciales.doc

 

Con lo cual vemos que efectivamente se ha reducido muchísimo el error relativo. De hecho observamos que tenemos 6 cifras significativas en la aproximación!

Ejemplo 2Usar el método de Runge-Kutta para aproximar dada la ecuación diferencial: 

  SoluciónIgual que siempre, tomamos y llegaremos a la aproximación en dos pasos.Con esta aclaración, tenemos los siguientes datos:

 

Primera Iteración: 

 

 

 

 

 

 

Segunda Iteración:

 

 

 

 

Page 7: ecuaciones-diferenciales.doc

 

 

Concluimos entonces que el valor buscado es:

EJERCICIOS 

1.  Dada la ecuación diferencial: 

 

Usa el método de Euler para aproximar tomando en cada paso del proceso iterativo.

Solución: . 

2.  Dada la ecuación diferencial: 

 

Usa el método de Euler para aproximar tomando en cada paso del proceso iterativo.

Solución: . 

3.  Dada la ecuación diferencial: 

 

Usa el método de Euler mejorado para aproximar tomando en cada paso del proceso iterativo.

Solución:  

4.  Dada la ecuación diferencial: 

 

Page 8: ecuaciones-diferenciales.doc

Usa el método de Euler mejorado para aproximar tomando en cada paso del proceso iterativo.

Solución:

5.  Dada la ecuación diferencial:

 

Usa el método de Runge-Kutta para aproximar tomando en cada paso del proceso iterativo.

Solución:  

6.  Dada la ecuación diferencial:

 

Usa el método de Runge-Kutta para aproximar tomando en cada paso del proceso iterativo.

Solución:

PROGRAMACION DE METODO EN MATLAB

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

Esto también se crea en una diferente pestaña 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

Page 9: ecuaciones-diferenciales.doc

   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])endplot(x,y)grid on%disp([x1])%disp([y1])title('Método de Runge Kutta de cuarto orden')