Documentos de Académico
Documentos de Profesional
Documentos de Cultura
6.1. Introducción
En muchos problemas de ciencia e ingeniería se plantean ecuaciones diferenciales
ordinarias (EDO). Por ejemplo, y ′ = f ( x, y ) con la condición inicial y (a ) = c . No
siempre es factible hallar una solución analítica de tales ecuaciones. En este capítulo se
revisan procedimientos numéricos de solución de EDO basados en la aproximación de
los operadores de derivación por diferencias finitas. Tales procedimientos son también
aplicables cuando se tienen sistemas de ecuaciones diferenciales de primer orden, como
por ejemplo:
y& = f (t , y ) (6.1a)
e incluso ecuaciones de orden superior: y ′′′ = f ( x, y , y ′, y ′′) , que con algunos cambios
de variables pueden siempre convertirse en un sistema de ecuaciones diferenciales de
primer orden. Así:
y ′′ = x 2 − y ′ − z 2 y (0 ) = 0 y ′(0) = 1
con condiciones iniciales y
z ′′ = x + z ′ + y 3 z (0 ) = 1 z ′(0 ) = 0
es equivalente a:
u′ = x 2 − u − z 2 y (0 ) = 0
v′ = x + v + y 3 z (0 ) = 1
con condiciones iniciales
y′ = u u (0 ) = 1
z′ = v v(0 ) = 0
Este es el método más simple para resolver EDO de primer orden y ′ = f ( x, y ) con
y (a) = c . El intervalo entre a y b se divide en subintervalos habitualmente iguales, de
longitud h , de modo que x n = a + n h . Haciendo y 0 = c se determinan sucesivamente
y1 y 2 y 3 y 4 L que son aproximaciones a los valores exactos
y ( x1 ) y ( x 2 ) y ( x 3 ) y ( x 4 ) L Para ello y ′( x i ) se aproxima por ∆y i h = ( y i +1 − y i ) h , de
donde resulta la fórmula de recursión:
Este método es aplicable en situaciones en las que f podría ser una función bastante
complicada, o podría ser el resultado de operaciones y decisiones no expresables por
una simple fórmula, pero se presenta aquí un caso muy simple, con propósitos
didácticos.
y ( x) ≈ [2 y ( x, h) − y ( x,2h)] + O h 2 ( )
Esta expresión sería correcta para una extrapolación pasiva, es decir la que se hace
para mejorar algunos resultados y típicamente no en cada paso. En cambio, una
extrapolación activa, sería aquella que se realiza en cada paso, utilizándose los valores
así mejorados en los sucesivos pasos del proceso. En ciertos casos la extrapolación
pasiva puede ser más conveniente, por ser numéricamente más estable. Para el
ejemplo anterior, con extrapolación pasiva se obtiene:
y ( x n +1 ) = y ( x n ) + h y ′( x n ) + 12 h 2 y ′′( x n ) + L
Se tiene que:
y ( x n +1 ) − y ( x n ) = h f ( x n , y ( x n )) + O h 2 ( )
Remplazando en la primera expresión:
ε n +1 − ε n = h [ f ( x n , y n ) − f ( x n , y ( x n ))] + O h 2 ( )
∂f
Pero: f ( x n , y n ) = f ( x n , y ( x n )) + ( y n − y ( x n )) +L
∂y x = xn
y = y ( xn )
De donde:
∂f
ε n+1 ≈ ε n 1 + h
∂y x = xn
y =α
∂f
Si h es suficientemente pequeño y es negativa el método de Euler es adecuado.
∂y x = xn
y =α
k xk y( xk ) yk εk
0 0 0 0 0
1 0.01 0.0001 0 -0.0001
2 0.02 0.0004 0.0012 0.0008
3 0.03 0.0009 -0.0064 -0.0073
4 0.04 0.0016 0.0672 0.0656
5 0.05 0.0025 -0.5880 -0.5905
Estos métodos son, como el método de Euler, de paso simple. Es decir, sólo se requiere
conocer y n para determinar y n +1 . Las fórmulas de Runge – Kutta requieren evaluar
f ( x, y ) en diversos puntos apropiadamente ubicados en el intervalo [xn , xn +1 = xn + h ] ,
ponderándose los resultados de modo de obtener un error de truncación del mayor orden
posible.
yˆ = y n + α h f ( x n , y n )
y n +1 = y n + β h f ( x n , y n ) + γ h f ( x n + α h, yˆ )
Siendo
f ( x n + α h, yˆ ) = f ( x n , y n ) + α h
∂f
∂x x = xn
+ ( yˆ − y n )
∂f
∂y x = xn
+ O h2( )
y = yn y = yn
y n +1 = y n +
h
[ f ( x n , y n ) + f ( x n + h, yˆ )]
2
Puede anotarse que si f no fuera función de y este método equivale a evaluar la
integral:
xn +1
y n +1 = y n + ∫ xn
y ′( x) dx
El método de Ralston:
k1 = f ( x n , y n )
k 2 = f (x n + 34 h, y n + 34 k1 h )
y n +1 = y n + h ( 13 k1 + 23 k 2 )
[ f ( xn ) + 4 f ( xn + 12 h) + f ( xn + h)]
xn +1 h
y n +1 − y n = ∫ xn
y ′( x) dx ≈
6
Como ejemplo de aplicación de este método, considérese la ecuación diferencial:
1
y ′ = ( x + y) 2
Una alternativa más conveniente sería aprovechar los resultados parciales al usar un
proceso de orden m para determinar otra con un proceso de orden m + 1 . Por ejemplo,
en el procedimiento de Runge - Kutta Cash – Karp se emplean las fórmulas de cuarto
orden (global):
y n +1 = y n + h ( 378
37
k1 + 250
621
k3 + 125
594
k 4 + 1771
512
k6 )
y n +1 = y n + h ( 272825 k +
648 1
18 575
48 384
k3 + 13525
55 296
k 4 + 14277 k + 14 k 6 )
336 5
Este es el método explícito del punto medio (en inglés conocido como leapfrog), un
método de doble paso, puesto que la expresión para obtener y n +1 requiere y n −1 e y n .
Algunas ventajas y desventajas de los métodos de pasos múltiples con relación a los
métodos de un solo paso pueden citarse:
Entre los métodos de paso múltiple que se encuentran en la literatura están los métodos
explícitos de Adams – Bashfort:
y n +1 = y n + h (β1 f n + β 2 f n −1 + β 3 f n − 2 + L + β k +1 f n − k )
y n +1 − y n = h ( f n + 12 ∇f n + 125 ∇ 2 f n + 83 ∇ 3 f n + L) (A-B)
y n +1 − y n = h ( f n +1 − 12 ∇f n +1 − 121 ∇ 2 f n +1 − 1
24
∇ 3 f n +1 + L) (A-M)
Por otro lado, pueden escribirse expansiones en series de Taylor, obteniéndose las β
por identificación de coeficientes. Así, para la expresión explícita con k = 1 :
y n +1 = y n + h (β1 f n + β 2 f n −1 )
y ( x n + h) ≈ y ( x n ) + h (β1 y ′( x n ) + β 2 y ′( x n − h))
y ( x n + h) ≈ y ( x n ) + h β1 y ′( x n ) +
(
+ h β 2 y ′( x n ) − h y ′′( x n ) + 12 h 2 y ′′′( x n ) − L )
y ( x n + h) ≈ y ( x n ) + h (β1 + β 2 ) y ′( x n ) + h 2 (−β 2 ) y ′′( x n ) + O h 3 ( )
Comparando con:
y ( x n + h) = y ( x n ) + h y ′( x n ) + 12 h 2 y ′′( x n ) + O h 3 ( )
Se tiene que: β1 + β 2 = 1 y − β 2 = 12 , de donde: β1 = 3
2
y β 2 = − 12 , es decir:
h
y n +1 = y n + ( 3 f n − f n −1 )
2
Algunos resultados similares se listan a continuación. El error de truncación local es de
( )
O h k + 2 y el global de O h k +1 : ( )
Métodos de Adams – Bashfort (explícitos):
k y n +1 = y n + h (β1 f n + β 2 f n −1 + β 3 f n − 2 + L + β k +1 f n − k )
0 y n +1 = y n + h f n Euler
y n +1 = y n + h ( 3 f n − f n −1 )
1
2
1
3 y n +1 = y n + 1
24
h ( 55 f n − 59 f n −1 + 37 f n −2 − 9 f n −3 )
k y n +1 = y n + h (β 0 f n +1 + β1 f n + β 2 f n −1 + β 3 f n − 2 + L + β k f n − k +1 )
0 y n +1 = y n + h f n +1 Euler inverso
El error de truncación de una fórmula implícita de este tipo es siempre menor que el error
del correspondiente proceso explícito del mismo orden. Excepto en el caso trivial en que
la función f ( x, y ) es lineal, la solución de la(s) ecuación(es) que definen el proceso
implícito requiere iterar. Con tal fin, se utiliza como primera aproximación el resultado
obtenido con la fórmula explícita (predictor). Esta aproximación se refina utilizando
repetidamente la correspondiente fórmula implícita (que en este contexto se denomina
corrector). Por ejemplo:
y n(0+)1 = y n + h f ( x n , y n )
y n(i++11) = y n + h f ( x n +1 , y n(i+)1 )
Predictor: y n(0+)1 = y n −3 + 43 h ( 2 f n − f n −1 + 2 f n − 2 ) O ( h y (ξ ) )
14
45
5 v
[
y 2( 0 ) = y1 + 0.05 − 3 x1 ( y1 ) 2 + x 0 ( y 0 ) 2 = ]
[
= 1.980 198 + 0.05 − 0.3 ⋅ (1.980 198) 2 − 0 = 1.921 380 ]
y luego con el corrector (en este caso la regla trapezoidal, también conocida como
método de Crank Nicholson):
y n+1 = y n + 12 h ( f n +1 + f n )
se tiene:
[
y 2(1) = y1 + 0.05 − x 2 ( y 2( 0 ) ) 2 + x1 ( y1 ) 2 = ]
[
= 1.980 198 + 0.05 − 0.2 ⋅ (1.921 380) 2 − 0.1 ⋅ (1.980198) 2 = 1.923 675 ]
Y en forma similar:
y 2( 2 ) = 1.923 587
y 2(3) = 1.923 590
y 2( 4 ) = 1.923 590
h2
y ( x + h) = y ( x) + h y ′( x) + y ′′( x) + L
2
se remplaza por:
y n +1 = y n + h f ( x n , y n )
Al emplear un método numérico para resolver EDO, se espera que éste sea
convergente, lo que significa que al trabajar con intervalos, h , cada vez más pequeños,
las soluciones deben aproximar cada vez más a la solución exacta. Para que el
procedimiento numérico sea convergente debe ser consistente y estable.
Alternativamente, podría decirse que un método es estable si, para condiciones iniciales
típicas y siempre que los errores de truncación y de redondeo sean pequeños, se tiene
convergencia.
i xi y (xi ) yi ei = y i − y (x i )
2.0
1.5
1.0
0.5
y(x)
0.0
0 2 4 6 8 10 12
x
-0.5
-1.0
-1.5
-2.0
r 2 = 1+ 2α r
( ) ( )
1
r1 = α + 1 + α 2 2 = 1 + α + 12 α 2 + O α 4
1
r2 = −
r1
e α = 1 + α + 12 α 2 + 16 α 3 + O α 4 ( )
se concluye que:
r1 = e α − 16 α 3 + O α 4 ( )
r1n ≈ e αn = e λ n h = e λxn
y en consecuencia:
(
C 2 = e −0.1 − r1 ) (r 2 − r1 ) ≈ 7.469 947 ⋅ 10 −5
Para h → 0 se requiere que una de las raíces sea igual a 1 (esto es un requisito para
que el método sea consistente). Sin embargo, si dos o más raíces tienen módulo igual a
1 el método es débilmente estable y con frecuencia tiene problemas numéricos. Este es
el caso del método explícito del punto medio, del que se trató en el acápite anterior.
Im λh
2
0 Re λh
-3 -2 -1 0 1 2
-1
-2
Región de estabilidad absoluta - Euler
Puede concluirse que el método de Euler es apropiado para integrar ecuaciones cuya
solución es exponencialmente decreciente ( λ < 0 ), pero no para el caso en que la
solución es oscilatoria y no amortiguada ( λ imaginaria pura).
Re λh
0
-2 -1 0 1 2 3
-1
-2
Todos los procesos de Runge Kutta del mismo orden tienen la misma región de
estabilidad absoluta. Por ejemplo, considérese un proceso de segundo orden, método
de Heun, también llamado Euler modificado:
yˆ = y n + h f ( x n , y n )
y n +1 = y n +
h
[ f (x n , y n ) + f (x n +1 , yˆ )]
2
que aplicado a la ecuación y ′ = λ y resulta:
yˆ = y n + h λ y n = (1 + λ h ) y n
y n +1 = y n +
h
2
[λ y n + λ ( y n + h λ y n )] = 1 + λ h + [ 1
2
(λ h )2 ] y n
y por lo tanto : r = 1 + λ h + 1
2
(λ h )2 . La condición r ≤ 1 es satisfecha por todos los
puntos dentro del elipsoide que se muestra en la figura siguiente:
2 Im λh
Re λh
0
-3 -2 -1 0 1
-1
-2
Región de estabilidad absoluta
Runge Kutta - Segundo Orden
k1 = λ h y n
k 2 = λh (1 + 12 λh ) y n
(
k 3 = λh 1 + 12 λh + (λh ) ) y1
4
2
n
= λh (1 + λh + (λh ) + (λh ) ) y
1 2 1 3
k4 2 4 n
Y resulta:
r = 1 + λh + 1
2
(λh )2 + 16 (λh )3 + 241 (λh )4
La expresión es la misma para cualquier otro método de Runge Kutta de cuarto orden
(global): La región de estabilidad absoluta es aquella dentro del límite indicado en la
figura siguiente:
4 Im ( λh)
1
Re ( λh)
0
-3 -2 -1 0 1
-1
-2
-3
-4
Región de estabilidad absoluta
Runge - Kutta 4o Orden
Las mismas ideas pueden también aplicarse a métodos de pasos múltiples. Por
ejemplo, para la regla explícita del punto medio, a la que se hizo referencia al inicio de
esta sección:
y n +1 = y n −1 + 2 h f (x n , y n ) = y n −1 + 2 λh y n
y n +1 = y n + 12 h [ f ( x n , y n ) + f ( x n +1 , y n +1 )]
y n +1 = y n + 12 λ h ( y n + y n +1 )
de donde:
(1 − 12 λ h) r = (1 + 12 λ h )
1 + 12 λ h
y por lo tanto se requiere que: r = ≤ 1 , es decir Re(λ h ) ≤ 0 .
1 − 12 λ h
y n +1 = y n + h [y n′ + 16 (k1 + k 2 + k 3 )]
Este procedimiento se basa en sustituir las derivadas por sus aproximaciones con
diferencias centrales. Así al resolver:
mu&& + ku = f (t )
u − 2 u n + u n +1
se puede aproximar la segunda derivada con: u&&n = n −1
(∆t ) 2
(∆t ) 2
de donde resulta: u n +1 = 2 u n − u n −1 + ( f (t ) − k u n ) .
m
u n +1 = u n + u& n + 1 ∆t
2
m c m c
(∆t ) 2 + 2 ∆t u n +1 = f (t n ) − k − (∆t ) 2
2m
un −
(∆t ) 2 − 2 ∆t u n −1
[
u n +1 = u n + ∆t u& n + (∆t ) α u&&n + ( 12 − α )u&&n +1
2
]
El caso con δ = 12 y α = 16 corresponde a suponer que u&& (la aceleración) varía
linealmente en el intervalo. Aparentemente esa elección sería mejor que δ = 12 y α = 14
(lo que físicamente se interpretaría como suponer una aceleración constante promedio).
Sin embargo, esta última elección es más apropiada, también por consideraciones de
estabilidad, a las que se hace referencia más adelante.
Al remplazar las aproximaciones en:
m u&&n +1 + c u& n +1 + k u n +1 = f (t n +1 )
se obtiene: kˆ u n +1 = fˆ n +1
donde:
kˆ = k + a 0 m + a1 c
fˆ n +1 = f n +1 + m (a 0 u n + a 2 u& n + a 3 u&& n ) + c (a1u n + a 4 u& n + a 5 u&& n )
1 δ ∆t δ
a3 = −1 a4 = −1 a5 = − 2
2α α 2 α
a 6 = ∆t (1 − δ ) a 7 = δ ∆t
Todos los métodos para resolver EDO de segundo orden pueden ser escritos en la
forma:
u n +1 = A u n + b f n
donde u n representa ahora el conjunto de resultados que describen la respuesta en el
paso n . Por ejemplo, para el método de diferencia central:
u n +1 2 − (ω ∆t ) 1 − β ω ∆t u n ( ∆t ) 2
2
−
= 1 + β ω ∆t 1 + β ω ∆t + 1 + β ω ∆t f n
u n u
1 0 n −1 0
Los errores se comportan en forma análoga, pudiendo demostrarse que:
ε n +1 = A ε n
y por lo tanto, para que los errores se reduzcan (es decir, para que el método sea
estable) se requiere que:
ρ ( A) = máx λi ≤ 1
Dos procesos a los que también se hace referencia en la literatura son los métodos de
Houbolt y de Wilson. Ambos métodos son también (para una selección apropiada de sus
parámetros) incondicionalmente estables, pero acumulan mucho más errores que el de
Newmark de aceleración constante y por tanto no son tan convenientes.
u n +1 = u n + u& n + 1 ∆t
2
K ˆ =K + a M + a C =LU
0 1
ˆf
n +1 = f n +1 + M (a 0 u n + a 2 u n + a 3 u n ) + C (a1u n + a 4 u n + a 5 u n )
& && & &&
y luego:
&& t + ∆t = a 0 (u t + ∆t − u t ) − a 2 u& t − a 3 u
u && t
u& t + ∆t = u& t + a 6 u
&& t + a 7 u
&& t + ∆t
Estos vectores constituyen una base completa, y por lo tanto la solución x(t ) puede
siempre expresarse como una combinación lineal de los referidos vectores:
x (t ) = ∑a j φj
x& (t ) = ∑ a& j (t ) φ j
∑ a& j Bφj + ∑a j A φ j = f (t )
φ *s B φ r = δ rs
φ *s A φ r = λ r δ rs
∑ a& j φ Τι B φ j + ∑a j φ Τι A φ j = φ Τι f (t )
Se observa que la mayor parte de los productos que se tienen en cada suma son cero.
Sólo son distintos de cero aquellos en los que los dos índices i,j son iguales. En
consecuencia se obtienen ecuaciones “desacopladas”, independientes para cada
componente a j (t ) :
a& i + λ i ai = φ Τι f (t )
x 0 = x ( 0) = ∑ a (0) φj j
a i (0) = φ Τι B x 0
Resolver n de estas ecuaciones desacopladas es mucho más fácil que resolver un solo
sistema de ecuaciones diferenciales de orden n (puede aquí hacerse un paralelismo con
el caso de ecuaciones algebraicas). Además, en muchas situaciones prácticas se
observa que las componentes a (t ) asociadas a los mayores valores característicos son
x (t ) = ∑a j φj
a& i + λi a i = φ Τι f 0 (a t + b)
Nuevamente, la solución puede escribirse como una combinación lineal de los vectores
característicos (que en lo que sigue se han supuesto normalizados respecto a M ):
u(t ) = ∑a j (t ) φ j
φ *s M φ r = δ rs
φ *s K φ r = ω 2r δ rs
Pero, salvo en algunos casos particulares, no podría afirmarse algo similar con la matriz
C . Sin embargo, hay aplicaciones en que la inclusión del término C u& es sólo un
artificio para introducir disipación en las ecuaciones lineales, que realmente podría
haberse considerado con una K variable, dependiente de u . En este contexto, podría
introducirse directamente la disipación en las ecuaciones desacopladas, no siendo
necesario determinar la matriz C :
2 Tmín
∆t ≤ =
ω máx π
ω1 ≤ ω 2 ≤ L << ω máx
T1 ≥ T2 ≥ L >> Tmín
200.5 199.5
A =
199.5 200.5
Los valores característicos de la matriz A son λ1 = ω12 = 1 y λ 2 = ω 22 = 400 .
Supóngase que las condiciones iniciales son:
1 1
u = cos t + 0.01 cos 20 t
− 1 1
El primer modo, con ω1 = 1 y T1 = 2 π es el importante en la solución. La contribución
del segundo modo, con ω 2 = 20 y T2 = π / 10 es comparativamente pequeña.
1.01 0
con condiciones iniciales u 0 = y u& 12 = u& (0) + 2 ∆t u
1 && 0 =
− 0.99 0
Para integrar apropiadamente el primer modo sería suficiente considerar un ∆t del
orden de T1 / 20 ≈ 0.3 . Sin embargo, es el segundo modo, poco importante en la
respuesta, el que en este caso controla la estabilidad. Se requiere reducir el intervalo,
de modo que: ∆t < 2 / ω2 = T2 / π = 0.1 lo que indirectamente hace que se obtenga
precisión en la integración de la componente significativa. En las figuras siguientes se
muestran resultados obtenidos con ∆t = 0.1001 (el procedimiento es inestable) y con
∆t = 0.09 (procedimiento estable). Los resultados serían aún más precisos si T1 >> Tn ,
como ocurre típicamente al resolver grandes sistemas de ecuaciones diferenciales.
1000
500
0
u
0 2 4 6 8 10
-500
-1000
t
Resultados obtenidos con ∆t = 0.1001
2
1
1
0
u
-1 0 2 4 6 8 10
-1
-2
t
Resultados obtenidos con ∆t = 0.09