Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Integracion Numerica ODE PDF
Integracion Numerica ODE PDF
Ordinarias
Daniel Mejı́a R1
Instituto de Fı́sica
Universidad de Antioquia
28 de Septiembre, 2011
1
danielmejia55@gmail.com
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 1 / 47
Contenido
1 Motivación
2 Problemas de Valor Inicial
Método Euler
Método Punto Medio
Método de Heun
Resumen Comparativo
3 Métodos de Runge-Kutta
Idea General de los Métodos Runge Kutta
El Clásico Runge Kutta Orden 4
Yendo Más Allá - Runge-Kutta-Fehlberg
4 Aplicación Práctica
Sistemas de EDOs de Primer Orden Acopladas
EDO de Orden Superior
1
E.D. Para Abreviar
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 3 / 47
Motivación
2
Sin Solución Analı́tica
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 4 / 47
Motivación
2
Sin Solución Analı́tica
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 5 / 47
Motivación
Incluso un problema tan simple como la oscilación de un péndulo
involucra una EDO sin solución analı́tica
d2 θ
− g sin θ = 0 (1)
dt 2
dy
= f (t, y) y(0) = y0 (2)
dt
f (t, y) es una función bien comportada, la estrategia es solucionar la
ecuación en un conjunto suficientemente grande de valores discretos
tj = to + jh (3)
dy
y(t) ≈ y(t0 ) + (t − t0 ) |t=t0 (4)
dt
Tomando h = t − t0 , puedo construir un conjunto de puntos
y1 = y0 + hf (t0 , y0 ) (5)
y2 = y1 + hf (t1 , y1 ) (6)
..
. (7)
yj+1 = yj + hf (tj , yj ) (8)
(9)
dy
= f (t, y) y(0) = y0 (10)
dt
Donde la solución se obtiene iterando la ecuación
3
EDG
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 9 / 47
Método de Euler - Ejemplo de Aplicación
dθ
− g sin(θ) = 0; θ(0) = g (12)
dt
tome f (t, θ) = g sin(θ)
1 + e 2gt
" #
θ(t) = arc cos (15)
1 − e 2gt
4
El código fuente se proporciona al final
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 11 / 47
Método de Euler - Ejemplo de Aplicación
k1 = f (tj , yj ) (16)
h
yj+ 1 = yj + f (tj , yj ) (17)
2 2
h h
k2 = f (tj + , yj + k1 ) (18)
2 2
Finalmente
k1 = f (tj , yj ) (20)
k1 + k2
yj+1 = yj + h EDG O(h 2 ) (23)
2
Método Euler
Evalúa pendiente al inicio del intervalo en cada paso
EDG ≈ O(h)
Método Punto Medio
Evalúa pendiente al inicio y en el punto medio del intervalo en cada
paso
EDG ≈ O(h 2 )
Método Heun
Evalúa pendiente al inicio y en el extremo del intervalo en cada
paso
EDG ≈ O(h 2 )
N
X
yj+1 = yj + ωp kp RK orden N (24)
p=1
N
X
ωp son los coeficientes de peso. En general ωp = 1
p=1
kp son los valores de las pendientes evaluadas en diferentes
puntos del intervalo, el número de constantes utilizadas se
conoce como Orden
5
RK para abreviar
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 21 / 47
El Clásico Runge Kutta Orden 4
k1 = f (tj , yj ) (25)
h h
k2 = f (tj + , yj + k1 ) (26)
2 2
h h
k3 = f (tj + , yj + k2 ) (27)
2 2
k4 = f (tj + h, yj + hk3 ) (28)
h
yj+1 = yj + (k1 + 2k2 + 2k3 + k4 ) Método RK4 EDG ≈ O(h 4 )
6
(29)
k 1 = f tj , y j
1 1
k2 = f tj + h, yj + hk1
4 4
3 3 9
k3 = f tj + h, yj + k1 + k2 h
8 32 32
12 1932 7200 7296
k 4 = f tj + h, yj + k1 − k2 + k3 h
13 2197 2197 2197
439 3680 845
k5 = f tj + h, yj + k1 − 8k2 + k3 − k4 h
216 513 4104
1 8 3544 1859 11
k6 = f tj + h, yj + − k1 + 2k2 − k3 + k4 − k5 h
2 27 2565 4104 40
6
Léase Runge Kutta 4,5
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 24 / 47
Yendo Más Allá - Runge-Kutta-Fehlberg ó RK45
El EDG≈ O(h 5 )
dy1
= f1 (t, y1 , y2 , . . . , yn )
dt
dy2
= f2 (t, y1 , y2 , . . . , yn )
dt
.. .
. = ..
dyn
= fn (t, y1 , y2 , . . . , yn )
dt
7
solo para el método, aparte vienen las C.I. y parámetros
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 27 / 47
Aplicación - Ataque Zombie
dZ
= α1 SZ − β1 (I + S) − δ1 Z (31)
dt
dS
= −α1 SZ + β2 S − δ2 S (32)
dt
dI
= −α2 IZ + β3 (I + S) − δ3 I (33)
dt
(34)
8
Nombre Tomado de Resident Evil
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 28 / 47
Aplicación - Ataque Zombie - Primer Scenario - Caos
Colectivo
Ajustando parámetros
Ajustando parámetros
dy1
y1 = u = y2
dt
du dy2
y2 = = y3
dt dt
.. ..
. = .
dn−1 u dyn
yn = = f (t, u)
dt n−1 dt
9
GNU Scientific Library
10
Scilab y Octave alternativa a Matlab, Sage y Maxima alternativa a
Mathematica, además lenguajes como Python,C y Fortran
11
Tener claro licencias GPL, Copyleft y CreativeCommons
Daniel M.R. (danielmejia55@gmail.com) Integración Numérica EDO 28 de Septiembre, 2011 45 / 47
Muchas Gracias
Estas diapositivas, al igual que los códigos para generar las imágenes
y simulaciones estarán disponibles en la URL del seminario.
Igualmente estarńa alojadas en
http://github.com/Daniel-M/ODE-Seminar
Muchas Gracias