Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2022-I
EDO
Problemas de Valor Inicial
(Parte 1)
All images copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display
EDO - Problemas de Valor Inicial
Ecuaciones Diferenciales Ordinarias y PVI
Una Ecuación Diferencial-ED es una ecuación que contiene derivadas, cuyas incógnitas
son funciones. Se denominan EDO a aquellas donde todas las incógnitas son función de
una única variable independiente, por lo que sus derivadas son ordinarias no parciales.
Ej. 2do orden 1er orden 1er orden 3er orden 1er orden
2 4
𝑑2𝑦 𝑑𝑧 𝜕𝑢 𝜕 3 𝑣 𝜕𝑣
6𝑧 2 + 4𝑦 = cos 2𝑥 + 5𝑥 + 3 = 𝑒 𝑥 + 7𝑦
𝑑𝑥 𝑑𝑥 𝜕𝑦 𝜕𝑥 𝜕𝑦
Ecuación Diferencial Ordinaria (EDO) Ecuación diferencial Parcial (EDP)
El orden de una ED lo define la máxima derivada presente en ella.
El curso solo aborda la solución numérica de EDOs, por ello se adoptará la letra 𝑡 para
nombrar a la variable independiente y en efecto, ocuparemos la notación de Newton.
Se denomina Problema de Valor Inicial PVI, a aquel donde se necesita resolver una ED
que esta sujeta a unas condiciones iniciales, es decir, se busca una solución particular.
Ej. Recuerde que la solución
EDO a resolver 𝑦ሷ = 2𝑡𝑦ሶ + 1 − sin 3𝑡 𝑦 + 𝑡 2
general de una ED es una
Condiciones iniciales 𝑦ሶ 𝑡0 = −5.4, 𝑦 𝑡0 = 1.2 familia de curvas
2
EDO - Problemas de Valor Inicial
Solución Numérica de un PVI
Resolver un PVI significa encontrar la función(es) que satisface(n) la EDO y sus
condiciones iniciales …pero, al igual que vimos en integración y diferenciación:
Ej.
Campo
¿Por primer𝑓orden?
direccional
qué solo 𝑡, 𝑦 ℎ 𝑡 −𝑔 𝑡 𝑦
𝑝 𝑡 𝑦ሷ + 𝑔 𝑡 𝑦 = ℎ 𝑡 → 𝑦ሷ =
𝑝 𝑡
Los métodos que abordaremos se ocupan de
solucionar únicamente PVIs de primer orden.
𝑡0 , 𝑦0
𝑦ሶ = 𝑓 𝑡, 𝑦 , 𝑦 𝑡0 = 𝑦0
𝑦 𝑡
𝜕 𝑓′ 𝜕 𝑓′ 𝜕 𝜕𝑓 𝜕𝑓 𝜕 𝜕𝑓 𝜕𝑓 𝜕2𝑓 𝜕2𝑓 𝜕 2𝑓
𝑦ഺ = + 𝑦ሶ = + 𝑦ሶ + 𝑦ሶ + 𝑦ሶ = 2 + 2𝑦ሶ + 𝑦ሶ 2 2
𝜕𝑡 𝜕𝑦 𝜕𝑡 𝜕𝑡 𝜕𝑦 𝜕𝑦 𝜕𝑡 𝜕𝑦 𝜕𝑡 𝜕𝑡𝜕𝑦 𝜕𝑦
→ Carl Runge y Wilhem Kutta (1901):
Usar el campo direccional para ponderar una pendiente que represente a una cantidad 𝑛
de términos de la serie y estimar el siguiente punto mediante una recta equivalente.
𝑠 𝑠
𝑘𝑗 = 𝑓 𝑡𝑗 , 𝑦𝑗 pendiente 𝑗
𝑦𝑖+1 = 𝑦𝑖 + 𝜑ℎ 𝜑 =𝑏|𝑗 𝑘𝑗 𝑏1𝑗 = 1
equivalentes 𝑗=1 𝑏𝑗 : Factor de ponderación 𝑗=1
y 75.3 − 56.8
80 𝑦(4) 𝜀𝑡 = × 100 = 24.6%
75.3
24.6%
60 𝑡𝑖 𝑦𝑖 𝑓 𝑡𝑖 , 𝑦𝑖 𝑦𝑖+1
0. 2. 3. 5.
40
1. 5. 6.40 11.4
20 2. 11.4 14.1 25.5
8
EDO - Problemas de Valor Inicial
Segundo Orden
Serie de Taylor Comparativo Recta equivalente
𝑦ሷ 𝑖 2 𝜕𝑓 𝜕𝑓
𝑦ሶ 𝑖 ℎ + ℎ 𝑘1 ℎ + 𝑏2 𝑐 + 𝑎𝑘1 ℎ2
2! 𝜕𝑡 𝜕𝑦
𝑖 𝑖
Reemplazamos las derivadas:
𝜕𝑓 𝜕𝑓 Distribuimos 𝑏2 :
𝑦ሶ 𝑖 = 𝑘1 𝑦ሷ 𝑖 = + 𝑦ሶ 𝑖
𝜕𝑡 𝑖
𝜕𝑦 𝑖
1 𝜕𝑓 1 𝜕𝑓 𝜕𝑓 𝜕𝑓
𝑘1 ℎ + + 𝑘1 ℎ2 ≡ 𝑘1 ℎ + 𝑏2 𝑐 + 𝑎𝑏2 𝑘1 ℎ2
2 𝜕𝑡 𝑖
2 𝜕𝑦 𝑖
𝜕𝑡 𝑖
𝜕𝑦 𝑖
Denominación 𝑏2 𝑏1 𝑐 𝑎
2 1 3 3
Ralston
3 3 4 4
Heun sin iteración 1 1
1 1
(integración trapezoidal) 2 2
Punto medio 1 1
(polígono mejorado) 1 0
2 2
𝑦𝑖+1 = 𝑦𝑖 + 𝑏1 𝑘1 + 𝑏2 𝑘2 ℎ 𝐸local = 𝑂 ℎ3
𝑓 𝑡, 𝑦 = 4𝑒 0.8𝑡 − 0.5𝑦
y 79.4
80 75.3 − 79.4
RK2 (Ralston)
5.44% 𝜀𝑡 = × 100 = 5.44%
𝑦(4) 75.3
Euler (3.75, 55.2)
60
24.6% 𝑡𝑖 𝑦𝑖 𝑘1 𝑘2
40 0. 2. 3. 5.16
(2.75, 24.6)
𝜑 =𝑏1𝑗 𝑘𝑗 No hay un único criterio final para elegir los factores de ponderación 𝑏𝑗
𝑗=1
La estrategia planteada por C. Runge y W. Kutta define una familia de métodos.
Ya que 𝑎𝑗𝑚 , 𝑏𝑗 y 𝑐𝑗 son constantes, vemos que Para un orden 𝑛, la única forma de
𝜑 depende solo del valor inicial 𝑡𝑖 , 𝑦𝑖 y ℎ: mejorar la precisión es disminuir ℎ
𝑡𝑖 , 𝑦𝑖
𝑘𝑗 = 𝑓
𝑓(𝑡𝑡𝑗𝑖 ,+𝑦𝑐𝑗𝑗) ℎ, 𝑦𝑖 + 𝑎𝑗1 𝑘1 + 𝑎𝑗2 𝑘2 + ⋯ + 𝑎𝑗,𝑗−2 𝑘𝑗−2 + 𝑎𝑗,𝑗−1 𝑘𝑗−1 ℎ
Una forma practica para presentar todos los términos de un método RK corresponde al
denominado Tablero de Butcher:
𝑠 Matriz triangular matriz de coeficientes RK
𝑦𝑖+1 = 𝑦𝑖 + ℎ 𝑏|𝑗 𝑘𝑗 inferior
𝑗=1 0 0 0 0 ⋯ 0 0
𝑗−1
factor nodal 𝑐𝑗
| | 𝑐2 𝑎21 0 0 ⋯ 0 0
𝑘𝑗 = 𝑓 𝑡 + 𝑐𝑗 ℎ, 𝑦𝑖 + ℎ 𝑎𝑗𝑚
| 𝑘𝑚
|𝑖 𝑚=1
| 𝑐3 𝑎31 𝑎32 0 ⋯ 0 0
𝑗=1 → 𝑎𝑗𝑚 = 0 ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
𝑘1 = 𝑓 𝑡𝑖 , 𝑦𝑖 𝑠 𝑐𝑠 𝑎𝑠1 𝑎𝑠2 𝑎𝑠3 ⋯ 𝑎𝑠,𝑠−1 0
𝑗=2 𝑏|𝑗 = 1 𝑏1 𝑏2 𝑏3 ⋯ 𝑏𝑠−1 𝑏𝑠
𝑗=1
𝑘2 = 𝑓 𝑡𝑖 + 𝑐2 ℎ, 𝑦𝑖 + 𝑎21 𝑘1 ℎ factor de ponderación 𝑏𝑗
14
EDO - Problemas de Valor Inicial
Orden Superior
Los métodos de orden superior son la opción de preferencia ya que demandan el mismo
trabajo computacional que los de bajo orden pero con mejores resultados.
RK3 RK4 Clásico
𝑡𝑓 − 𝑡𝑖
1 computacional
Trabajo 2 1 =𝑠 0 0 0 0 0 0 0 0 0
𝑦𝑖+1 = 𝑦𝑖 + 𝑘 + 𝑘 + 𝑘3 ℎ ℎ
6 1 3 2 6 1/2 1/2 0 0 1/2 1/2 0 0 0
1 ‒1 2 0 1/2 0 1/2 0 0
s=1
ℎ 1
𝑘2 = 𝑓 𝑡𝑖 + , _𝑦𝑖 + 𝑘1 ℎ 1/6 2/3 1/6 1 0 0 1 0
2 2
s=2 1/6 1/3 1/3 1/6
RK5 Butcher
𝑘3 = 𝑓 𝑡𝑖 + ℎ, 𝑦𝑖 −𝑘1 ℎ + 2𝑘2 ℎ
0 0 0 0 0 0 0
𝑘1 = 𝑓 𝑡𝑖 , _𝑦𝑖 1/4 1/4 0 0 0 0 0
s=3
1/4 1/8 1/8 0 0 0 0
s=4 1/2 0 ‒1/2 1 0 0 0
3/4 3/16 0 0 9/16 0 0
s=6 1 ‒3/7 2/7 12/7 ‒12/7 8/7 0
7/90 0 16/45 2/15 16/45 7/90
15
EDO - Problemas de Valor Inicial
Ejemplo 3. Método RK4 Clásico de paso constante
Para el siguiente PVI estime 𝑦 1 ocupando el método RK4 Clásico con un paso ℎ =1.
Calcule el error relativo si el valor real es 6.195.
𝑦ሶ = 4𝑒 0.8𝑡 − 0.5𝑦, 𝑦 0 = 2
(Utilice 4 cifras significativas)
𝑚= 1 2 3
La EDO se da en su forma normal, procedemos con el método RK:
𝑠 𝑗−1
0 0 0 0 0
𝑦𝑖+1 = 𝑦𝑖 + ℎ𝑏|𝑗 𝑘𝑗 𝑘𝑗 =𝑓 𝑡𝑖 + 𝑐𝑗 ℎ, 𝑦𝑖 + ℎ𝑎|𝑗𝑚 𝑘𝑚
𝑗=1 𝑚=1
𝑗= 2 ½ ½ 0 0 0
𝑘1 =𝑓 𝑡𝑖 , 𝑦𝑖 𝑗= 3 ½ 0 ½ 0 0
𝑗= 4 1 0 0 1 0
𝑘2 =𝑓 𝑡𝑖 + 𝑐1 ℎ, _𝑦𝑖 + 𝑎21 ℎ𝑘1 =𝑓 𝑡𝑖 + ½ ℎ, _𝑦𝑖 + ½ ℎ𝑘1 ⅙ ⅓ ⅓ ⅙
2
𝑦𝑖+1 = 𝑦𝑖 + ℎ𝑏|𝑗 𝑘𝑗 = 𝑦𝑖 + 𝑏1 𝑘1 + 𝑏2 𝑘2 + 𝑏3 𝑘3 + 𝑏4 𝑘4 ℎ
𝑗=1 = 𝑦𝑖 + ⅙𝑘1 + ⅓ 𝑘2 + ⅓ 𝑘3 + ⅙𝑘4 ℎ
16
EDO - Problemas de Valor Inicial
Ejemplo 3. Método RK4 Clásico de paso constante
Reemplazando en los términos 𝑘𝑗 : ℎ= 1 𝑡𝑖 = 0, 𝑦𝑖 = 2 𝑓 𝑡, 𝑦 = 4𝑒 0.8𝑡 − 0.5𝑦
𝑘1 = 𝑓 𝑡𝑖 , 𝑦𝑖 = 𝑓 0, 2 = 4𝑒 0.8 0 − 0.5 2 = 3.
= 4𝑒 0.8 1
− 0.5 5.913 = 5.946
2) Sustituir todas las derivadas 𝑧 𝑗 por la primera derivada de una función auxiliar
𝑢𝑗−1 𝑡 , excepto la derivada de primer orden la cual se sustituye por 𝑧ሶ = 𝑢1 .
3) Escribir las ecuaciones 𝑢𝑗 = 𝑢ሶ 𝑗−1 que relacionan todas las funciones auxiliares.
18
EDO - Problemas de Valor Inicial
Sistemas de EDOs
Los métodos RK tienen la capacidad para trabajar con sistemas vectores de tamaño 𝑟
de EDOs de primer orden formados por 𝑟 ecuaciones: 𝐲ሶ = 𝐟 𝑡, 𝐲
Una vez el sistema se expresa de esta forma se aplica el mismo procedimiento que para
EDOs individuales, ya que todos los parámetros del método son los mismos…
pendientes a ponderar
estación 𝑗
𝑡𝑗 = 𝑡𝑖 + 𝑐𝑗 ℎ vector estimado 𝑠
𝐤𝑗 = 𝐟 𝑡𝑗 , 𝐲𝑗 𝑗−1
𝐲𝑖+1 = 𝐲𝑖 + ℎ 𝑏𝑗 𝐤𝑗
𝐲𝑗 = 𝐲𝑖 + ℎ 𝑎| 𝑗𝑚 𝐤𝑗
𝑗=1
1 columna × 𝑟 filas 𝑗=1
condiciones iniciales
Tablero Butcher
Por simplicidad conviene ocupar notación matricial 0 0 0 ⋯ 0 0
𝐊 = 𝐤𝑗 = 𝐤1 𝐤2 ⋯ 𝐤𝑠 𝑐2 𝑎21 0 ⋯ 0 0
𝑟×𝑠
𝑐3 𝑎31 𝑎32 ⋯ 0 0
𝐲𝑗 = 𝐲𝑖 + ℎ𝐊𝐚𝑗 𝑇 𝐚𝑗 ∶= 𝑎𝑗𝑚 ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
1×𝑠
𝑐𝑠 𝑎𝑠1 𝑎𝑠2 ⋯ 𝑎𝑠,𝑠−1 0
𝐲𝑖+1 = 𝐲𝑖 + ℎ𝐊𝐛𝑇
𝐛 ∶= 𝑏𝑗 𝑏1 𝑏2 ⋯ 𝑏𝑠−1 𝑏𝑠
1×𝑠
19
EDO - Problemas de Valor Inicial
Ejemplo 4. EDO Orden Superior
Para el siguiente PVI estime 𝑧 0.2 ocupando el método RK3 con un paso ℎ =0.1.
2do orden 𝑧ሷ + 𝑧 𝑧 0 =1
(Emplee 5 cifras significativas) = −𝑧ሶ
𝑡 𝑧ሶ 0 = 2
𝑡𝑖 = 0 Estación 1 (𝑡1 = 𝑡𝑖 𝐲𝟏 = 𝐲𝑖 ) 𝐤1 𝐤2 𝐤3
𝐲𝑖 = 2 → 𝑢1 𝐤1 = − 0 2 − 1 =
−1
𝐊=
−1 ∙ ∙
1 →𝑧 2 2 2 ∙ ∙
Estación 2 (𝑐2 = ½)
½
2 −1 ∙ ∙ 1.95
𝑡2 = 0 + ½ 0.1 = 0.05 𝐲2 = + 0.1 0 =
1 2 ∙ ∙ 1.1
0
𝐤 2 = − 0.05 1.95 − 1.1 = −1.1975 −1 −1.1975 ∙
𝐊= ∙
1.95 1.95 2 1.95
Estación 3 (𝑐3 = 1)
−1
2 −1 −1.1975 ∙ 1.8605
𝑡3 = 0 + 1 0.1 = 0.1 𝐲3 = + 0.1 ∙ 2 =
1 2 1.95 0
1.19
23
EDO - Problemas de Valor Inicial
Control Adaptativo del tamaño de paso
Para mantener un error de truncamiento aproximadamente constante, se debe aumentar el
tamaño de paso en las zonas suaves y disminuirlo en las agudas.
Estrategia: Emplear dos estimaciones de un punto con el mismo tamaño de paso pero
con métodos de distinto orden para analizar los cambios de la solución
∗ 𝑦𝑖 4 4
𝑦𝑖+1 − 𝑦𝑖+1 = ℎ
4!
27
EDO-Problemas de Valor Inicial
Algoritmo RK encapsulado explicito
𝑘0 = 𝑓 𝑡𝑖 , 𝑦𝑖 𝐤 = 𝑘𝑗
𝑠×1
𝑓 𝑡, 𝑦 , 𝑡𝑖 , 𝑦𝑖 , ℎ RKenc
función
argumentos
𝑗=1 No
𝑗<𝑠
𝑗= 𝑗+1 Método RK encapsulado
Si
Vector coeficientes 𝐀 = 𝑎𝑗𝑚 𝐛 = 𝑏𝑗
RK 𝑠×𝑠 𝑠×1
Estaciones 𝐚𝑗 = 𝑎𝑚 1×𝑗
𝐛∗ = 𝑏𝑗 ∗ 𝐜 = 𝑐𝑗
𝑠×1
𝑠×1
𝑦𝑗 = 𝑦𝑖 + ℎ𝐚𝑗 𝐤
Información
No 𝑚=1 previa
𝑚<𝑗
𝑡𝑗 = 𝑡𝑖 + 𝑐𝑗 ℎ 𝑚= 𝑚+1
Si 𝑦𝑖+1 = 𝑦𝑖 + 𝐛𝐤ℎ
𝐸𝑖+1 = 𝐛 − 𝐛∗ 𝐤ℎ
𝑘𝑗 = 𝑓 𝑡𝑗 , 𝑦𝑗 𝑎𝑚 = 𝑎𝑗𝑚
salida
28
EDO-Problemas de Valor Inicial
Algoritmo de Solver explicito basado en RK encapsulado
𝑡𝑖 = 𝑎 𝑦𝑖 =𝑦 𝑎 𝑖=0 𝐭 = 𝑡𝑖 𝐲 = 𝑦𝑖 INICIO
Guardado de puntos
1 𝑓 𝑡, 𝑦 , 𝑦 𝑎 , 𝑎, 𝑏
ℎ = 10 (𝑏 ‒ 𝑎) ℎ =𝜌ℎ
Control adaptativo
Ultimo punto (𝑡=𝑏)
No Si No Si
ℎ = 𝑏 ‒ 𝑡𝑖 𝑡𝑖 +ℎ < 𝑏 𝑖 = 𝑖+1 𝜌 < 0.9 ℎ =𝜌ℎ
RKenc 𝑓, 𝑡𝑖 , 𝑦𝑖 , ℎ adapt 𝑛, 𝐸, 𝑦
𝑦𝑖+1 = 𝑦
↳ 𝑦, 𝐸
↳𝜌
FIN
29
EDO - Problemas de Valor Inicial
Solver explícito con Python
El modulo integrate de la librería SciPy dispone de la función solve_ivp para la
solución de sistemas EDO. Este implementa múltiples métodos de los cuales por ahora
solo nos referiremos a los métodos explícitos de RK encapsulado.
30
EDO - Problemas de Valor Inicial
Solver explícito con Python
El argumento y0 debe asignarse siempre como un <list> o <1darray> incluso si el PVI
no corresponde a un sistema de EDOs. Ej. y0= [valor]
solve_ivp retorna un objeto <OdeResult> el cual posee varios atributos, donde los mas
importantes son:
.t: <1darray> Valores de la variable independiente donde se calculo la solución.
31
EDO - Problemas de Valor Inicial
Ejemplo 5. Sistema EDO con Python
Resuelva el PVI del Ejemplo 4 mediante solve_ivp con el método RK45 (D&P).
Adicionalmente, extienda la solución para hasta 𝑡= 5.
𝑧ሶ
𝑧
Condición y(0.2)
inicial
z(0.2) ≈1.3749
32
EDO - Problemas de Valor Inicial
Ejemplo 6. EDO individual con Python
Emplee solve_ivp con el método RK23(B&S) para solucionar el siguiente PVI hasta 𝑡=4
800
− 𝑡−2 2 𝑦 0 = 0.5
𝑦ሶ = 10𝑒 9 − 0.6𝑦
33