Está en la página 1de 43

DEPARTAMENTO DE INGENIERÍA

QUÍMICA, BIOTECNOLOGÍA
Y MATERIALES
FACULTAD DE CIENCIAS
FÍSICAS Y MATEMÁTICAS
UNIVERSIDAD DE CHILE

IQ4112 - Métodos Matemáticos para Ingeniería de Procesos


Capítulo 4: Ecuaciones diferenciales ordinarias
Segunda parte: Métodos Runge Kutta

J. Cristian Salgado - jsalgado@ing.uchile.cl

Departamento de Ingeniería Química, Biotecnología y Materiales


Universidad de Chile

Semestre Otoño 2023


Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Indicadores de logro

Al término de esta unidad el o la estudiante


dentifica y analiza las características de los sistemas de ecuaciones diferenciales ordinarias, relacionándolas con la
ingeniería de procesos.
Selecciona y aplica algoritmos para resolver EDOs en base a las características del sistema de EDO.
Resuelve EDOs asociados a problemas del área de ingeniería de procesos.
Analiza los resultados de las simulaciones numéricas de modelos basados en ODEs desde un punto de vista
numérico, matemático y de ingeniería de procesos.
Utiliza conceptos extraídos de diversas lecturas en inglés y español, para la resolución de problemas en el contexto
de la ingeniería de procesos.
Reporta por escrito, de forma clara y coherente, los resultados de la selección y aplicación de algoritmos en el
contexto de las ecuaciones diferenciales ordinarias.

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Problema de valor inicial - ODEs

El objetivo es calcular la trayectoria en el tiempo de un conjunto de N variables xj (t) gobernadas por un sistema de
ecuaciones diferenciales de primer orden

dx
= ẋ = f(x) x(t0 ) = x[0] (1)
dt
Reglas iterativas para actualizar la trayectoria.
Se desea que la trayectoria numérica aproxime la solución exacta:
Z t
x(t) = x[0] + f(x(t0 )) dt0 (2)
t0

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Ejemplo: Reactor batch

Considere un reactor batch donde ocurren las siguientes reacciones:

A + B −→ C rR1 = k1 CA CB
C + B −→ D rR2 = k2 CC CB

En t0 = 0 el sistema tiene las siguientes concentraciones iniciales:

CA (t0 ) = CA0 CB (t0 ) = CB0 CC (t0 ) = CD (t0 ) = 0

El modelo diferencial que describe la evolución temporal de estas variables es:

dCA dCB
= −rR1 = −rR1 − rR2 (3)
dt dt
dCC dCD
= rR1 − rR2 = rR2 (4)
dt dt
Sea x el vector de estados del sistema:
x = [CA CB CC CD ]T

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Ejemplo: Reactor batch


Luego, es posible reescribir el sistema de EDOs:
ẋ1 = −k1 x1 x2 = f1 (x;k1 ,k2 ) (5)
ẋ2 = −k1 x1 x2 − k2 x3 x2 = f2 (x;k1 ,k2 ) (6)
ẋ3 = +k1 x1 x2 − k2 x3 x2 = f3 (x;k1 ,k2 ) (7)
ẋ4 = +k2 x3 x2 = f4 (x;k1 ,k2 ) (8)
Sea Θ el vector de parámetros
Θ = [k1 k2 ]T (9)
El sistema escrito en forma estándar queda como:
ẋ = f(x;Θ) x(t0 ) = x[0] (10)

Preguntas
¿Este problema es general?
¿Qué sucede si f depende de t?
¿Qué sucede si el orden de las derivadas es superior a 1?
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

¿Qué sucede si f depende de t?

Suponga que el problema esta descrito por:

ẋ = f(t,x;Θ) x(t0 ) = x[0] (11)

Si incorporamos t en el vector de estados:


x1 f1

  
 x2   f2 
 .  .
y=
 .. 
 g=
 .. 
 (12)
xN fN
   
t 1
Se obtiene un sistema en la forma estándar:

x[0]
 
ẏ = g(y;Θ) y(t0 ) = y[0] = (13)
t0

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

¿Qué sucede si el orden de las derivadas es superior a 1?

Suponga que el problema esta descrito por:

d2 u du
a2 (u,t) + a1 (u,t) + a0 (u,t) = 0 (14)
dt2 dt
Sea el vector de estados: • ˜T
du
x= u t (15)
dt
y reescribimos el ODE como:
dx2
a2 (x1 ,x3 ) + a1 (x1 ,x3 )x2 + a0 (x1 ,x3 ) = 0 (16)
dt
Si a2 (x1 ,x3 ) 6= 0, podemos obtener un problema en la forma estándar:
   
x˙1 x2
ẋ = x˙2  = −[a1 (x1 ,x3 )x2 + a0 (x1 ,x3 )]/a2 (x1 ,x3 ) (17)
x˙3 1

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Ejemplos

(a) https://www.youtube.com/watch?v=dtHwS2VJt5o

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Métodos Runge-Kutta

Considere la siguiente ecuación diferencial


dy
= f (x,y) y(x0 ) = y0 (18)
dx

Los métodos de la familia Runge Kutta pueden alcanzar la exactitud de los métodos basados en las series de Taylor sin la
necesidad de calcular derivadas de alto orden.

En general se expresan mediante la siguiente ecuación:

y[i+1] = y[i] + φ(xi ,y[i] ,h) h (19)


xi+1 = xi + h (20)

donde φ(xi ,y[i] ,h) se conoce como función de incremento.

φ = a1 k1 + a2 k2 + ··· + an kn (21)

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Métodos Runge-Kutta
En la función de incremento
φ = a1 k1 + a2 k2 + ··· + an kn (22)
ai son constantes y ki pueden ser calculadas de la siguiente manera:

k1 = f (xi ,y[i] ) (23)


k2 = f (xi + p1 h, y[i] + q1,1 k1 h) (24)
[i]
k3 = f (xi + p2 h, y + q2,1 k1 h + q2,2 k2 h) (25)
..
. (26)
[i]
kn = f (xi + pn−1 h, y + qn−1,1 k1 h + qn−1,2 k2 h + ··· + qn−1,n−1 kn−1 h) (27)

Note bien que:


Las k’s son calculadas mediante relaciones recurrentes
Los distintos ordenes para los métodos de Runge-Kutta aparecen al seleccionar n

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Método de Euler
(Runge-Kutta con n = 1)

Para n = 1,

φ = a1 k1 = a1 f (xi ,y[i] ) (28)

se obtiene el método de Runge-Kutta de orden 1:

y[i+1] = y[i] + a1 f (xi ,y[i] )h

Seleccionando a1 = 1, la expresión anterior equivale al


método de Euler (Euler-Cauchy o point/slope).

y[i+1] = y[i] + f (xi ,y[i] )h

Note que f (xi ,y[i] ) provee un estimado directo de la derivada en xi utilizando una estimación FFD.

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Análisis de error del método de Euler

La solución numérica de una ODE está asociada a dos tipos de error:


Errores de truncamiento (técnicas para aproximar el valor de y)
Errores de truncamiento locales
Errores de truncamiento propagado
Errores de redondeo (representación numérica en los computadores)

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Análisis de error del método de Euler


Notar bien que...

La expansión de Taylor sólo permite estimar el


error de truncamiento local
No permite estimar el error de truncamiento
propagado ni el global.
Para el método de Euler el error de truncamiento
local es proporcional a h2 .

f (xi ,y[i] )0 2
ETEuler ≈ h = O(h2 )
2!

El error puede ser reducido al disminuir h


Para funciones lineales este método está libre de
error.
Se puede demostrar que para este método el
error global es O(h)
Para el detalle de la determinación del orden del método de Euler ver: Análisis de error del método de Euler
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Runge-Kutta de segundo orden


El método de R-K de segundo orden equivale a:

y[i+1] = y[i] + (a1 k1 + a2 k2 )h (29)

donde,

k1 = f (xi , y[i] ) (30)


[i]
k2 = f (xi + p1 h, y + q1,1 k1 h) (31)

Notar bien que:


Los valores de a1 , a2 , p1 y q1,1 se obtienen igualando la ecuación principal con una expansión de Taylor de segundo orden. Mediante este
procedimiento se deducen las siguientes expresiones:
a1 + a2 = 1
a1 p1 = 1/2
a2 q1,1 = 1/2
Eligiendo un valor para a2 se obtienen valores para el resto de los parámetros.

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Método de Heun, predictor-corrector


Runge-Kutta de segundo orden con a2 = 1/2

Eligiendo a2 = 1/2 se obtiene:

a1 = 1/2
a2 = 1/2
p1 = 1
q1,1 = 1

Con esto la ecuación del método queda:

1 1
y[i+1] = y[i] + ( k1 + k2 ) h (32)
2 2
donde,

k1 = f (xi , y[i] ) (33)


[i]
k2 = f (xi + h, y + k1 h) (34)

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Método de punto medio


Runge-Kutta de segundo orden con a2 = 1

Eligiendo a2 = 1 se obtiene:

a1 = 0
a2 = 1
p1 = 1/2
q1,1 = 1/2

Con esto la ecuación del método queda:

y[i+1] = y[i] + k2 h (35)

donde,

k1 = f (xi , y[i] ) (36)


1 1
k2 = f (xi + h, y[i] + k1 h) (37)
2 2

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Método de punto medio


Runge-Kutta de segundo orden con a2 = 1

Eligiendo a2 = 1 se obtiene:

a1 = 0
a2 = 1
p1 = 1/2
q1,1 = 1/2

Con esto la ecuación del método queda:

y[i+1] = y[i] + k2 h (38)

donde,

k1 = f (xi , y[i] ) (39)


1 1
k2 = f (xi + h, y[i] + k1 h) (40)
2 2

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Método de Ralston
Runge-Kutta de segundo orden con a2 = 2/3

Eligiendo a2 = 2/3 se obtiene:


a1 = 1/3
a2 = 2/3
p1 = 3/4
q1,1 = 3/4
Con esto la ecuación del método queda:
1 2
y[i+1] = y[i] + ( k1 + k2 )h (41)
3 3
donde,
k1 = f (xi , y[i] ) (42)
3 [i] 3
k2 = f (xi + h, y + k1 h) (43)
4 4
Ralston (1962) y Ralston & Rabinowitz (1978) demostraron que mediante estos parámetros se obtiene una cota mínima
para el error de truncamiento.
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Comparación de métodos de Runge-Kutta de segundo orden

Se desea resolver:
dy
= 10 · e(−(x−2) /(2·0.075 )) − 0.6y
2 2
y(0) = 0.1 (44)
dx
Mediante los métodos de
RK1: Euler
RK2: Heun
RK2: Punto medio
RK2: Ralston
Para el intervalo x ∈ [1,3] con un paso h = 0.1

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Trayectorias
1.8
Exacta
RK1: Euler
1.6
RK2: Heun
RK2: PM
1.4 RK2: Ralston

1.2

1
y

0.8

0.6

0.4

0.2

0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Errores en la trayectoria

1.8 70
Exacta RK1: Euler
RK1: Euler RK2: Heun
1.6
RK2: Heun 60
RK2: PM
RK2: PM RK2: Ralston
1.4 RK2: Ralston

50
1.2

40

Error %
1
y

0.8
30

0.6
20

0.4

10
0.2

0 0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
x x

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Errores promedio y totales

25 1.5

20

15
1
avg y std error %

|Error absoluto|
10

0.5
0

−5

−10 0
Euler Heun PM Ralston RK3 RK4 RK1: Euler RK2: Heun RK2: PM RK2: Ralston
Metodo Metodo

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Runge-Kutta de tercer orden

El método de Runge-Kutta para n = 3 se obtiene por comparación con una expansión de Taylor de orden 3. Se obtienen 8
parámetros y 6 ecuaciones, luego, deben especificarse 2 parámetros.
Con esto la ecuación del método queda como:

1
y[i+1] = y[i] + (k1 + 4k2 + k3 )h + O(h4 ) (45)
6
donde,

k1 = f (xi , y[i] ) (46)


1 1
k2 = f (xi + h, y[i] + k1 h) (47)
2 2
k3 = f (xi + h, y[i] − k1 h + 2k2 h) (48)

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Runge-Kutta de cuarto orden

La versión clásica del método de Runge-Kutta de cuarto orden está dada por la siguiente ecuación:

1
y[i+1] = y[i] + k1 + 2k2 + 2k3 + k4 h + O(h5 )

(49)
6
donde,

k1 = f (xi , y[i] ) (50)


1 1
k2 = f (xi + h, y[i] + k1 h) (51)
2 2
1 [i] 1
k3 = f (xi + h, y + k2 h) (52)
2 2
[i]
k4 = f (xi + h, y + k3 h) (53)

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Runge-Kutta de quinto orden (Butcher 1964)


El método de Runge-Kutta de quinto orden se utiliza en casos donde se requiere mucha precisión. Está dado por la
siguiente ecuación:
1
y[i+1] = y[i] + 7k1 + 32k3 + 12k4 + 32k5 + 7k6 h + O(h6 )

(54)
90
donde,

k1 = f (xi , y[i] ) (55)


1 1
k2 = f (xi + h, y[i] + k1 h) (56)
4 4
1 [i] 1 1
k3 = f (xi + h, y + k1 h + k2 h) (57)
4 8 8
1 1
k4 = f (xi + h, y[i] − k2 h + k3 h) (58)
2 2
3 3 9
k5 = f (xi + h, y[i] + k1 h + k4 h) (59)
4 16 16
3 2 12 12 8
k6 = f (xi + h, y[i] − k1 h + k2 h + k3 h − k4 h + k5 h) (60)
7 7 7 7 7
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Comparación de métodos de Runge-Kutta de alto orden

Se desea resolver:
dy
= 10 · e(−(x−2) /(2·0.075 )) − 0.6y
2 2
y(0) = 0.1 (61)
dx
Mediante los métodos de
RK1: Euler
RK2: Heun
RK2: Punto medio
RK2: Ralston
RK3
RK4
Para el intervalo x ∈ [1,3] con un paso h = 0.1

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Trayectorias
1.8
Exacta
RK1: Euler
1.6
RK2: Heun
RK2: PM
1.4 RK2: Ralston
RK3
RK4
1.2

1
y

0.8

0.6

0.4

0.2

0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Errores en la trayectoria

1.8
Exacta
RK1: Euler
1.6
RK2: Heun
RK2: PM
1.4 RK2: Ralston 2
10
RK3
RK4
1.2
0
10

1
y

−2
10
0.8

Error %
0.6 −4
10
RK1: Euler
0.4 RK2: Heun

−6
RK2: PM
10
0.2 RK2: Ralston
RK3
RK4
0 −8
10
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
x x

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta de primer y segundo orden
Métodos Runge-Kutta
Comparación de métodos de Runge-Kutta de bajo orden
Métodos de Runge-Kutta adaptativos
Runge-Kutta de tercer, cuarto y quinto orden
Contenidos detallados
Comparación de métodos de Runge-Kutta de alto orden

Errores promedio y totales

25 1.5

20

15
1
avg y std error %

|Error absoluto|
10

0.5
0

−5

−10 0
Euler Heun PM Ralston RK3 RK4 Euler Heun PM Ralston RK3 RK4
Metodo Metodo

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Introducción

Los métodos de Runge-Kutta presentados en la sección anterior utilizan un paso de integración h constante.
Un paso constante puede dar origen a problemas muy serios.
Ajuste del tamaño h automágico.
Algoritmos con control de paso adaptativo.
Una estimación del error de truncamiento sirve para corregir el paso.

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Runge-Kutta adaptativo o método de paso doble

Este método requiere que cada paso sea efectuado dos veces:
[i+1]
Paso completo (y1 )
[i+1/2] [i+1]
Dos pasos (y1/2 −→ y2 )
La diferencia entre ambos se considera como un estimado del error de truncamiento
[i+1] [i+1]
∆ = |y2 − y1 |

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Runge-Kutta Fehlberg o Runge-Kutta Cash-karp (1990)

Este método estima el error utilizando dos estimaciones obtenidas con R-K de distinto orden.
Cuarto orden
37 250 125 512
 ‹
[i+1]
y4 = y[i] + k1 + k3 + k4 + k6 h
378 621 594 1771
Quinto orden
2825 18575 13525 277 1
 ‹
[i+1]
y5 = y[i] + k1 + k3 + k4 + k5 + k6 h
27648 43384 55296 14336 4
[i+1] [i+1]
∆ = |y5 − y4 |
donde,
3 3 9 6
k1 = f (xi ,y[i] ) k4 = f (xi + h,y[i] + k1 h − k2 h + k3 h)
5 10 10 5
1 1
k2 = f (xi + h,y[i] + k1 h) k5 = f (xi + h,y[i] −
11 5
k1 h + k2 h −
70
k3 h +
35
k4 h)
5 5 54 2 27 27
3 3 9
k3 = f (xi + h,y[i] + k1 h + k2 h) 7
k6 = f (xi + h,y[i] +
1631
k1 h +
175
k2 h +
575
k3 h +
44275
k4 h +
253
k5 h)
10 40 40 8 55296 512 13824 110592 4096

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Control de paso

El paso puede ser ajustado con esta información mediante la siguiente expresión:

∆d α
¨
0.20 si ∆ ≤ ∆d ,

hnew = 0.9h
α=
∆ 0.25 si ∆ > ∆d

donde,
∆ es la estimación del error de truncamiento dada por el método de paso doble o el de Fehlberg.
∆d es la precisión deseada
∆d = "abs + "rel |y[i] | + |f (xi ,y[i] )h|

(62)

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Algoritmo 1 Algoritmo de control de paso


Require: f ,xi ,y[i] ,h,"rel ,"abs ,kmax
Ensure: hnew : paso de integración.

1: function getHstepdoubling(f ,xi ,y[i] ,h,"rel ,"abs ,kmax ) . Obtiene hnew mediante RK4 con paso adaptativo de paso doble
2: k←0
3: while k < kmax do
[i+1] [i+1]
4: ∆ ← |y2 − y1 | . Estimamos el error de truncamiento actual mediante el algoritmo de 2 pasos
[i] [i]

5: ∆d = "abs + "rel |y | + h|f (xi ,y )| . Calculamos el error de truncamiento deseado

6: if ∆ <= ∆d then . Si la estimación es menor al objetivo devolvemos hnew


[i+1]
7: if ∆/y2 < "rel then
8: hnew = 2h
9: else
10: hnew = 0.9h|∆/∆d |−0.2
11: end if
12: return hnew
13: else . En caso contrario acortamos el paso
14: hnew = 0.9h|∆/∆d |−0.25
15: end if
16: h ← hnew
17: k ← k+1
18: end while
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
19: return h
Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Comparación de métodos de Runge-Kutta adaptativos

Se desea resolver:
dy
= 10 · e(−(x−2) /(2·0.075 )) − 0.6y
2 2
y(0) = 0.1 (63)
dx
Mediante los métodos de
RK3
RK4
RK4 con paso adaptativo de paso doble
Para el intervalo x ∈ [1,3] con un paso h = 0.1 excepto en el caso adaptativo

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Trayectorias
1.8
Exacta
RK4: Adaptativo paso doble
1.6

1.4

1.2

1
y

0.8

0.6

0.4

0.2

0
1 1.2 1.4 1.6 1.8
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl
2IQ4112 - Capítulo
2.2 2.4 2.6
4: Métodos Runge Kutta
2.8 3
Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Trayectorias
1.8
Exacta
1.6
RK4: Adaptativo paso doble

1.4

1.2

1
y

0.8

0.6

0.4

0.2

0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
x

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Errores en la trayectoria

1.8
0.45
Exacta RK3
RK4: Adaptativo paso doble RK4
1.6
0.4
RK4: Adaptativo

1.4 0.35

1.2 0.3

Error %
0.25
y

0.8 0.2

0.6 0.15

0.4 0.1

0.2 0.05

0 0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
x x

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Errores promedio y totales

−3
x 10
2
0.15
1.8

1.6
0.1
1.4

|Error absoluto|
avg y std error %

1.2
0.05

0 0.8

0.6

−0.05 0.4

0.2

−0.1 0
RK3 RK4 RK4: Adaptativo RK3 RK4 RK4: Adaptativo
Metodo Metodo

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Introducción
Runge-Kutta adaptativo o método de paso doble
Métodos Runge-Kutta
Runge-Kutta Fehlberg
Métodos de Runge-Kutta adaptativos
Control de paso
Contenidos detallados
Comparación de métodos de Runge-Kutta adaptativos

Preguntas

http://www.phdcomics.com

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Análisis de error del método de Euler
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Análisis de error del método de Euler


El error de truncamiento (global) corresponde a la suma de dos componentes:
Errores de truncamiento locales
Errores de truncamiento propagado

Para una ecuación diferencial con una solución con derivadas continuas de la forma:
dy
= f (x,y)
dx

Se puede escribir una expansión de Taylor en torno a un punto inicial (xi ,y[i] ):
(1) (2) (n)
yi yi yi
y[i+1] = y[i] + h+ h2 + ··· + hn + Rn
1! 2! n!

y(n+1) (ξ) n+1


donde h = xi+1 − xi y Rn = h es el término restante (recordar que la expansión sigue hasta el infinito).
(n + 1)!
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta
Introducción
Métodos Runge-Kutta
Análisis de error del método de Euler
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Análisis de error del método de Euler

La expansión de Taylor se puede reescribir reemplazando la ecuación diferencial:

f (xi ,y[i] ) f (xi ,y[i] )(1) 2 f (xi ,y[i] )(n−1) n


y[i+1] = y[i] + h+ h + ··· + h + Rn
1! 2! n!

¿Cómo se comparan estas expresiones con el método de Euler?

J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta


Introducción
Métodos Runge-Kutta
Análisis de error del método de Euler
Métodos de Runge-Kutta adaptativos
Contenidos detallados

Análisis de error del método de Euler


El método de Euler se puede escribir como:

y[i+1] = y[i] + f (xi ,y[i] ) h


que corresponde a los 2 primeros términos de la expansión de Taylor:

(n−1)
f (xi ,y[i] )0 2 f (xi ,y[i] )i
y[i+1] = y[i] + f (xi ,y[i] )h + h + ··· + hn + Rn
2! n!

Luego, el error de truncamiento verdadero para el método de Euler está dado por los términos omitidos de la expansión de
Taylor:

(n−1)
f (xi ,y[i] )0 2 f (xi ,y[i] )i
ETEuler = h + ··· + hn + Rn
2! n!
Este error puede aproximarse por el error de truncamiento aproximado:

f (xi ,y[i] )0 2
ETEuler ≈ h = O(h2 )
2!
J. Cristian Salgado - http://salgadolab.diqbt.uchile.cl IQ4112 - Capítulo 4: Métodos Runge Kutta

También podría gustarte