Está en la página 1de 40

6.

Métodos de Diferencias Finitas para la


Solución de Ecuaciones Diferenciales Ordinarias

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.1)

con condiciones iniciales:


y t 0   c

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

Aunque la primera parte de este capítulo se refiere directamente al caso de las


ecuaciones diferenciales ordinarias de primer orden, la sección 6.3 trata de
procedimientos específicos para el importante caso de sistemas de ecuaciones
diferenciales de segundo orden. La sección 6.5 se refiere a problemas de valor frontera,
un tema que – con otros métodos – se trata también en capítulos siguientes.

6.2. Ecuaciones Diferenciales de Primer Orden

6.2.1 Método de Euler

Este es el método más simple para resolver EDO de primer orden y   f ( x, y ) con
condición inicial y (a)  c . El intervalo entre a y b se divide en sub-intervalos,
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  que son aproximaciones a los valores exactos
y ( x1 ) y ( x 2 ) y ( x3 ) y ( x 4 )  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:
y i 1  y i  h f  x i , y i  (6.2)

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-1


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.

Supóngase que: y   y con condición inicial y (0)  1 . La solución exacta en este caso
es conocida: y  e x . Empleando el método de Euler: y i 1  y i  h y i  1  h  y i . Con
dos distintos intervalos h  0.2 y h  0.1 se obtienen:

Solución exacta Solución con h  0.2 Solución con h  0.1

i xi y xi   e xi yi h fi Error yi h fi Error

0 0 1.000 1.000 0.200 0 1.000 0.100 0


1 0.1 1.105 1.100 0.110 -0.005
2 0.2 1.221 1.200 0.240 -0.021 1.210 0.121 -0.011
3 0.3 1.350 1.331 0.133 -0.019
4 0.4 1.492 1.440 0.288 -0.052 1.464 0.146 -0.023
5 0.5 1.649 1.610 0.161 -0.039
6 0.6 1.822 1.728 -0.094 1.771 -0.051

El error es aproximadamente proporcional al intervalo h y en este caso crece con x .

En un análisis más detallado se observa que el error de truncación local, es decir el error
2
 
introducido en cada paso, es de O h . Sin embargo, como el número de pasos que se
realizan para integrar la EDO en un intervalo dado es inversamente proporcional a h , el
error global o total es de O h  .

Podría eliminarse el término dominante del error mediante la extrapolación de


Richardson:

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 finales 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:

xi y xi   e xi y(x,0.2) y (x,0.1) 2 y( x,0.1)  y( x,0.2) Error

0.2 1.221 1.200 1.210 1.220 -0.001


0.4 1.492 1.440 1.464 1.488 -0.004
0.6 1.822 1.728 1.771 1.814 -0.008

La solución de la ecuación y   f ( x, y ) depende de la condición inicial y (a)  c . Se


tiene así como solución una familia de curvas o trayectorias y ( x, c) , que en el intervalo
de interés pueden ser convergentes o divergentes. Esta es una característica de la

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-2


ecuación diferencial, no del procedimiento numérico empleado en su solución. Los
errores de redondeo o de truncación producen un cambio de trayectoria (y pueden
entonces verse como equivalentes a resolver un problema con condiciones iniciales algo
distintas). Las figuras bosquejan soluciones numéricas obtenidas para el caso en que
las trayectorias divergen, en el que los errores tienden a acumularse y para el caso
contrario, cuando las trayectorias son convergentes.

Para x  x n el error acumulado en la solución numérica está dado por:  n  y n  y ( x n )

  n 1   n  ( y n 1  y n )  ( y ( x n 1 )  y ( x n ))

Para el método de Euler: y n 1  y n  h f ( x n , y n )

Por otro lado, de la expansión en series de Taylor:

y ( xn1 )  y ( xn )  h y ( xn )  12 h 2 y ( xn )  

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 )) 
y x  xn
y  y ( xn )

Y por el teorema del valor medio:


f f
f ( x n , y n )  f ( x n , y ( x n ))  ( y n  y ( x n ))  n
y x  xn y x  xn
y  y 

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 

Si en cambio f y  0 el error crece y el proceso sólo podría funcionar si el intervalo


fuera muy pequeño. Tal es el caso del ejemplo precedente, pero no el del ejemplo

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-3


siguiente. Considérese la ecuación y   1000 ( x 2  y )  2 x con y (0)  0 . Es fácil
verificar que la solución exacta es y  x , pero con el método de Euler se obtienen:
2

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

Los resultados muestran oscilaciones típicas de una inestabilidad numérica.


f
Reduciendo h no se elimina la inestabilidad; que se origina porque  1000 .
y
Algunas alternativas, no siempre mejores, se presentan en las secciones siguientes.

6.2.2 Métodos de Runge Kutta

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.

Considérese el caso en que f ( x, y ) se calcula en dos puntos en el intervalo x n , x n 1  :

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ˆ ) (6.3)

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

Pero yˆ  y n   h f ( x n , y n ) , por lo que se obtiene:


 
y n 1  y n  (   ) h f ( x n , y n )    h 
f
 x
2
x  xn
 f ( xn , y n )
f
y x  xn 
 
  O h3
 y  yn y  yn 

Por otro lado, expandiendo y ( x n  h) en series de Taylor:


y( xn  h)  y( xn )  h y ( xn )  12 h 2 y ( xn )  O h 3  
Pero: y ( x n  h)  y n 1
y( xn )  y n
y ( x n )  f ( x n , y ( x n ))  f ( x n , y n )
 y  f  y  f f f
y      y ( x n )   f ( xn , y n )
x x x y x x  xn y x  xn
y  yn y  yn

Sustituyendo estas expresiones e identificando coeficientes se obtienen:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-4


   1
   12
 
Con un error de truncación local de O h 3 y global de O h 2 .  
De las infinitas alternativas de selección para    tres son las más comunes:

La fórmula del punto medio   12   0   1 :


h
yˆ  y n  f ( xn , y n )
2 (6.4a)
y n 1  y n  h f ( x n  12 h, yˆ )

El método de Heun, también conocido como Euler modificado   1     12  :

yˆ  y n  h f ( x n , y n )

y n 1  y n 
h
 f ( xn , y n )  f ( xn  h, yˆ ) (6.4b)
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

por el método de los trapecios.

El método de Ralston (1962) es, entre los métodos de RK de segundo orden global, el
que tiene el menor coeficiente en el término dominante del error de truncación:
k1  f  x n , y n 
k 2  f x n  34 h, y n  34 k1 h  (6.4c)
y n 1  y n  h  k1  k 2 
1
3
2
3

4
Análogamente, pueden obtenerse fórmulas con un error de truncación local de O h y  
global de O h  : 3

k1  f  x n , y n 
k 2  f x n  12 h, y n  12 k1 h 
k 3  f  x n  h, y n  k 1 h  2 k 2 h  (6.5a)

y n 1  y n  16 h k1  4k 2  k 3 
o bien:
k1  f  x n , y n 
k 2  f x n  13 h, y n  13 k1 h 
k 3  f x n  23 h, y n  23 k 2 h  (6.5b)

y n 1  y n  14 h k1  3 k 3 

Si f fuera independiente de y las expresiones precedentes equivaldrían al método de


Simpson.

El método comúnmente denominado de Runge – Kutta es un proceso con error global de


 
O h4 :

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-5


k1  f  x n , y n 
k 2  f x n  12 h, y n  12 k1 h 
k 3  f x n  12 h, y n  12 k 2 h  (6.6)
k 4  f  x n  h, y n  k 3 h 
y n 1  y n  16 h k1  2k 2  2k 3  k 4 

Que también coincide con la regla de Simpson en el caso en que f no es función de y :

 f ( xn )  4 f ( xn  12 h)  f ( xn  h)
xn 1


h
y n 1  y n  y ( x) dx 
xn 6
Como ejemplo de aplicación de este método, considérese la ecuación diferencial:
1
y   ( x  y) 2

con condición inicial y(0.4)  0.41 . Trabajando con h  0.4 , las operaciones en un paso
serían:
k1  f x n , y n   ( x n  y n ) 2  (0.4  0.41) 2  0.9
1 1

k 2  f x n  12 h, y n  12 k1 h   ((0.4  0.2)  (0.41  0.18)) 2  1.09087


1

k 3  f x n  12 h, y n  12 k 2 h   ((0.4  0.2)  (0.41  0.218 174 )) 2  1.10823


1

k 4  f x n  h, y n  k 3 h   ((0.4  0.4)  (0.41  0.443 292 )) 2  1.285805


1

y n 1  y n  16 h k1  2k 2  2k 3  k 4   0.41  0.438 934  0.848 934

Muchos otros métodos de Runge Kutta son posibles. Véase por ejemplo Ralston y
Rabinowitz (1978).

¿Cuál de las múltiples variantes de Runge - Kutta es más conveniente?

Al resolver una ecuación diferencial de la forma y'  f ( x, y) , un método de Runge-Kutta


de cuarto orden (global) requiere cuatro evaluaciones de la función f en cada paso,
mientras que el método de Euler requiere sólo una. Por tanto, si el método de Runge-
Kutta de cuarto orden es mejor, debe producir con intervalo h resultados más precisos
que el método de Euler con intervalo h / 4 . Similarmente, debe producir resultados
mejores que el método de Heun (o cualquier otro Runge-Kutta de segundo orden) con
intervalo h / 2 . En la tabla siguiente se muestran resultados obtenidos al resolver
y '  1  ( x  y ) con condición inicial y(2)  1 en el intervalo 2  x  20 . Se compara la
2

1
solución exacta y  x  (1  x) con las soluciones obtenidas para la ecuación
diferencial empleando los métodos de Euler, Runge-Kutta de segundo orden y Runge-
Kutta de cuarto orden, con intervalos h / 4 , h / 2 y h  0.5 , respectivamente.

xn y exacto y Euler r y Heun y punto medio y RK 4


h  0.125  h  0.25  h  0.25  h  0 .5 
2.00 1.000000 1.000000 1.000000 1.000000 1.000000
2.50 1.833333 1.858460 1.827903 1.823490 1.833323
3.00 2.500000 2.523189 2.495438 2.491865 2.499971
3.50 3.100000 3.119220 3.096516 3.093853 3.099975
4.00 3.666667 3.682481 3.663991 3.661982 3.666647

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-6


xn y exacto y Euler r y Heun y punto medio y RK 4
h  0.125  h  0.25  h  0.25  h  0 .5 


18.00 17.941176 17.942413 17.941062 17.940983 17.941176
18.50 18.442857 18.444036 18.442749 18.442674 18.442856
19.00 18.944444 18.945569 18.944342 18.944271 18.944444
19.50 19.445946 19.447021 19.445849 19.445782 19.445945
20.00 19.947368 19.948397 19.947276 19.947213 19.947368

6.2.3 Estimación del Error y Control del Paso

Al utilizar los procedimientos de paso simple descritos en las secciones precedentes, el


intervalo h puede ajustarse en forma automática. Esto es necesario al integrar
ecuaciones cuya solución varía lentamente en algunas regiones y muy rápidamente en
otras.

Lo primero es poder estimar el error en al integrar las ecuaciones en el paso n con un


cierto intervalo h . El error relativo puede definirse como en / máx ( yn ,  ) , donde   0 es
un valor constante que protege de la posibilidad de un y n excesivamente pequeño. Si el
error relativo excede la tolerancia, t , podría repetirse el paso con intervalo h / 2 . Si en
cambio el error relativo es muy pequeño en comparación a t (por ejemplo, del orden de
t / 10 ) se acepta el paso y se intenta el paso siguiente con intervalo 2h . Mejor aún, si el
proceso tiene un error global de orden h p el intervalo puede ajustarse con la expresión:
1

 tolerancia  p 1
h nuevo  0.8   h previo
 error relativo 

en la que 0.8 es un coeficiente arbitrario para reducir el intervalo de modo conservador.

Supóngase que se resuelve una ecuación diferencial con un procedimiento de Runge –


Kutta de cuarto orden global (el "clásico" método de Runge-Kutta) empleando un
intervalo 2h . La solución, que en lo que sigue se denomina y 2 h , tendría un error de
4
orden ( 2 h ) . Si paralelamente se obtuviera la solución con intervalo h , en lo que sigue
y h , ésta tendría un error de orden (h) 4 . Podría entonces eliminarse el término
dominante del error haciendo una extrapolación (pasiva). Para cada abscisa:
16 yh  y2 h y  y2 h
ycorregido   yh  h
15 15
5
Los resultados así obtenidos tendrían un error de orden (h ) y podría afirmarse que
e  ( yh  y2h ) / 15 . Nótese que si se hiciera una extrapolación activa habría que
considerar el orden del error local.

El error de truncación local puede estimarse mejor comparando los resultados obtenidos
con dos métodos de distinto orden. Con tal fin, se han propuesto métodos "adaptivos" en
los que se aprovechan los cómputos parciales al usar un proceso de orden m para
determinar también los resultados correspondientes a un método de orden m  1 . Una
combinación simple podría ser la cualquiera de los métodos de RK de segundo orden
con el método de Euler, pero hay alternativas más precisas y eficientes.

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-7


A continuación se listan algunos de los procedimientos adaptivos más conocidos:

Método de Bogacki y Shampine (1989)

Este método, implementado en la función ode23 de Matlab, es un Runge - Kutta de


tercer orden global. Con las expresiones:

k1  f xn , yn 
k 2  f xn  12 h, yn  12 k1h  (6.7a)
k3  f xn  h, yn  k 2 h 
3
4
3
4

Se obtiene la aproximación de tercer orden global:

yn1  yn  19 h 2k1  3k2  4k3  (6.7b)


Y luego se determinan:
k 4  f xn  h, y n1 
y  y n  241 h 7k1  6k 2  8k 3  3k 4 
~ (6.7c)

~
Donde y es una aproximación de segundo orden global (a pesar que se obtiene con
cuatro evaluaciones de f ) que se puede comparar con y n1 para estimar
conservadoramente el error de truncación:

en1  y n1  ~
y  1
72
h  5k1  6k 2  8k3  9k 4

Nótese además que el valor k 4 obtenido en un paso es igual al k1 del paso siguiente,
por lo que realmente solo se requieren tres evaluaciones de f en cada paso. En inglés
se dice que es un proceso FSAL (First Same As Last).

Método de Dormand y Prince (1980)

Este es también un método FSAL, que combina expresiones de cuarto y de quinto orden
global, implementado en la función ode45 de Matlab (y es el proceso por defecto en
Simulink). Se usan las expresiones:

k1  f  x n , y n 

k 2  f x n  15 h, y n  15 k1 h 
k3  f x n  103 h, y n  h( 403 k1  9
40
k2 ) 
k4  f x n  54 h, y n  h( 44 k  15
45 1
56
k2  32
9
k3 )  (6.8a)

k5  f x n  89 h, y n  h( 19372 k 
6561 1
25360
2187
k2  64448
6561
k3  212
729
k4 ) 
k6  f x n  h, y n  h( 9017 k 
3168 1
355
33
k2  46732
5247
k 3  176
49
k 4  18656
5103
k5 ) 
Con lo que se obtiene la aproximación de quinto orden global:

y n1  y n  h 35
384
k1  1113
500
k 3  192
125
k 4  2187 k  84
6784 5
11
k6  (6.8b)

Luego se evalúan:

k 7  f x n  h, y n 1 
~
y  y  h 5179 k 
n  57600 1
7571
16695
k3  393
640
k 4  339200
92097
k5  187
2100
k6  1
40
k7  (6.8c)

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-8


~ ~
Donde y es una aproximación de cuarto orden global. La comparación de y con y n1
permite estimar conservadoramente el error de truncación:

en1  yn1  ~
y h 71
k
57600 1
 16695
71
k3  1920
71
k4  339200
17253
k5  525
22
k6  40
1
k7

Nuevamente, se observa que el valor k 7 obtenido en un paso es igual al k1 del paso


siguiente, por lo que realmente solo se requieren seis evaluaciones de f en cada paso.

Método de Fehlberg (1969)

Este método combina expresiones de cuarto y quinto orden global, requiriendo también
seis evaluaciones de f en cada paso:

k1  f  x n , y n 
k 2  f x n  14 h, y n  14 k1 h 

k 3  f x n  83 h, y n  h( 323 k1  9
32
k2 ) 
k4  f x n  12
13
h, y n  h( 1932 k 
2197 1
7200
2197
k2  7296
2197
k3 )  (6.9a)

k5  f x n  h, y n  h( 439 k  8k 2 
216 1
3680
513
k3  845
4104
k4 ) 
k6  f x n  12 h, y n  h( 278 k1  2k 2  3544
2565
k3  1859
4104
k4  11
40
k5 ) 
Con lo que se obtienen las aproximaciones de cuarto orden global:
~
y  yn  h  25
216
k1  1408 k 
2565 3
2197
4104
k 4  15 k 5  (6.9b)

y de quinto orden global:

y n1  y n  h  16
135
k1  12825
6656
k 3  56430
28561
k 4  50
9
k 5  552 k 6  (6.9c)

y en tal caso:

en1  yn1  ~
y h 1
k
360 1
 4275
128
k3  75240
2197
k4  50
1
k5  552 k6

En este proceso los coeficientes están optimizados para reducir el error en la


aproximación de cuarto orden, mientras que en el método de Dormand - Prince están
optimizados para reducir el error en la aproximación de quinto orden global.

Método de Cash y Karp (1990)

En este método se emplean las fórmulas de cuarto orden (global):


~
y  y n  h ( 378
37
k1  250
k 3  125 k  1771
512
k6 )
621 594 4 (6.10a)

Y de quinto orden (global):

y n1  y n  h ( 27 648 k1  k 3  55296 k 4  14277 k  14 k 6 )


2825 18575 13525
48384 336 5 (6.10b)

Que requieren seis evaluaciones de la función f :

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-9


k1  f  x n , y n 
k 2  f x n  15 h, y n  15 k1 h 
k 3  f x n  103 h, y n  3
40
k1 h  9
40
k 2 h
k 4  f x n  53 h, y n  103 k1 h  109 k 2 h  65 k 3 h  (6.10c)

k 5  f x n  h, y n  11 k h  52 k 2 h 
54 1
70
27
k3h  35
27
k 4 h
k 6  f x n  78 h, y n  1631
55296
k1 h  175 k h  13824
512 2
575
k 3 h  110592
44275
k4h  253
4096
k5 h

6.2.4 Métodos de Paso Múltiple

Los métodos tratados anteriormente permiten determinar y n 1 conociendo únicamente el


valor de la función en el punto inmediatamente precedente. Como alternativa a estos
métodos de paso simple pueden plantearse métodos de paso múltiple en los que el
cálculo de y n 1 requiere utilizar varios valores previos y n y n 1 y n  2  .

Un método de este tipo resulta al aproximar y  en la ecuación y   f ( x, y ) por una


diferencia central, con lo que se tiene:

y n  1  y n 1  2 h f ( x n , y n ) (6.11)

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:

 Para el mismo número de evaluaciones de la función f ( x, y ) se tiene un mayor


orden en el error de truncación. Así por ejemplo, el método explícito del punto medio
3
 
tiene un error local de O h , contra O h
2
  en el método de Euler, aún cuando
ambos requieren una sola nueva evaluación de la función f ( x, y ) en cada paso.

 Se presentan dificultades para arrancar el proceso, no siendo suficiente conocer y 0


sino además uno o más valores adicionales y1 y 2  . Estos valores deben
obtenerse con un procedimiento distinto, de orden igual o mayor que el método de
paso múltiple a emplearse.

 Es en general difícil (aunque no imposible) cambiar el intervalo de integración, h (lo


cual, en cambio, no es ningún problema en los métodos de paso simple). Esto
podría reducir la relativa eficiencia de los métodos de pasos múltiples.

 La inestabilidad numérica es un problema más frecuente en los métodos de paso


múltiple que en los métodos de paso simple. Éste y otros temas relacionados se
revisan en la sección 6.2.5.

Métodos de Adams-Bashfort (explícitos) y de Adams-Moulton (implícitos)

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     k 1 f n  k )

Y los correspondientes métodos implícitos de Adams – Moulton:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 10


y n 1  y n  h ( 0 f n 1  1 f n   2 f n 1   3 f n  2     k f n  k 1 )

En estas expresiones f n denota f ( x n , y n ) . Los coeficientes  pueden obtenerse


considerando que:
xn  h y xn  h
y ( x n 1 )  y ( x n )  
xn x
dx  
xn
f ( x, y ( x)) dx

Y aproximando f ( x, y) por un polinomio de interpolación escrito en términos de


diferencias finitas hacia atrás:

y n1  y n  h ( f n  12 f n  125  2 f n  83  3 f n  ) (A-B)

y n1  y n  h ( f n1  12 f n1  121  2 f n1  24


1
 3 f n1  ) (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 ( xn )  h y ( xn )  12 h 2 y ( xn )   
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( xn  h)  y( xn )  h y ( xn )  12 h 2 y ( xn )  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 1 y el global de O h k :  
Métodos de Adams – Bashfort (explícitos): (6.12)

k y n 1  y n  h (1 f n   2 f n 1   3 f n  2     k 1 f n  k )

1 y n 1  y n  h f n Euler
2 y n 1  y n  12 h ( 3 f n  f n 1 )

3 y n1  y n  121 h ( 23 f n  16 f n1  5 f n2 )

Métodos de Adams – Moulton (implícitos): (6.13)

k y n 1  y n  h ( 0 f n 1  1 f n   2 f n 1   3 f n  2     k f n  k 1 )

1 y n 1  y n  h f n 1 Euler inverso
2 y n1  y n  h ( f n1  f n )
1
2
Crank Nicholson
(regla trapezoidal)
3 y n1  y n  121 h ( 5 f n1  8 f n  f n1 )

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 11


Métodos BDF (Backwards Differentiation Formula)

Esta es una familia de métodos implícitos de paso múltiple para resolver EDO de la
forma y   f ( x, y ) . Las expresiones se obtienen de aproximar y (x) interpolando
y n y n 1  y n  s mediante un polinomio p (x ) y sustituir y  por p  para obtener
p ( x n  s )  f ( x n  s , y n  s ) . Son métodos usados en las funciones ode15s, ode23tb y
ode15i de Matlab.

Por ejemplo, para el caso s  2 , suponiendo que el punto n corresponde a la abscisa


x  0 y que se tienen puntos con espaciamiento uniforme h , se tendría (empleando la
interpolación de Lagrange):

( x  h)( x  2h) ( x  0)( x  2h) ( x  0)( x  h)


p( x)  yn  y n 1  y n 2 
(0  h)(0  2h) (h  0)(h  2h) (2h  0)(2h  h)
x 2  3hx  2h 2 x 2  2hx x 2  hx
 yn  y n 1  y n2
2h 2 h2 2h 2

2 x  3h 2 x  2h 2x  h
p ( x)  2
yn  2
y n 1  y n2
2h h 2h 2
Y en la abscisa x n  2  2h :

h p(2h)  12 y n  2 y n1  32 y n2

Finalmente p (2h)  f x n  e , y n  2  , es decir:


1
2
y n  2 y n1  32 y n2  h f xne , y n2 

O bien:
y n 2  43 y n1  13 y n  23 h f xne , y n 2 

En la tabla siguiente se listan métodos BDF con s  6 :

k Método BDF de O(h k ) global (6.14)

1 y n 1  y n  h f n 1

2 y n2  43 y n1  13 y n  23 h f n2

3 y n3  18 y  119 y n1  112 y n  116 h f n3


11 n 2

4 y n4  48 y  36
25 n3
y  16
25 n 2
y  253 y n  12
25 n1 25
h f n4

5 y n5  137
300
y n4  137
300
y n3  137
200
y n2  137
75
y n1  137
12
y n  137
60
h f n 5

6 y n6  147
360
y n5  147
450
y n4  147
400
y n3  147
225
y n2  147
72
y n1  147
10
y n  147
60
h f n 5

En esta tabla se ha usado la notación f n  s para f ( x n  s , y n  s )

Con los planteamientos expuestos, para s  6 se obtienen proceso no estables, que no


deben ser usados. Véase Ascher y Petzold (1998).

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 12


6.2.5 Procedimientos Predictor – Corrector

El error de truncación de una fórmula implícita de paso múltiple 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 )

El superíndice se refiere en este caso a la iteración. Pueden, por supuesto, plantearse


métodos Predictor – Corrector en los que las expresiones empleadas no sean las de
Adams – Bashfort – Moulton. Tal es el caso del método de Milne (un procedimiento
débilmente estable, que no se recomienda):
Error local

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

Corrector: y n(i11)  y n1  13 h ( f n(i )1  4 f n  f n1 ) O  h y ()


1
90
5 v

Supóngase, por ejemplo, la ecuación: y    xy 2 con condición inicial y (0)  y 0  2 . Se


ha obtenido (con algún otro método) y (0.1)  y1  1.980 198 .

Con el predictor y n(0)1  y n  1


2
h ( 3 f n  f n1 ) se tiene:


y 2( 0)  y1  0.05  3 x1 ( y1 ) 2  x0 ( 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.980 198 ) 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

La solución exacta es y  2 (1  x ) , de
2
El proceso es en este caso convergente.
donde y (0.2)  1.923 077

Si el intervalo de integración, h , es demasiado grande, se observan importantes


( 0)
diferencias entre la aproximación inicial obtenida con el predictor, y n 1 , y el valor
(k )
corregido, y n 1 . En tal caso la convergencia es lenta, e incluso podría no producirse.
Por otro lado, diferencias insignificantes implican que h es innecesariamente pequeño.

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 13


6.2.7 Consistencia, Estabilidad y Convergencia

Al emplear una ecuación de diferencias en lugar de la ecuación diferencial, se introducen


errores de truncación en cada paso.

Por ejemplo, en el método de Euler, la expresión:

h2
y ( x  h)  y ( x)  h y ( x)  y ( x)  
2
se remplaza por:
y n 1  y n  h f ( x n , y n )

teniéndose entonces un error de orden h 2 . A esto deben agregarse los errores debidos
a la aritmética imperfecta del ordenador. Evidentemente no es posible determinar estos
errores, pero si pueden hacerse algunas estimaciones.

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 mejor a la solución exacta. Para que el
procedimiento numérico sea convergente debe ser consistente y estable.

Consistencia significa que en el límite h  0 la ecuación de diferencias que define el


método numérico resulta formalmente la ecuación diferencial. Refiriéndose nuevamente
al método de Euler, que puede escribirse:
y n1  y n
f ( xn , y n ) 
h
se observa que:
y( xn  h)  y( xn )
Lim  y ( x n )
h0 h
Si en cambio se escribiera, por ejemplo, y n 1  2 y n  h f ( x n , y n ) no habría
consistencia.

Para que el procedimiento numérico sea convergente no es suficiente que sea


consistente. Se requiere además que sea estable. Un método es estable cuando los
errores de truncación y de redondeo, al propagarse durante el proceso no crecen
incontroladamente y son siempre pequeños en comparación con la solución exacta.

CONSISTENCIA + ESTABILIDAD  CONVERGENCIA

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.

Un ejemplo de inestabilidad numérica

Para una observación inicial sobre el tema de estabilidad, considérese la ecuación


x
diferencial y    y , con condición inicial y (0)  1 , cuya solución exacta es y  e . El
método de Euler podría ser apropiado en este caso. Sin embargo, supóngase que se
emplea la “regla explícita del punto medio”:
y n 1  y n 1  2 h f  x n , y n 

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 14


con intervalo h  0.1 , es decir:
y n 1  y n 1  0.2 y n

Para iniciar el proceso no es suficiente conocer y 0  y (0)  1 . Se requiere además y1 .


Supóngase que se calcula y1  e  h  e 0.1  0.904 837 418 035 96 , con 13 cifras
significativas correctas.

Trabajando con aritmética de doble precisión se obtienen:

i xi y xi  yi ei  y i  y  x i 

0 0.0 1.000000 1.000000 0.000000


1 0.1 0.904837 0.904837 0.000000
2 0.2 0.818731 0.819033 0.000302
3 0.3 0.740818 0.741031 0.000213
...
97 9.7 0.000061 -1.199394 -1.199455
98 9.8 0.000055 1.325440 1.325385
99 9.9 0.000050 -1.464482 -1.464532
100 10 0.000045 1.618337 1.618291

La solución exacta es exponencialmente decreciente, como se indica en línea gruesa en


la figura siguiente. Sin embargo, el procedimiento produce los resultados que se
presentan en línea más delgada. Después de aproximadamente x  5 se obtienen
valores con signos alternados, con amplitud cada vez mayor (que podría llegar a rebasar
el número máximo que puede almacenarse). Esto es una inestabilidad numérica.

2.0

1.5

1.0

0.5
y(x)

0.0
0 2 4 6 8 10 x
12
-0.5

-1.0

-1.5

-2.0

Si se reduce h o se aumenta el número de cifras en los cómputos el problema puede


posponerse, pero no evitarse. ¿A qué se debe esta inestabilidad?

Para analizar lo que sucede, considérese la ecuación diferencial:


y   y

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 15


para la cual el método explícito del punto medio resulta:
y n 1  y n 1  2  h y n
Esta es una ecuación de diferencias lineal de orden 2. Definiendo    h , la ecuación
característica es:

r2  1 2 r

con las raíces:

   
1

r1    1   2 2
 1    12  2  O  4

1
r2  
r1

Al comparar la primera de estas expresiones con la expansión en series:

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

r2n   1 r1 n   1 e  xn


n n

y en consecuencia:

y n  C1 r1n  C 2 r2n  C1e xn   1 C 2 e  xn


n

La solución de la ecuación de diferencias tiene dos “modos componentes”, el primero de


los cuales corresponde a la solución correcta, mientras que el segundo no debería
 xn
existir. En teoría se debería tener C1  1 y C 2  0 , de modo que y n  e , pero no es
así, ni siquiera al iniciarse el proceso. Efectivamente, para el caso    h  0.1 , los
valores iniciales hacen que:
y 0  C1  C 2  1
y1  C1 r1  C 2 r2  e 0.1

de donde, trabajando en doble precisión:


C 2  e 0.1  r1  r 2  r1   7.469 947  10 5

y suponiendo que las operaciones siguientes se efectuaran con una aritmética


infinitamente precisa:

C 2 r2100  7.469 947  10 5 e1000.1  1.645 365

Nótese que este resultado es similar al error observado para x  10 . Por otro lado, aún
cuando inicialmente se tuviera C 2  0 , los errores numéricos introducirían la
componente extraña. El factor  1 explica la alternancia de signos del error.
n

El procedimiento no funciona para  negativo, porque en ese caso el modo extraño


 1n C 2 e x tiende a crecer, mientras que la solución C1e
x
es decreciente. Sin

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 16


embargo, si sirve para el caso (poco práctico) en que  es positivo y la solución es
exponencialmente creciente.

Región de estabilidad absoluta

Puede obtenerse valiosa información con relación al comportamiento de un método


numérico de solución de EDO al observarse cómo funciona con una ecuación de la
forma y    y , donde  es una variable compleja, con condición inicial y (0)  1 . Con
referencia a esta ecuación, se define la región de estabilidad absoluta de un método
numérico como el lugar geométrico de los  h para los que la solución es finita cuando
n. Esto es equivalente a decir que las raíces de la ecuación característica
satisfacen ri  1 .

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. Si el
método es estable para todo Re  h   0 se dice que es A-estable.

Considérese, por ejemplo, el método de Euler:


y n 1  y n  h f  x n , y n 

que aplicado a la ecuación y    y resulta:


y n 1  y n   h y n  1   h  y n

La solución de esta ecuación de diferencias es de la forma y n  r n . Al sustituir esta


solución en la ecuación de diferencias se obtiene la ecuación característica:
r 1  h

La región de estabilidad absoluta queda definida por: 1   h  1 . Esta es el área


dentro de una circunferencia de radio 1 y con centro en (-1,0):

Región de estabilidad absoluta - Método de 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).

Análogamente para el método de Euler inverso:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 17


y n 1  y n  h f x n 1 , y n 1   y n   h y n 1
se obtiene:
1
r
1  h

La región de estabilidad absoluta, en la que r  1 , es en este caso la región externa al


círculo de radio 1 y con centro en (1,0).

Región de estabilidad absoluta - Euler inverso

El método de Euler inverso sería apropiado para el caso en que la solución es


oscilatoria, amortiguada o no. No debería emplearse para integrar ecuaciones cuya
solución es exponencialmente creciente, ya que por consideraciones de estabilidad
requeriría un paso grande, lo que estaría en conflicto con los objetivos de precisión.

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 xn , y n   f xn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 de estabilidad r 1 es
satisfecha por todos los puntos dentro del
elipsoide que se muestra en la figura. Otros
métodos de Runge Kutta de segundo orden,
como el método del punto medio o el método
de Ralston, tienen exactamente la misma
ecuación característica y por lo tanto la misma
región de estabilidad absoluta.

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 18


Por otro lado, para el “clásico” método de Runge Kutta:
k1  h f  x n , y n 
k 2  h f x n  12 h, y n  12 k1 
k 3  h f x n  12 h, y n  12 k 2 
k 4  h f  x n  h, y n  k 3 
y n 1  y n  1
6
k1  2k 2  2k 3  k 4 
se obtienen en este caso:

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

 1  h  h   h   h   y


1 2 1 3 1 4
y n 1 2 6 24 n

Y resulta:

r  1  h  12 h  16 h  h4


2 3 1
24

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:

Región de estabilidad absoluta


Runge - Kutta 4° 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

se obtienen las raíces de la ecuación característica:

 
1
r   h  1   h
2 2

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 19


y para tener ri  1 se requiere que  h sea imaginaria pura, en el rango entre  i y  i
Debe observarse además que este método es débilmente estable, porque para h  0
se tiene r1  r2  1 .

Uno de los mejores métodos de pasos múltiples es la regla trapezoidal o método de


Crank – Nicholson:

y n 1  y n  12 h  f x n , y n   f x n 1 , y n 1 

que para el caso y    y resulta:

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 . Es A-estable.
1  12  h

En cambio, todos los procesos explícitos de pasos múltiples y los procesos implícitos de
orden mayor que 2 no son A-estables. Por ejemplo, el correspondiente método explícito
 
de Adams-Bashfort de O h 2 global no es A-estable. El método se define por:

y n1  y n  12 h 3 f xn , y n   f xn1 , y n1 

y para y    y se tiene:

y n1  y n  12  h 3 y n  y n1 
cuya ecuación característica es:

r 2  1  32 h  r  12 h  0

La región en la que r  1 se muestra en la figura. Nótese


que solo incluye la porción del eje real entre  1 y 0 . Se
concluye que este proceso debe ser usado solo como
predictor; su correspondiente método implícito (el método de
Crank.Nicholson) es mucho mejor.

Las tres figuras siguientes (adaptadas de en.wikipedia.org) muestran (sombreadas en


color gris) las regiones de estabilidad absoluta de tres distintos métodos BDF:

BDF s  2 BDF s  3 BDF s  4

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 20


Ejercicio ilustrativo

Supóngase que se requiere resolver la ecuación diferencial:

u   2 u  f (t )
Con condiciones iniciales u (0)  u 0 y u (0)  0 . Considerando v (t )  u (t ) se
convierte la ecuación diferencial de segundo orden en un sistema de dos ecuaciones
diferenciales de primer orden:

u  v
v  f (t )   2 u
En forma matricial:

u   0 1  u   0  u (0) u 0 
           
v    
2
0  v   f (t ) v(0)   0 
Estas ecuaciones pueden integrarse directamente, pero puede alternativamente
considerarse la descomposición modal (ver acápite 6.4.2):

u  c1 (t ) φ1  c2 (t ) φ 2
Siendo φ 1 y φ 2 los vectores característicos obtenidos de:
 0 1
  φ k  k φ k

2
0 
Haciendo uso de las condiciones de ortogonalidad pueden entonces obtenerse las
ecuaciones desacopladas:

c1  1 c1  b1
c2  2 c2  b2
Se trata de combinaciones lineales de las mismas ecuaciones diferenciales que se
tenían en el sistema de ecuaciones diferenciales planteado en un inicio y las condiciones
estabilidad son las mismas. Siendo los valores característicos imaginarias puras:

1, 2     1

Se concluye que el método de Euler no podría emplearse, como se aprecia en los


resultados numéricos obtenidos para   10 , u 0  1 , t  0.005 :
u 40
30
20
10
0
-10 0 1 2 3 4 5

-20 Euler t
-30 Exacto
-40

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 21


En cambio, si podría emplearse el Euler inverso, o un proceso de Runge-Kutta de O h  4

global (con t  2.7 /  ).


Por otro lado, supóngase que se tiene la ecuación diferencial:

u  2  u   2 u  f (t )
En la que 0    1 . Nuevamente con v (t )  u (t ) se tiene:
u  v
v  f (t )  2  v   2 u
Es decir:

u   0 1  u   0 
        
v    
2
 2   v   f (t )
Y los valores característicos tienen parte real negativa:

1, 2   w    1   2 
por lo que podría emplearse el método de Euler, todos los métodos de la familia de
Runge-Kutta o el método de Crank-Nicholson, entre otros.

6.3. Métodos para EDO de Segundo Orden


Las ecuaciones diferenciales de segundo orden siempre pueden rescribirse como un
sistema de ecuaciones de primer orden. Sin embargo, es más eficiente emplear
métodos más específicos, como los que se describen a continuación.

6.3.1 Runge Kutta

Para resolver EDO de la forma y   f ( x, y , y ) , con condiciones iniciales y ( a )  y 0 e


y ( a )  y 0 se encuentran en la literatura modificaciones de los métodos de Runge Kutta
como, por ejemplo, el proceso de cuarto orden global:
k1  h f xn , y n , y n 
k 2  h f xn  12 h, y n  12 h y n  18 h k1 , y   12 k1 
k 3  h f xn  12 h, y n  12 h y n  18 h k1 , y   12 k 2 
k 4  h f xn  h, y n  h y n  12 h k 3 , y   k 3 
y n 1  y n  16 k1  2k 2  2k 3  k 4 
 
y n1  y n  h y n  16 k1  k 2  k 3   O(h 5 )

En la tabla siguiente se muestran resultados obtenidos con este método al resolver la


ecuación diferencial: y    (1  y 2 ) y   y  0 con   0.5 , y(0)  1 e y (0)  0 :

xn yn y n k1 k2 k3 k4
0.00 1.000000 0.000000 -0.050000 -0.049984 -0.049984 -0.049934
0.05 0.998750 -0.049978 -0.049934 -0.049849 -0.049849 -0.049725
0.10 0.995004 -0.099821 -0.049725 -0.049561 -0.049561 -0.049355
0.15 0.988773 -0.149375 -0.049355 -0.049105 -0.049105 -0.048808

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 22


19.75 0.008445 -0.003791 -0.000327 -0.000319 -0.000319 -0.000310
19.80 0.008248 -0.004110 -0.000310 -0.000301 -0.000301 -0.000291
19.85 0.008035 -0.004410 -0.000291 -0.000282 -0.000282 -0.000273
19.90 0.007807 -0.004692 -0.000273 -0.000264 -0.000264 -0.000254
19.95 0.007566 -0.004956 -0.000254 -0.000245 -0.000245 -0.000236
20.00 0.007312 -0.005201
La solución obtenida se muestra en la figura:

y 1.2
1.0
0.8
0.6
0.4
0.2
0.0
-0.2 0 5 10 15 20
-0.4 x
-0.6

Para el caso y   f ( x, y ) puede usarse el proceso de tercer orden (global):


k1  h f xn , y n 
k 2  h f xn  12 h, y n  12 h y n  18 h k1 
k 3  h f xn  h, y n  h y n  12 h k 2 
y n 1  y n  16 k1  4k 2  k 3 
 
y n1  y n  h y n  16 k1  2 k 2   O(h 4 )

6.3.2 Método de Diferencia Central

Este procedimiento se basa en sustituir las derivadas por sus aproximaciones con
diferencias centrales. Así al resolver:
mu  ku  f t 
u n1  2 u n  u n1
n 
se puede aproximar la segunda derivada con: u
(t ) 2
(t ) 2
de donde resulta: u n1  2 u n  u n1  ( f (t )  k u n ) .
m
Cuando la ecuación es de la forma: mu  cu  ku  f t  conviene aproximar la primera
derivada mediante una diferencia central:
u n1  u n1
u n 
2 t
Y no con una diferencia hacia atrás, que a primera vista podría parecer una mejor
elección. Esta consideración se relaciona con el tema de estabilidad, que se trata más
adelante. Con la aproximación antes mencionada se obtiene:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 23


 m c   2m   m c 
   u n1  f t n    k   un    
 (t ) 2 2 t    2   (t ) 2 2 t  u n1
   ( t )   
Para el caso en que c  0 conviene escribir el proceso en la forma sumada:

mun  f n  k u n

u n  1  u n 1  un t
2 2

u n1  u n  u n 1 t
2

cuya interpretación física es simple. En el paso inicial: u 1  u0  12 u


n t
2

6.3.3 Método de Newmark

La familia de métodos de Newmark se basa en aproximaciones de la forma:

u n 1  u n  t (1   ) un   un 1 

u n 1  u n  t u n  t 
2
( 12   ) un   un1 
El caso con   1
2 y  1
6 corresponde a suponer que u (la aceleración) varía
linealmente en el intervalo. Aparentemente esa elección sería mejor que   1 2 y
  1 4 (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. El método
de diferencia central equivale a considerar   1
2 y  0.

Al remplazar las aproximaciones anteriores en:

m un 1  c u n 1  k u n 1  f 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  a2 u n  a3un )  c (a1u n  a4 u n  a5 un )

Y conocido u n 1 se pueden determinar los nuevos valores de u y u mediante:

un 1  a0 (u n 1  u n )  a 2 u n  a3 un
u n 1  u n  t (1   ) un   un 1 
Donde los coeficientes a0  a7 son:
1  1
a0  a1  a2 
 (t ) 2  t  t
1  t   
a3  1 a4  1 a5    2 
2  2  

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 24


6.3.4 Método de Hilber, Hughes y Taylor

Se trata de una modificación del método de Newmark, cuyo propósito es (al resolver
grandes sistemas de ecuaciones diferenciales) introducir disipación adicional en las
componentes de alta frecuencia. Se usan las expresiones:

m un1  c u n1  (1   ) k u n1   k u n  f n1

u n1  u n  t  (1   ) un   un1 

un1  un  t un  t 


2
 12   un   un1 
La notación aquí usada es la de la publicación original de Hilber et al (1977); en algunas
publicaciones  está cambiada de signo. Comparando estas expresiones con las que
definen la familia de métodos de Newmark, se observa que en el método de Hilber,
Hughes y Taylor se ha introducido disipación viscosa adicional:

 u  un 
  k t  n1   cadicional u
 t 

6.3.5 Estabilidad y Precisión

Todos los métodos para resolver EDO de segundo orden pueden ser escritos en la
forma:
u n1  A u n  b n

donde u n  (u n t u n (t ) 2 un ) representa ahora el conjunto de resultados que


describen la respuesta en el paso n . 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

En esta expresión los  i son los valores característicos de A y  (A) es denominado


radio espectral.

El análisis que sigue supone una forma simplificada de la ecuación diferencial, con c  0
(sin disipación). En tal caso:

1   a 2 1 1
 
 2 
1  
A     a2 1  (1   ) (   ) a 2 1    (1   ) ( 12    ) a 2 
d 
 
 a
2
 (1   ) a 2
 (1   ) ( 2   ) a
1 2

donde:

  k /m
a   t
d  1  (1   )  a 2

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 25


El polinomio característico de A resulta: 3  A1 2  A2   A3  0 , donde:

A1  traza de A
 a22 a23  a a13  a a12 
A2  det    det  1   det  11 
a a33  a a33  a a22 
 32  31  21
A3  det ( A)

son las invariantes de la matriz A .

Para el caso particular del método de diferencia central:   0 ,   0 ,   1/ 2 y se


obtiene:

 1 1 1

 2 
 
A    12 a 2 1  12 a 2 1
2
 14 a 2 
 
 1 2 
 a  a2 2a 
2

y por lo tanto:

A1  2  a 2
A2  1
A3  0

Los valores característicos resultan 1  0 y 2,3  (1  12 a )  (1  12 a )  1


2 2 2

Para cumplir la condición  ( A)  1 se requiere que a   t  2 , es decir, el método de


diferencia central es condicionalmente estable:
2 T
t  
 
Si t excede ese límite se produce una inestabilidad numérica. El límite corresponde a
algo más que tres puntos por período, lo que sin embargo resulta insuficiente para tener
buena precisión. Con t  T / 10 se introducen errores del orden de 3% en cada paso,
mientras que con t  T / 20 los errores son del orden de 1%.

Para la familia de métodos de Newmark (   0 ) pueden también obtenerse las


condiciones de estabilidad:
  0.50
  0.25 (0.5   ) 2

Con una apropiada selección de los parámetros (lo habitual es   1


2 y   1
4 , lo que a
veces se denomina la regla trapezoidal) se tiene un procedimiento incondicionalmente
estable, es decir estable para cualquier selección de  t . La precisión es similar a la que
se tiene con el método de diferencia central. Con   1
2 el método es no disipativo (el
radio espectral es igual a 1 para cualquier  t ). Si en cambio se toma   0.6 se
requiere   0.3025 para que el procedimiento sea incondicionalmente estable y el
proceso introduce disipación, que es función de t / T .

El método de Hilber, Hughes y Taylor tiene las mismas condiciones de estabilidad que el
de Newmark y adicionalmente  1 2    0 , pero el rango adecuado es  1 3    0 .

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 26


En la figura siguiente, adaptada de Hilber et al. (1977) se muestra el radio espectral para
distintos métodos, como función de t / T .

Radio espectral como función de t/T

Excepto cuando   0 y   1
2 (diferencia central y el método de Newmark de
aceleración constante) los diversos métodos introducen una disipación ficticia, mayor
cuanto más fuerte sea la desigualdad  ( A)  1 . Por otro lado, todos los métodos
Por ejemplo, si se integra u   u  0 con
2
producen una elongación del período.
t  0.05 T  0.1  /  , el método de diferencia central y el de Newmark de aceleración
constante (con   0.25,   0.5 ) alargan el período en aproximadamente 0.6% en cada
ciclo, mientras que con Hilber et al. se tiene 4% si   0.1 y 5% si   0.3 . Es decir,
aún cuando el proceso sea incondicionalmente estable hay un límite para  t . Al resolver
una sola ecuación diferencial (en lugar de un sistema de ecuaciones diferenciales
acopladas) es el requisito de precisión el que controla el intervalo.

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, o el método de diferencia central, y por tanto no son
convenientes.

6.4. Sistemas de Ecuaciones Diferenciales Ordinarias

6.4.1 Integración Directa

Cuando las EDO son no lineales, y en consecuencia no es factible la descomposición


modal a la que se hace referencia en la sección siguiente, cabe la posibilidad de integrar
directamente las ecuaciones en su forma original. Las expresiones son prácticamente
las mismas usadas para el caso de una sola ecuación diferencial, excepto que todas las

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 27


operaciones son realizadas con matrices. Así, por ejemplo, para resolver el sistema de
EDO de primer orden:
y   f ( x, y)

Podría emplearse el método de Runge Kutta de cuarto orden:


k 1  f  xn , y n 
k 2  f xn  12 h, y n  12 k 1h 
k 3  f xn  12 h, y n  12 k 2 h 
k 4  f xn  h, y n  k 3 h 
y n1  y n  16 h k 1  2k 2  2k 3  k 4 
(como es habitual, las minúsculas en letras negritas denotan matrices columna).
Análogamente, para resolver el sistema de ecuaciones diferenciales de segundo orden:
  K u  f t 
Mu
podría emplearse el método de diferencia central:
 n  f t n   K u n
Mu
u n  1  u n 1  u
 n t
2 2

u n 1  u n  u n  1 t
2

El método de diferencia central es particularmente eficiente para el caso de EDO no


lineales si la matriz M es diagonal (una aproximación frecuente en ingeniería). Puede
anotarse que en el caso de ecuaciones no lineales no requiere obtenerse K
explícitamente, sino más bien el producto K u (lo que puede ser notoriamente más
fácil).

Otra posibilidad para resolver ecuaciones de la forma M u  n1  C u n1  K u n1  f n1
sería el método de Newmark, en el que u n 1 se obtiene de:
ˆu ˆ
K n 1  f n 1

K ˆ  K  a M  a C  LU
0 1

fˆ n1  f n1  M (a0 u n  a 2 u n  a3u


 n )  C (a1u n  a 4 u n  a5 u
 n )

y luego:
 t t  a0 (u t t  u t )  a2 u t  a3 u
u  t
u t t  u t  a6 u
 t  a7 u
 t t

Los coeficientes a 0  a 7 son los mismos de la sección 6.3.3.

Al resolver EDO no lineales el método de Newmark, en la forma antes descrita, requeriría


ˆ  L U en cada paso. Si la no linealidad no es muy severa, el
una nueva factorización K
proceso podría mejorarse descomponiendo K̂ en dos partes y pasando los términos no
lineales al segundo miembro, como parte de fˆ n 1 .

6.4.2 Descomposición Modal

Cuando el sistema de ecuaciones diferenciales es lineal, y particularmente si las


matrices que definen el sistema de ecuaciones diferenciales son simétricas y definidas

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 28


positivas, el procedimiento más eficiente se basa en la descomposición modal. Para
mostrar en qué consiste la descomposición modal, supóngase que se tiene el sistema de
ecuaciones diferenciales:
Bx  Ax  f (t )

Las matrices A y B son simétricas (y muy frecuentemente definidas positivas). La


descomposición modal emplea los vectores característicos  ι obtenidos de:
A  i  i B  i

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

Nótese que, siendo las matrices A y B constantes, los vectores característicos  ι no


son función de tiempo. Sin embargo, las componentes no pueden en general ser
constantes, puesto que la solución no los es. Por lo tanto:

x (t )   a (t ) 
j j

Al sustituir las expresiones anteriores en el sistema de ecuaciones diferenciales se tiene:

 a j B j  a j A  j  f (t )

Conviene ahora recordar las condiciones de ortogonalidad:

*s B  r   rs
*s A  r  r  rs

Para simplificar la presentación, se ha supuesto que los vectores característicos están


normalizados respecto a la matriz B .
Τ
Al pre multiplicar las ecuaciones por  ι :

 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 )

Por otro lado, si las condiciones iniciales son x(0)  x 0 , entonces:

x 0  x(0)   a (0) 
j j

Τ
y por lo tanto, al premultiplicar por  ι B :

ai (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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 29


poco importantes, y pueden despreciarse. Por ello, se justifica plenamente el trabajo de
determinar previamente los valores característicos.

Las ecuaciones desacopladas puede resolverse con algunos de los procedimientos


numéricos tratados en la sección 6.2. Por ejemplo, si los valores característicos fueran
negativos podría emplearse el método de Euler. En el caso en que las funciones f (t )
son simples podría también pensarse en una solución analítica. Obtenidas cada una de
las componentes como función de tiempo, puede regresarse a la expresión:

x(t )  a j j

para hallar la solución x(t ) .

Un caso frecuente es aquel en el que f (t )  f 0 g (t ) y la función g (t ) está definida por


una colección de valores numéricos correspondientes a valores t uniformemente
espaciados. En un intervalo cualquiera puede hacerse la aproximación: g (t )  a t  b ,
de donde, para cada una de las ecuaciones desacopladas se tiene:

ai  i ai  Τι f 0 (a t  b)

Cuya solución puede obtenerse fácilmente (sumando la solución homogénea C e   t y la


particular, de la forma A t  B ):

Conociendo a i al inicio del intervalo, puede obtenerse la constante C y calcularse


entonces el valor de a i al finalizar el intervalo. El proceso se repite análogamente para
los sucesivos intervalos.

Cabe anotar que este procedimiento es incondicionalmente estable. En realidad, sería


exacto si la función fuera efectivamente lineal por intervalos. La aproximación está en
haber descrito la función g (t ) con un número finito de valores numéricos, a partir de los
cuales se está interpolando linealmente.

Las mismas ideas pueden aplicarse a sistemas lineales de ecuaciones diferenciales de


  C u  K u  f . En este caso podrían primero determinarse los
segundo orden: M u
valores y vectores característicos del problema: K    M  . Aquí se ha supuesto que
2

K y M son no sólo simétricas, sino también definidas positivas, por lo que los    2
son positivos.

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

Los vectores característicos satisfacen las condiciones de ortogonalidad:

*s M  r   rs
*s K  r  r2  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 :

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 30


ai  2  i ai  i2 ai  Τι f (t )

Estas ecuaciones pueden también ser resueltas numéricamente, por procedimientos


tales como el método de diferencia central o el método de Newmark de aceleración
constante.

En el caso frecuente en el que f (t )  f 0 g (t ) , estando g (t ) definida por una colección


de valores numéricos a intervalos constantes, puede seguirse un procedimiento similar al
descrito antes para ecuaciones diferenciales de primer orden.

6.4.3 Consideraciones Adicionales

En el acápite 6.3.5 se mencionó que al resolver una ecuación diferencial de segundo


orden el intervalo está controlado por precisión y no por estabilidad. La situación es
diferente cuando se resuelven grandes sistemas de EDO. Los comentarios siguientes
parecieran referirse solo a sistemas de EDO lineales, pero realmente son también
aplicables a ecuaciones no lineales, que pueden ser linearizadas localmente.

Al integrar directamente un sistema de EDO se están haciendo operaciones equivalentes


a integrar las ecuaciones desacopladas; simplemente el sistema de referencia es
distinto. El procedimiento será estable cuando el intervalo de integración cumpla las
condiciones de estabilidad con todos y cada uno de los modos componentes. Por lo
tanto, para un método como el de la diferencia central:
2 Tmín
t  
 máx 

Cuando se tiene un comportamiento no lineal los períodos T tienden a crecer (y los 


tienden a reducirse), por lo que la estimación del  t sobre la base de las condiciones
iniciales es en general suficiente.

Por otro lado:

1   2     máx

T1  T2    Tmín

y habitualmente al cumplir la condición de estabilidad se tendrán cientos y tal vez miles


de puntos por período para los modos asociados a las menores frecuencias, que son los
importantes en la respuesta. En resumen, al resolver grandes sistemas de EDO con un
procedimiento condicionalmente estable, satisfacer la condición de estabilidad implica
que se tiene también precisión.

En cambio, al emplear un método incondicionalmente estable es la precisión la que


siempre controla el intervalo de integración. Éste debe escogerse de modo que se
integren con suficiente precisión todos aquellos modos cuya participación en la
respuesta es significativa.

  Au  0 en la que la matriz A es:


Considere el sistema de ecuaciones diferenciales u

 200 .5 199 .5 
A 
 199 .5 200 .5 
 

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 31


Los valores característicos de la matriz A son 1  12  1 y  2   22  400 .
Supóngase que las condiciones iniciales son:

 1.01  0
u ( 0)    u (0)   
 0.99  0
En este caso es fácil obtener la solución exacta:

 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.

Supóngase ahora que se usa el proceso de diferencia central:


 n   Au n
u
u n 1 2  u n 1 2  t u
 n
u n1  u n  t u n 1 2

 1.01  0
con condiciones iniciales u 0    0   
 y u 1 2  u (0)  2 t u
1

 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
u

0
0 2 4 6 8 10
-500

-1000 t

Resultados obtenidos con t  0.1001

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 32


2
1
1
0

u
-1 0 2 4 6 8 10

-1
-2
t

Resultados obtenidos con t  0.09

6.5. Problemas de Valor Frontera


En el contexto de sistemas de ecuaciones diferenciales ordinarias, un problema de valor
frontera es aquel en que las variables dependientes deben satisfacer condiciones de
borde en más de un punto. En este acápite se considera el uso de diferencias finitas
para resolver problemas de valor frontera. En estos métodos se aproximan los
operadores de derivación, en contraste con los procedimientos de parámetros
indeterminados (y en particular de elementos finitos) tratados en el capítulo 9, en los que
se hacen aproximaciones para las funciones incógnita.

6.5.1 Método del Disparo

Una ecuación diferencial lineal tal como:

y   p ( x) y   q ( x) y  r ( x)

con condiciones en dos puntos distintos: y (a)  A e y (b)  B puede ser resuelta
combinando dos soluciones obtenidas resolviendo problemas de valor inicial:

u   p ( x) u   q ( x) u  r ( x) con u (a)  A y u ( a )  0

v  p( x) v  q ( x) v  r ( x) con v(a)  0 y v ( a )  1

Puede demostrarse que y( x)  u ( x)   v( x) satisface la ecuación diferencial (y cumple


la condición de borde en x  a ). Finalmente, la pendiente inicial  se determina de
y(b)  u (b)   v(b)  B .
Cuando las ecuaciones diferenciales son no lineales, tal superposición no es válida. En
tal caso se requiere iterar. Por ejemplo, suponiendo la ecuación diferencial no lineal:

y   y  y 2 con y (a)  A e y (b)  B

Podría determinarse u ( x,  k ) resolviendo el problema de valor inicial:

u   u  u 2 con u (a,  k )  A y u ( a,  k )   k

con  k arbitraria. Se ha usado el símbolo u en lugar de y para enfatizar que el


resultado depende de  k . La solución u coincidiría con y si  k fuera la pendiente
inicial correcta. En general se obtendría que F ( k )  u (b,  k )  B  0 , por lo que se
requeriría modificar el valor de  . En este caso el método de la secante es más
eficiente que el de Newton:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 33


F ( k )
 k 1   k 
F ( k )
F ( k )  F ( k 1 )
donde: F ( k ) 
 k   k 1
En lo que sigue se muestran resultados obtenidos al resolver y   y  y 2 con y(0)  1 e
y(1)  4 . Se usó el método de diferencia central en forma sumada, con x  0.05 :

u n  u n  u n2
u n 1 / 2  u n 1 / 2  x u n
u n1  u n  x u n 1 / 2

con condiciones iniciales u (0,  k )  1 y u (0,  k )   k . Empezando con la aproximación


 0  5 se obtiene F ( 0 )  u (1, 0 )  4  0.21923 . Luego, con 1  6 se obtiene
F (1 )  u (1,1 )  4  0.07169 .Iterando con la fórmula de la secante se obtienen
sucesivamente:
 2  5.7536 F ( 2 )  0.00637
 3  5.7295 F ( 3 )  2.16 10 4
 4  5.7303 F ( 4 )  6.16 10 7

6.5.2 Conversión a un Sistema de Ecuaciones Algebraicas

Otra alternativa se basa en definir una "malla" de N  1 nudos uniformemente


espaciados. Para cada nudo interior se obtienen ecuaciones de diferencias al remplazar
las derivadas en la ecuación diferencial (y eventualmente en las condiciones de borde)
por sus aproximaciones con diferencias finitas. Por ejemplo, al resolver:

y   y  f (x) con y (a)  A e y (b)  B

Para cada uno de los nudos interiores de la malla pueden relacionarse los valores
numéricos y n  y ( xn ) mediante:
y n1  2 y n  y n1
 y n  f ( xn )
(x) 2

Adicionalmente a las condiciones en los extremos y 0  A e y N 1  B . Agrupando las


ecuaciones se tendría el sistema de ecuaciones algebraicas:

 2  (x) 2 1   y1   A  f ( x1 ) 
      
   y  0  f ( x2 ) 
 1 2  (x) 2 1  2
    
   0  f ( x3 ) 
 1 2  (x) 2  y 3    2 
       (x)  
         
      
 2  (x) 2  1   y N 1   0   f ( x N 1 )
      
 1 2  (x) 2   y N   B   f ( x N ) 

Esto puede resolverse fácilmente si la ecuación diferencial es lineal, puesto que las
ecuaciones algebraicas resultan también lineales.

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 34


Considérese por ejemplo la ecuación diferencial y   y  2 cos x con y (0)  0 e
y( / 2)   . En la tabla siguiente se muestran los resultados obtenidos considerando
intervalos x iguales a  / 10 y a  / 20 . Se indican también valores extrapolados
considerando que los errores son aproximadamente proporcionales a ( x ) 2 y la solución
exacta y  ( / 2  x) sen x :

x y exacta y x  / 20 y x  / 10 y extrapolada
0.0000 0.000000 0.000000 0.000000 0.000000
0.1571 0.270299 0.269764
0.3142 0.582483 0.581613 0.578948 0.582501
0.4712 0.927065 0.926043
0.6283 1.292607 1.291594 1.288487 1.292629
0.7854 1.666081 1.665199
x y exacta y x  / 20 y x  / 10 y extrapolada

0.9425 2.033281 2.032611 2.030551 2.033298


1.0996 2.379303 2.378877
1.2566 2.689049 2.688850 2.688232 2.689056
1.4137 2.947769 2.947728
1.5708 3.141593 3.141593 3.141593 3.141593

6.5.3 Problemas de Valores y Funciones Características

Una ecuación diferencial lineal y homogénea cuyos coeficientes dependen de un cierto


parámetro  puede tener soluciones no triviales para distintos posibles  (los valores
característicos). Las correspondientes soluciones se denominan funciones
características. Por ejemplo, la ecuación diferencial y    y  0 con condiciones de
borde y(0)  y(1)  0 tiene soluciones no triviales solo si   ( n ) , que en este caso
2

resultan y  A sen (nx) . La amplitud A es arbitraria.

La determinación de los valores y funciones características puede hacerse con


procedimientos numéricos análogos a los descritos en 6.5.1 y 6.5.2.

Considérese por ejemplo la ecuación:

[ p( x) y ]  q( x) y   r ( x) y  0 con y(a)  y(b)  0

en la que p( x)  0 , q( x)  0 y r ( x)  0 son funciones continuas en [a,b]. Suponiendo


una aproximación  k para el valor característico, puede determinarse u (k , x)
resolviendo el problema de valor inicial:

[ p( x) u ]  q( x) u  k r ( x) u  0 con u (k , a )  0 y u (k , a )  1

( u (k , a )
puede tener cualquier valor). Para determinar uno de los valores
característicos debe cumplirse la condición u ( k , b)  0 .

También puede emplearse el procedimiento del acápite 6.5.2. Con las aproximaciones
habituales:
1
(x) 2
p n 1 2  yn1  yn   pn  yn  yn1  qn
1
2
yn   rn y n  0

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 35


el problema se convierte al caso discreto tratado en el capítulo 3:

 a1 c1   y1   y1 
    
b a2 c2  y   y2 
 2  2
  
 b3 a3 c3  y   y3 
  3   
    
       
    
 bN 1 a N 1 c N 1   y N 1   y N 1 
    
 bN a N   y N   y N 

Donde: ai  [( pi  1 2  pi  1 2 ) /( x) 2  qi ] / ri
bi   pi  1 2 / ri /( x) 2
ci   pi  1 2 / ri /( x) 2

El ejemplo siguiente ilustra el método del disparo. Se requiere determinar una función
característica y  x  y el correspondiente valor  tales que:

d  1  dy 
     y  0 con condiciones de borde y(0)  y(1)  0
dx  1  x 2  dx 

Con tal fin, podría resolverse el problema:

y  (1  x 2 ) z
con condiciones iniciales y (0)  0 y z (0)  1
z    y

Note que z (0) es un factor de escala, sin importancia, para la función característica
y  x  ; la verdadera incógnita es  . Con la aproximación  k se integran las dos
ecuaciones diferenciales de primer orden y se obtiene y ( x, k ) . A menos que se haya
acertado con el valor característico, se tendrá y (1, k )  0 .

Se requiere iterar para lograr que f ( )  y(1,  )  0 . Podría iterarse con el proceso de
la secante, o usar el método de Newton, entre otras posibilidades.
dy dz
Para usar el método de Newton se pueden considerar: u  y v
d d
Derivando las ecuaciones diferenciales antes planteadas respecto a  se tendría:

u   (1  x 2 ) v
con condiciones iniciales u (0)  v(0)  0
v   y   u
Estas ecuaciones pueden integrarse paralelamente a las anteriores, obteniéndose
u ( x,  k ) y luego:
y (1,  k )
 k 1   k 
u (1,  k )

A continuación se presentan resultados obtenidos con el método de Newton, anotando


sin embargo que en este caso sería más eficiente el método de la secante. Para integrar

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 36


las ecuaciones diferenciales se ha utilizado un método de Runge-Kutta de segundo
orden global (el método de Heun, también conocido como Euler modificado):

yˆ  y n  x (1  x n2 ) z n
zˆ  z n  x ( k y n )
y n 1  y n  12 x [ (1  x n2 ) z n  (1  x n21 ) zˆ ]
z n 1  z n  12 x [  k y n   k yˆ ]

Con x  0.05 y suponiendo inicialmente  0  3.5 :

x y z ŷ ẑ
0.000 0.00000 1.00000 0.00500 1.00000
0.005 0.00500 0.99996 0.01000 0.99987
0.010 0.01000 0.99982 0.01500 0.99965
0.015 0.01500 0.99961 0.02000 0.99934
0.020 0.02000 0.99930 0.02500 0.99895


0.990 0.52189 -0.36441 0.51829 -0.37355


0.995 0.51823 -0.37351 0.51451 -0.38258
1.000 0.51446 -0.38255

Se ha obtenido y (0 ,1)  0.51446  0 , es decir, la aproximación inicial no es correcta.

Paralelamente pueden obtenerse las derivadas respecto a  :

uˆ  u n  x (1  x n2 ) v n
vˆ  v n  x ( y n  k u n )
u n 1  u n  12 x [ (1  x n2 ) v n  (1  x n21 ) vˆ ]
v n 1  v n  12 x v [ ( y n  k u n )  ( yˆ  k uˆ ) ]

x u v û v̂
0.000 0.00000 0.00000 0.00000 0.00000
0.005 0.00000 -0.00001 0.00000 -0.00004
0.010 0.00000 -0.00005 0.00000 -0.00010

0.990 -0.17462 -0.23600 -0.17695 -0.23555
0.995 -0.17696 -0.23552 -0.17930 -0.23502
1.000 -0.17931 -0.23499

Con lo que se determina la nueva aproximación:


y (0 ,1) 0.5144602
1  0   3.5   6.369186
u (0 ,1) (0.1793053 )

Y en sucesivas iteraciones se obtienen:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 37


k y (k ,1) u (k ,1)

3.5 0.514460 -0.179305


6.369186 0.103470 -0.110657
7.304235 0.008627 -0.092521
7.397480 0.000080 -0.090815
7.398358 0.000000

Referencias
 Ascher U.M. y Petzold L.R. (1998), Computer Methods for Ordinary Differential Equations and
Differential-Algebraic Equations, SIAM, Filadelfia.
 Bathe, K.J. (2014) Finite Element Procedures. 2ª edición. K.J.Bathe, Watertown, MA.
 Bogacki, P y Shampine, L.F. (1989), "A 3(2) pair of Runge–Kutta formulas", Applied
Mathematics Letters 2 (4): 321–325.
 Cash, J.R. y Karp, A.H. (1990), "A variable order Runge-Kutta method for initial value problems
with rapidly varying right-hand sides", ACM Transactions on Mathematical Software 16: 201-
222.
 Dormand, J.R. y Prince, P.J. (1980), "A family of embedded Runge-Kutta formulae", Journal of
Computational and Applied Mathematics 6 (1): 19–26,
 Fehlberg, E. (1969). Low-order classical Runge-Kutta formulas with step size control and their
application to some heat transfer problems. NASA Technical Report 315.
 Hilber, H.M., Hughes, T.J. y Taylor, R.L. (1977), "Improved numerical dissipation for time
integration algorithms in structural dynamics", Earthquake Engineering ans Structural
Dynamics, 5: 283-292.
 Newmark, N.M. (1959), "A Method of Computation for Structural Dynamics" ASCE Journal of
Engineering Mechanics Division, 85: EM3.
 Ralston, A. (1962), "Runge-Kutta methods with minimum error bounds", Math.Comput. 16: 431-
437.
 Ralston, A.y Rabinowitz, P. (1978), A First Course in Numerical Analysis, 2 edición. McGraw-
a

Hill. N.Y. Reimpreso por Dover Publications Inc., N.Y. (2001).


 Sauer, T. (2013). Análisis Numérico. 2ª edición. Pearson Educación. México.
 Shampine, L.F. y Reichelt, M.W. (1997), "The Matlab ODE Suite", SIAM Journal on Scientific
Computing 18 (1): 1–22

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 38


Ejercicios

1. Para cada una de las ecuaciones diferenciales indicadas a continuación, compare la solución
exacta con los resultados obtenidos empleando el método de Euler, un proceso de Runge-
Kutta de segundo orden y otro de cuarto orden, trabajando con intervalos h / 4 , h / 2 y h ,
respectivamente.
Ecuación Condición Intervalo h Solución
diferencial inicial exacta
x
a y'  y(0)  1 0 x4 0.2 y  1  x2
y
y
b y ' 1  y(1)  2 1 x  5 0.2 y  2 x  x ln( x)
x
c y'  ( y  y 2 ) / x y (1)  2 1 x  3 0.1 y  2 x /(1  2 x)

d y'  1  ( x  y) 2 y(2)  1 2 x4 0.1 y  x  1/(1  x)

e y'  cos 2 x  sen 3x y(0)  1 0  x 1 0.05 y  12 sen 2 x  13 cos 3x  43

2. Determine la solución y de las siguientes ecuaciones diferenciales utilizando el método de


Ralston u otro procedimiento de Runge-Kutta de segundo orden global, primero con el intervalo
h indicado, luego con intervalo h / 2 y finalmente por extrapolación (pasiva) obtenga valores
mejorados.
Ecuación Condición Intervalo h Solución
diferencial inicial exacta
y
y(1)  1.5 x3
a y'   x 2 1 x  2 0.1 yx
x 2
b y'  y  x  y / x y(1)  2 1 x  2 0.1 y  x (1  e x 1 )
1
c y '  0. 2 y 2 y (0)  1 0 x2 0.1 y
1  0.2 x
d y'  x  y y(0)  2 0  x 1 0.1 y  x  1  3e  x
2 (1  xy) 1  2x
e y'  y(0)  1 0  x 1 0.1 y
1 x2 1  x2

3. Para las ecuaciones diferenciales propuestas en los puntos anteriores, obtenga la solución en
el intervalo a  x  b indicado en cada caso, utilizando un proceso Predictor - Corrector cuyo
corrector sea la regla de Crank - Nicholson. Con tal fin determine primero una aproximación de
y (a  h) utilizando un método de Runge-Kutta de segundo orden global.

  Au  0
4. Considere el sistema de ecuaciones diferenciales u

 100  50 0  1  0
     
donde A    50 100  50  . Las condiciones iniciales son u(0)  2 y u (0)  0 .
     
 0  50 100  3 0

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 39


 1  1  1 

 
 
   
 

La solución exacta es u  (1  2 / 2)  2  cos 1t   0  cos  2 t  (1  2 / 2)  2  cos 3t
     

 1  
 1
 
 1 
Siendo 1  100  50 2 ;  2  100 ;
2 2
3  100  50 2
2

 Determine la condición de estabilidad al usar el método de diferencia central.


 Utilizando una hoja de cálculo, observe cómo se comporta la solución al trabajar con
intervalos t  0.01, 0.05, 0.10, 0.15, 0.16

5. Un perro, en el campo, observa que su amo corre a lo largo de un camino recto con velocidad
constante v . El hombre está inicialmente en coordenadas (0,0) y se desplaza hacia (0,200 ) .
La posición inicial del perro es (250 ,0) . El perro corre hacia su amo siempre en la dirección en
la que lo observa, con velocidad u , de donde resulta su trayectoria dada por la ecuación:

xy  c 1   y
2

donde c  v / u  0.2 es la razón de velocidades. Proponga un procedimiento numérico para


determinar la trayectoria y prepare entonces una hoja de cálculo que le permita determinar el
punto de encuentro y el tiempo transcurrido.

6. El desplazamiento transversal v de un elemento viga-columna de longitud L , con fuerza axial


N y carga transversal uniformemente distribuida q puede determinarse mediante la ecuación
diferencial:
v
EI  Nv  12 q x ( L  x)
[1  (v) 2 ]
3
2

con condiciones de borde v(0)  v( L)  0 . Dada la simetría en geometría y cargas se puede


considerar 0  x  L / 2 con v( L / 2)  0 . Habitualmente se supone que v 1 , con lo que se
simplifica la ecuación:

EI v  Nv  12 q x ( L  x)

 Determine v(L / 2) para el caso L  500 cm, E  2 10 kg/cm , I  2889 cm (W8x20),
2 4 6

N  0 , q  20 kg/cm. Trabaje con x  L / 100 . Siendo la ecuación diferencial lineal, se


sugiere combinar dos soluciones con distintas v (0) .

 Resuelva luego el problema con distintos valores de N .


 Finalmente resuelva el problema con la ecuación no lineal original.

1 d  du 
7. Determine el menor valor característico de la ecuación diferencial:  r   u  0 con
r dr  dr 
u (1)  0 . Note que puede suponer cualquier u (0) . El origen es un punto singular para la
ecuación diferencial, pero no para su solución. La solución exacta es   5.784

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 40

También podría gustarte