Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mne Tema1
Mne Tema1
Introduccin
Una ecuacin diferencial ordinaria de orden n de una funcin y(x) es una ecuacin de la
forma
F(x, y(x), y! (x), y!! (x), . . . , y(n) ) = 0
donde F es una funcin de la que se requiere que sea continua y derivable. Si es posible, se
despeja la derivada de orden ms alto y se expresa de la forma
y(n) = f (x, y, y! , y!! , y(n1) )
(8.1)
El problema puede ser extremadamente complejo en el caso general. En lo que sigue, vamos a
considerar esencialmente ecuaciones diferenciales de primer orden
y! (x) = f (x, y(x))
y sistemas de ecuaciones diferenciales de primer orden. Aunque parezca un problema excesivamente restringido, es suficientemente general para resolver la mayor parte de los problemas
que se presentan en el mbito cientfico y tcnico. De hecho, cualquier ecuacin diferencial de
orden n, expresada en la forma de la Ec.. 8.1, se puede reducir a un sistema de n ecuaciones
diferenciales de primer orden. Para ello, hacemos el siguiente cambio de variables:
y1 = y, y2 = y! , . . . , yn = y(n1)
con lo que obtenemos el sistema de ecuaciones diferenciales:
143
144
dy1 (x)
= y2 (x)
dx
dy2 (x)
= y3 (x)
(8.2)
dx
dy3 (x)
= y4 (x)
dx
..
.
dyn (x)
= f (x, y1 (x), y2 (x), . . . , yn (x))
dx
Utilizaremos este procedimiento para resolver las ecuaciones diferenciales de segundo orden
que aparecen usualmente en los problemas dinmicos de la Fsica.
En este captulo, vamos a considerar nicamente problemas en los que se especifican condiciones de contorno iniciales, es decir, damos un punto inicial x0 y los valores de la funcin y(x)
(n1)
y sus n 1 primeras derivadas en dicho punto, que denotamos por y0 , y!0 , . . . , y0
, y deseamos
obtener y(x) a partir de x0 , sea en sentido positivo o negativo. Obtendremos la solucin y y sus
derivadas en una red de N puntos, yk = y0 + k h, k = 0, 1, . . . , N, donde h es el paso de integracin, que se elige de acuerdo con la precisin requerida. Los diferentes mtodos de integracin se
caracterizan por un trmino de error de la forma O(hm ) y por el nmero de operaciones necesarias para realizar un paso de integracin. Para un determinado mtodo de integracin, la precisin
aumenta cuando h disminuye. En general, desearemos obtener la solucin y(x) en un intervalo
[x0 , x f ], con una precisin requerida, que determinar el paso de integracin h que deberemos
x f x0
empleart, con lo que el nmero de puntos de la red vendr dado por N =
+ 1. Vamos a
h
considerar en lo que sigue la solucin de una ecuacin diferencial de primer orden,
y! (x) = f (x, y(x))
y discutiremos algunos ejemplos en los que se resuelven ecuaciones de orden superior reducindolas a sistemas de primer orden.
8.2.
Desde que Newton creo su teoria de la dinmica, ha existido un gran inters en la resolucin
numrica de estas ecuaciones, principalmente aplicada a problemas de Astronoma. Las ecuaciones de Newton se planteaban como un sistema de dos ecuaciones diferenciales de primer orden
para los vectores velocidad v y posicin r:
dr(t)
= v(t)
dt
dv(t)
F(r, v,t)
=
dt
m
2
las diferencias hacia atrs
d f (t)
f (t) f (t ) 1 !!
=
+ f (t) + O( 2 )
dt
2
y las diferencias centrales de primer y segundo orden
d f (t)
f (t + ) f (t ) 1 2 !!!
=
f (t) + O( 3 )
dt
2
6
d 2 f (t)
f (t + ) 2 f (t) + f (t )
1
=
2 f (4) (t) + O( 3 )
2
2
dt
12
Estas frmulas se obtienen directamente de los desarrollos en serie de Taylor
1
1
1
f (t + ) = f (t) + f ! (t) + 2 f !! (t) + 3 f !!! (t) + 4 f (4) (t) + O( 5 )
2
6
24
1
1
1
f (t ) = f (t) f ! (t) + 2 f !! (t) 3 f !!! (t) + 4 f (4) (t) + O( 5 )
2
6
24
sumando y restando ambas expresiones.Vamos a exponer los mtodos clsicos ms populares.
8.2.1.
Mtodo de Euler
Consiste en reemplazar las derivadas por las diferencias hacia adelante, con lo que se obtiene
la regla de integracin
r(t + ) = r(t) + v(t)
F(r(t), v(t),t)
v(t + ) = v(t) +
m
que nos permite encontrar los valores de la posicin y la velocidad en una malla temporal de
paso de integracin . Este mtodo es estable si es suficientemente pequeo, y permite obtener
la solucin con la precisin requerida. El mtodo de Euler es un ejemplo de mtodo de un paso,
denominado as porque los valores de r y v en t + dependen slo de los valores en t. El error va
con 2 por lo que requiere pasos de integracin muy pequeos para obtener precisiones numricas
comparables a los errores onservacionales. Por esta razn se idearon mtodos que converjan ms
rpidamente.
146
8.2.2.
Mtodo de Euler-Cromer
Este mtodo es similar al anterior excepto que la velocidad el la primera ecuacin se toma en
el punto final
r(t + ) = r(t) + v(t + )
F(r(t), v(t),t)
v(t + ) = v(t) +
m
El mtodo de Euler-Cromer es mucho ms estable que el mtodo de Euler, esencialmente en problemas de rbitas y oscilatorios, pero desde el punto de vista de precisin numrica es igualmente
pobre.
8.2.3.
En este mtodo, tambin conocido como mtodo del punto medio, se toma la velocidad de la
ecuacin para r como el promedio de las velocidades iniciales y finales, es decir es el promedio
de los mtodos de Euler y Euler-Cromer:
v(t) + v(t + )
2
F(r(t), v(t),t)
v(t + ) = v(t) +
m
r(t + ) = r(t) +
F(r(t), v(t),t) 2
2m
que es la integral exacta cuando la aceleracin es constante. Vemos, por lo tanto, que el error en
la velocidad contina siendo del orden de O( 2 ) pero el error en la posicin es ahora del orden
de O( 3 ).
8.2.4.
Todos los mtodos anteriores implican errores O( 2 ), por lo que son poco eficientes. Un paso
ms all es utilizar diferencias centradas, que dan errores del orden de O( 3 ). El llamado mtodo
del salto de la rana utiliza diferencias centradas tanto en la velocidad como en la posicin:
v(t + ) v(t ) F(r(t), v(t),t)
=
2
m
que da
v(t + ) = v(t ) + 2
F(r(t), v(t),t)
m
Tanto el valor de las posiciones como el de las velocidades est determinado con un error O( 2 ).
Vemos que con este mtodo las posiciones se determinan e, t = 0, 2, 4... mientras que las
velocidades se determinan en t = , 3, ..... Es decir, en el fondo es un mtodo de un paso con
!t = 2 pero con la malla de psiciones y velocidades intercaladas, de donde viene el nombre
del algoritmo. Los valores de las posiciones saltan sobre los de las velocidades. Si empezamos
la integracin en t = 0, entonces calculamos las velocidades en puntos t + (2n 1) y las
posiciones en t + 2n. empezando a partir de n = 1. Como las condiciones iniciales slo estn
dadas en t = 0, necesitamos v() para calcular v(). Esto se puede realizar con un paso hacia
detrs del mtodo de Euler
v() = v(0)
F(r(0), v(0), 0)
m
El mtodo del salto de la rana se presenta frecuentemente con el nombre del mtodo del paso
mitad, reemplazando 2 por :
F(r(t), v(t),t)
m
r(t + ) = r(t) + v(t + /2)
F(r(0), v(0), 0)
2
m
En esta forma resulta evidente que el paso de integracin es y que las velocidades se calculan
en el punto medio del paso de integracin.
La necesidad de puntos de comienzo adicionales a las condiciones iniciales es comn a los
mtodos multipaso, con los que el mtodo del salto de la rana (o del paso mitad) comparte este
inconveniente.
148
F(r(0), v(0), 0) 2
2m
Fn
+ O( 4 )
m
rn+1 rn1
+ O( 2 )
2
con
1 F0 2
2m
Existen muchas variaciones de estos mtodos clsicos, de forma que se mejore la estabilidad
o el orden del error. Actualmente, con la existencia de ordenadores potentes a bajo coste y el
desarrollo de mtodos poderosos con orden de convergencia elevado y la capacidad de estimar el
error cometido, estos mtodos clsicos estn cayendo en desuso, salvo para problemas tpicos de
libro de texto dirigidos a una audiencia sin conocimientos de Clculo Numrico. En lo que sigue
vamos a estudiar la derivacin sistemtica de mtodos con un error O( k ). Consideraremos la
integracin en una variable x, que to tiene que coincidir ni con el tiempo ni con la posicin, que
se incrementa en un paso de integracin h.
r1 = r0 + v0 +
149
! xn+1
xn
f (x, y)dx
h2 !!
h3
hn
hn+1 (n+1)
y (xn ) + y!!! (xn ) + + y(n) (xn ) +
y
( )
2!
3!
n!
(n + 1)!
Los n primeros trminos proporcionan un mtodo de un paso con un error de truncado de orden
hn+1 . Para poderlo utilizar de forma efectiva necesitamos evaluar las derivadas que aparecen en
la expresin. Utilizando la regla de la cadena, obtenemos
y!! (x) = f ! (x, y(x)) = fx (x, y(x)) + fy (x, y(x)) y! (x) = fx (x, y(x)) + fy (x, y(x)) f (x, y(x))
Si denominamos f (1) (x, y(x)) a y!! (x), obtenemos anlogamente
(1)
(1)
(2)
(k2)
(x, y(x)) + fy
150
h2 (1)
hn
hn+1 (n)
f (xn , yn ) + + f (n1) (xn , yn ) +
f ( , )
2!
n!
(n + 1)!
Ejemplo 1
Resolver la ecuacin diferencial y! = y en orden k mediante el mtodo de serie de Taylor.
Solucin: f (x, y) = y, f (1) (x, y) = y, f (2) (x, y) = y, . . . , f (k) (x, y) = y. Si truncamos la serie de
Taylor en orden k tenemos
#
"
hk
h2 h3
y(x + h) = y 1 + h + + + +
2! 3!
k!
con lo que la integracin en n pasos da
"
#n
h2 h3
hk
yn = y0 1 + h + + + +
2! 3!
k!
que es una aproximacin de orden k a yn = y0 enh que es la solucin exacta.
8.3.2.
151
Mtodos de Runge-Kutta
Los mtodos de Runge-Kutta evitan el clculo analtico de las derivadas que aparece en la
serie de Taylor, haciendo la siguiente suposicin:
m
yn+1 = yn + h " i ki
(8.4)
i=1
con k1 = f (xn, yn ) , ki = f (xn + i h, yn + i hki1 ) donde los i , i son constantes que se determinan de forma que la anterior expresin coincida con la serie de Taylor hasta el orden p. Hasta
p = 4, se encuentra que se puede tomar m = p, pero para p > 4 es necesario que m > p y adems
i1
ki = f (xn + i h, yn + h " i j k j )
j=1
es decir es una matriz triangular y cada ki utiliza todos los k j anteriores.. Para p = 5 hay que
tomar m = 6. En cierta manera, se puede considerar que los mtodos de Runge-Kutta aproximan
las derivadas de la serie de Taylor por combinaciones lineales de valores de la funcin f en
puntos comprendidos entre (xn , yn ) y (xn+1 , yn+1 ). Se pueden considerar como una extensin
sofisticada del mtodo del punto medio, tomando una serie de puntos intermedios del intervalo
de forma que la integral
yn+1 = yn +
! xn+1
xn
f (x, y)dx
sea exacta hasta orden h p . La principal desventaja de estos mtodos es que se debe calcular la
funcin f en puntos que no pertenecen a la red de integracin (xn ,yn ). Por otro lado son muchas
sus ventajas, entre las que cabe mencionar la posibilidad de cambiar el paso de integracin en
un momento dado, la estabilidad, la facilidad de programacin, y la posibilidad de estimar los
errores de truncado en los mtodos de Runge-Kutta ms sofisticados.
Vamos a considerar en primer lugar los mtodos de Runge-Kutta de orden 2, que aunque se
utilizan con menos frecuencia que los mtodos de orden 4, su exposicin es muy pedaggica.
Tomamos m = 2, que es el mnimo valor que hace falta para que las derivadas coincidan con la
serie de Taylor hasta segundo orden. La forma del mtodo de segundo orden es por lo tanto:
yn+1 = yn + h (1 f (xn , yn ) + h2 f (xn + 2 h, yn + 2 f (xn , yn )h)
Desarrollando en serie de Taylor la anterior expresin hasta orden h2 obtenemos,
yn+1 = yn + h1 f (xn , yn ) + h2 [ f (xn , yn ) + fx (xn , yn )2 h + fy (xn , yn ) f (xn , yn )2 h]
con lo que, para que la anterior ecuacin coincida con la serie de Taylor hasta segundo orden
yn+1 = yn + h f (xn , yn ) +
h2
( fx (xn , y(xn )) + fy (xn , y(xn )) f (xn ))
2!
152
(8.5)
se conoce tambin como mtodo del punto medio y constituye la justificacin numrica del mtodo del salto de la rana en las ecuaciones de la dinmica. Equivale a tomar la derivada numrica
de y mediante la regla de tres puntos o a realizar la integral de y! (x) mediante la regla del punto
medio, calculando el valor de y(xn +h/2) por el mtodo de Euler.
Cuando el mtodo del punto medio se utiliza de forma que las funciones se calculen slo
en la malla de integracin, el mtodo se convierte en un mtodo de dos pasos, que satisface la
relacin de recurrencia
yn+1 = yn1 + 2h f (xn , yn )
(8.6)
Como y1 no est definido mediante esta relacin de recurrencia y el valor inicial y0 , hay que
calcularlo por otro mtodo. La posibilidad ms simple es emplear el mtodo de Euler para determinarlo
y1 = y0 + h f (x0 , y0 )
aunque si se quiere evitar la introduccin de errores adicionales habra que emplear un mtodo
de segundo orden (un paso de 8.5 por ejemplo). Esta ltima versin del mtodo del punto medio
es ligeramente ms precisa para un valor de h dado que el mtodo del punto medio con 2h (que
equivale al mismo esfuerzo de clculo) ya que los valores de y(xn + h/2) intermedios se calculan
mediante la relacin de recurrencia de segundo orden en vez de por el mtodo de Euler. Sin
embargo es un mtodo inestable para determinadas ecuaciones.
Si tomamos 1 = 2 = 21 , obtenemos la siguiente regla de integracin
1
yn+1 = yn + h ( f (xn , yn ) + f (xn + h, yn + h f (xn , yn )))
2
(8.7)
153
k1 =
k2 =
k3 =
=
=
=
k4 =
=
f
h2 2 2
h3
2 D f + 23 D3 f
2
6
% h3
h2
h2 $ 2
f + 3 hD f + 3 h(k2 f ) fy + 32 D2 f +
23 fxy (k2 f ) + 32 fyy (k22 f 2 ) + 33 D3 f
2
2
6
% h3
h2 2 2
h2 $ 2 2
f + 3 hD f + 3 h fy (h2 D f + 2 D f ) +
3 D f + 232 fxy 2 hD f + 32 fyy 22 h f D f + 33 D3 f
2
6 '
&
' 2&
1
1
1
f + 3 hD f + h2 32 D2 f + 3 2 fy D f + h3 33 D3 f + 32 2 ( fxy D f + fyy f D f ) + 22 3 fy D2 f
2
6
2
&
'
&
'
1
1
1
f + 3 hD f + h2 32 D2 f + 3 2 fy D f + h3 33 D3 f + 32 2 D fy D f + 22 3 fy D2 f
2
6
2
2
2
% h3
h
h $ 2
f + 4 hD f + 4 h(k3 f ) fy + 42 D2 f +
24 fxy (k3 f ) + 42 fyy (k32 f 2 ) + 43 D3 f
2
6
&
' 2
1
f + 4 hD f + h2 4 3 fy D f + 42 D2 f
2
&
'
1
3 1 3 3
2
2
2
2
+h
D f + 4 3 ( fxy D f + fyy f D f ) + 4 3 fy D f + 4 3 2 fy D f
6 4
2
&
'
&
'
1 2 2
1
2
3 1 3 3
2
2
2
2
f + h4 D f + h 4 3 fy D f + 4 D f + h
D f + 4 3 D fy D f + 4 3 fy D f + 4 3 2 fy D f
2
6 4
2
f + 2 hD f +
154
h2
( fx (xn , yn ) + fy (xn , yn ) f (xn , yn ))
2!
h3 (1)
(1)
( fx (xn , yn ) + fy (xn , yn ) f (xn , yn ))
3!
h4 (2)
(2)
+ ( fx (xn , yn ) + f fy (xn , yn ))
4!
h2
h3
= y(xn ) + h f + D f + (D2 f + fy D f )
2
6
4
h
+ (D3 f + 3 f fy D fy + 3 fx D fy + fy D2 f + fy2 D f )
24
h2
h3 2
h4 3
= y(xn ) + h f + D f + (D f + fy D f ) + (D f + 3D f D fy + fy D2 f + fy2 D f )
2
6
24
+
155
Estas ecuaciones tienen una infinidad de soluciones. La solucin escogida por Runge-Kutta
es 1 = 4 = 16 , 2 = 3 = 13 , 2 = 3 = 12 , 4 = 1, que proporciona la regla de integracin
h
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6
k1 = f (xn , yn )
1
1
k2 = f (xn + h, yn + hk1 )
2
2
1
1
k3 = f (xn + h, yn + hk2 )
2
2
k4 = f (xn + h, yn + hk3 )
(8.8)
156
Ejemplo:
Resolver mediante RK4 las ecuaciones de la dinmica para un cuerpo puntual de masa m que
se mueve en una dimensin x sometido a una fuerza constante F .
Tomemos F/m = a.
dx
= v
dt
dv
= a
dt
Tenemos
y=
&
x
v
'
dy
= f(t, x, v) =
dt
k1 = f(t, x, v) =
&
&
v
a
v
a
'
'
&
v + ha/2
a
yn+1
h
= yn + (k1 + 2k2 + 2k3 + k4 ) =
6
&
'
xn + hvn + h2 a/2
=
vn + ah
&
&
&
'
v + ha/2
a
v + ha
a
'
'
'
8.4.
8.4.1.
De especial inters son los mtodos de quinto orden o superior que contienen otro mtodo de
de cuarto orden. Para quinto orden, estos mtodos son de la forma
yn+1 = yn + h (1 k1 + 2 k2 + 3 k3 + 4 k4 + 5 k5 + 6 k6 )
donde las ki coinciden con las funciones de un mtodo de cuarto orden
y!n+1 = yn + h (1 k1 + 2 k2 + 3 k3 + 4 k4 + 5 k5 + 6 k6 )
Las funciones ki se escriben de la forma
i1
ki = f (x + i h, y + " i j k j )
j=1
Notemos que las funciones, que es la parte del algoritmo que consume ms tiempo de clculo,
son las mismas para quinto y cuarto orden. Slo tenemos que formar combinaciones lineales
distintas de las mismas funciones para obtener ambos ordenes de integracin. El error cometido
en un paso de integracin se puede estimar como la diferencia entre los mtodos de quinto y
cuarto orden:
6
lo que nos proporciona la posibilidad de estimar el error cometido en cada paso, con un esfuerzo
numrico mnimo. El mtodo original, debido al Fehlberg, tiene los siguientes valores de los
parmetros.
i
1
2
3
4
5
6
i i
i
0
i j
0
1
4
3
8
12
13
1
4
3
32
1932
2197
439
216
8
27
16
35
28561
56430
9
50
2
55
1
360
128
4275
2197
75240
1
50
2
55
1
1
2
9
32
7200
2197
8
2
7296
2197
3680
513
3544
2565
845
4104
1859
4104
11
40
Hay mtodos similares debidos a England (ver Ralston Rabinowitz) y a Cash y Karp (ver
Numerical Recipes). Notemos que tomamos el valor de la solucin de quinto orden aunque la
estima del error es de la de cuarto orden.
158
8.5.
Un mtodo adaptativo es aquel que cambia el paso de integracin de forma que el error
comertido se encuentre siempre por debajo de cierta tolerancia . Esto siempre es posible en el
caso de mtodos de un paso que permitan la estimacin del error. Los mtodos de Runge-Kutta
que contienen otro de orden inferior permiten realizar una estimacion del error y modificar el
paso de integracin de forma que el error sea inferior a la tolerancia, pero no excesivamente. Si
sabemos que el error va con h5 tenemos que un factor 2 de reduccin de h disminuye el error
1
en 215 = 128
. Podemos ajustar el paso de integracin variando h un factor , h! = h, de forma
que 5 = , siempre que se desve apreciablemente, por encima o por debajo, de la tolerancia
deseada .
" #1/5
h!
= =
h
De esta forma, mantenemos un paso de integracin en un valor ptimo, sin que desperdiciemos
tiempo de clculo ni tengamos errores superiores a los deseados. En el mtodo RK4, la nica
forma de estimar el error es comparar los resultados obtenidos con un paso co h y dos pasos con
h/2. Esto se puede realizar cada cierto nmero de pasos de integracin. Los mtodos adaptativos
son esenciales en problemas donde las condiciones de integracin varan fuertemente, como
suele suceder en muchos problemas de de ingeniera. Como el error es slo una estimacin, en
un programa real tomamos una constante c1 menor que la unidad y hacemos h! = c1 h. Un valor
realista es c1 = 0,8. Tambin debemos evitar variaciones demasiado bruscas de h que puden
resultar incontrolables. Podemos limitar las variaciones de h en un factor c2 = 4, por ejemplo. Si
c1 h > 4h tomamos h! = 4h. Si c1 < 1/4 tomamos h! = h/4.
En el ltimo paso hemos utilizado la ecuacin diferencial para calcular el trmino de error.
Utilizando la frmula de tres puntos de nuevo para calcular la derivada segunda del ltimo tr-
159
#
"
#
"
#
h2
5h2
h2
y(x + h) 1
f (x + h) 2y(x) 1 +
f (x) + y(x h) 1
f (x h)
=
12
12
12
h2 [w(x + h) + 10w(x) + w(x h)]
12
(8.9)
(8.10)
y
h2
12
360
20160
y utilizando de nuevo la frmula de tres puntos para la derivada cuarta
y!! =
y
h2
12
360
y
h2
12
h2
12
360
360
20160
!!
Definiendo
u(x) = y(x)
"
#
h2 !!
h2
y (x) = y(x) 1
f (x)
12
12
160
por lo que la relacin de recurrencia da un+1 = 2un un1 + h2 f (xn )yn con un error de truncado de
h6 (6)
y .
240
u(x)
#
h2
1 f (x)
12
(8.11)
w
n+1 + 10wn + wn1
un+1 = 2un un1 + h2
+"
12
f (xn )un
h
1 f (xn )
12
La solucin buscada y(x) , se obtiene al final a partir de la relacin 8.11 para los puntos deseados:
yn = "
un
#
h2
1 f (xn )
12
161
y0
(3)
y0
(4)
y0 = ( f (x0 )y0 + w0 )! =
h2
[ f (xn+1 , yn+1 ) + 10 f (xn , yn ) + f (xn1 , yn1 )]
12
162
que da yn con un error O(h6 ). Como el clculo del segundo trmino necesita yn+1 , que es la
solucin que queremos determinar, se calcula yn+1 mediante el predictor
(0)
h2
[ f (xn+1 , yn ) + 10 f (xn , yn ) + f (xn1 , yn1 )]
12
y se itera
(k)
/
h2 .
(k1)
f (xn+1 , yn+1 ) + 10 f (xn , yn ) + f (xn1 , yn1 )
12
hasta que se alcance la convergencia (usualmente 3 o 4 veces). Este mtodo se denomina mtodo
implcito de Numerov.
El hecho de que el mtodo de Numerov tiene un error que es una serie de potencias pares de
h, hace posible el utilizar el proceso de extrapolacin al lmite, utilizando pasos de integracin h,
h/2, h/4,... para mejorar la precisin de la solucin y(x) en un punto dado. La extrapolacin al
lmite tambin se puede utilizar para calcular y1 .
8.6.2.
La regla del punto medio tiene un error que es una serie de potencias pares de h. Esto nos
permite utilizar el mtodo de extrapolacin al lmite en la forma que exponemos a continuacin.
Consideramos un paso de integracin H, que es mucho mayor que la longitud usual de un paso
de integracin, y subdividimos H en n subintervalos. Si realizamos una subintegracin dentro de
H, con y0 como valor inicial, obtenemos:
y1 = y0 + h f (x0 , y0 )
y2 = y0 + 2h f (x1 , y1 )
..
.
yn = yn2 + 2h f (xn1 , yn1 )
Entonces sucede que la estima
y(x0 + H, h) =
1
[yn + yn1 + h f (xn , yn )]
2
tiene un error que es una serie de potencias pares de h, con coeficientes independientes de h:
y(x0 + H, h) = y(x0 + H) + A2 h2 + A4 h4 + A6 h6 +
163
Esto nos permite utilizar la extrapolacin de Richardson para calcular y(x0 + H). Para ello tomamos h = H, H/2. H/4, H/8, . . . y construimos la tabla usual de extrapolacin al lmite
R(H)
R(1) (H)
R(H/2)
R(2) (H)
R(1) (H/2)
R(H/4)
R(2) (H/2)
R(1) (H/4)
R(H/8)
..
.
R(3) (H)
con R(H) = y(x0 + H, H), R(H/2) = y(x0 + H, H/2), R(H/4) = y(x0 + H, H/4), . . ., y
R(k) (H/2m1 ) =
8.7.
(k1)
4k R(k1) (H/2m ) Rm
4k 1
(H/2m1 )
Mtodos explcitos
!
y aproximar f (x, y) por el polinomio interpolador en m+1 puntos (xn , yn ), (xn1 , yn1 ), (xnm , ynm ),
m n:
!
y(xn+1 ) = y(xn ) +
xn+1
xn
pm (x)dx
x xn
(s < 0) con lo que tenemos
h
! xn+1
xn
pm (x)dx = h " b j # j fn
j=0
donde
b j = (1)
#
! 1"
s
0
ds
164
La regla de integracin
yn+1 = yn + h [b0 fn + b1 # fn + + bm #m fn ]
se denomina algoritmo de Adams-Bashfort. Expresando las diferencias en trminos de valores
de la funcin, obtenemos expresiones de la forma
yn+1 = yn + h [0 fn + 1 fn + + m fnm ]
donde los i dependen del orden m del polinomio. Los casos particulares para diversos valores
de m son los siguiente: para m = 0
yn+1 = yn + h fn
que es el mtodo de Euler. Para m = 1 tenemos:
h
yn+1 = yn + h [b0 fn + b1 ( fn fn1 )] = yn + (3 fn fn1 )
2
mientras que para m = 2 obtenemos
yn+1 = yn + h [b0 f0 + b1 ( f1 f0 ) + b2 ( fn 2 fn1 + fn2 )] = yn +
h
[23 fn 16 fn1 + 5 fn2 ]
12
! xn+1
xn1
pm (x)dx
= (1)
#
! 1"
s
1
ds
165
! xn+1
xnk
pm (x)dx
4h
(2 fn2 fn1 + 2 fn )
3
Todos los mtodos explcitos realizan una extrapolacin para calcular y(x) entre yn y yn+1 , lo
cual es un problema puesto que, como ya hemos visto, la extrapolacin tiene un error difcil de
determinar y en general es ms imprecisa que la interpolacin. Este problema se corrige mediante
los mtodos implcitos, que interpolan entre yn y yn+1 .
! xn+1
xn
pm+1 (x)dx
x xn+1
h
s=
obtenemos
! xn+1
xn
pm+1 (x)dx = h
" c j # j fn+1
j=0
con
c j = (1)
m+1
#
! 0"
s
1
ds
que depende slo de j y no de la funcin o el orden del polinomio interpolador. Obtenemos por
lo tanto el algoritmo
$
%
yn+1 = yn + h c0 fn+1 + c1 # fn+1 + + cm+1 #m+1 fn+1
166
h
(5 fn+1 + 8 fn fn1 )
12
y finalmente, para m = 2
yn+1 = yn +
h
(9 fn+1 + 19 fn 5 fn1 + fn2 )
24
h
yn+1 = yn1 + ( fn+1 + 4 fn + fn1 )
3
que se conoce como mtodo de Milne-Simpson o mtodo implcito de Simpson. Su error de
truncado es el del mtodo de integracin de Simpson:
t(x, h) =
h4 (4)
f ()
90
Ejercicio: Demostrarlo.
Los algoritmos implcitos necesitan una primera aproximacin a yn+1 . Lo usual es utilizarlos
en la forma conocida como predictor corrector, donde un mtodo explcito se emplea para calcu(0)
lar una primera aproximacin de yn+1 , que llamamos yn+1 , y el corrector se emplea para mejorar
este valor. Tendremos por lo tanto,:
Predictor:
167
.
/
(0)
yn+1 = yn + h b0 fn + b1 # fn + + bk #k fn
Corrector:
.
/
(i+1)
(i)
(i)
(i)
yn+1 = yn + h c0 fn+1 + c1 # fn+1 + + cm+1 #m+1 fn+1
donde k y m son los rdenes del predictor y corrector, respectivamente. Es recomendable que
k = m pero frecuentemente se emplean k y m distintos. El mtodo ms sencillo es k = 0 y m = 0
(0)
yn+1 = yn + h fn
/
h . (i)
(i+1)
f
+ fn
yn+1 = yn +
2 n+1
conocido como mtodo de Euler modificado. Cuando m = k = 2, tenemos el mtodo de AdamsMoulton de tercer orden:
(0)
h
[23 fn 16 fn1 + 5 fn2 ] + O(h4 )
12
/
h . (i)
= yn +
9 fn+1 + 19 fn 5 fn1 + fn2 + O(h5 )
24
yn+1 = yn +
(i+1)
yn+1
h
[55 fn 59 fn1 + 37 fn2 9 fn3 ] + O(h5 )
24
/
h . (i)
9 fn+1 + 19 fn 5 fn1 + fn2 + O(h5 )
= yn +
24
yn+1 = yn +
(i+1)
yn+1
Los mtodos de predictor-corrector tienen como principal ventaja sobre los mtodos explcitos el que permiten estimar el error cometido. Por ejemplo, en el mtodo de Adams
1
9h 0 (i)
(i+1)
(i)
(i1)
yn+1 yn+1 =
f
fn+1
24 n+1
En general, son suficientes dos o tres iteraciones del corrector. En caso de que sean necesarias
ms iteraciones, es preferible disminuir el paso de integracin.
Tambin se pueden derivar correctores con varios pasos de integracin. El mtodo de Milne
de predictor-corrector emplea el mtodo explcito de Milne como predictor y utiliza el mtodo
implcito de Simpson como corrector:
(0)
4h
(2 fn2 fn1 + 2 fn )
3
1
h 0 (i)
= yn1 +
fn+1 + 4 fn + fn1
3
yn+1 = yn3 +
(i+1)
yn+1
168
xi,n+1
(k+1)
vi,n+1
1
h 0 (k)
vi,n+1 + vi,n
2
1
h 0 (k)
(k)
(k)
= vi,n +
fi,n+1 (rn+1 , vn+1 .tn+1 ) + fi,,n (rn , vn ,tn )
2
= xi,n +
donde el subndice i indica las coordenadas x, y y z (x1 = x, x2 = y, x3 = z). Vemos que el corrector
para la posicin es la regla del punto medio.
8.8.
8.8.1.
y(xn+1 ) y(xn )
G(xn , y(xn ), h)
h
169
!n+1 = |yn+1 y(xn+1 )| = |yn + hG(xn , yn , h) y(xn ) hG(xn , y(xn ), h) ht(xn , h)| |yn y(xn )|
+h |t(xn , h)| + h |G(xn , yn , h) G(xn , y(xn ), h)|
converja cuando h 0. Repitiendo este proceso n veces y teniendo en cuenta que t(xn , h) Mh p ,
obtenemos
170
&
exp((xn x0 )L) 1
L
'
si L = 0. Vemos que este resultado no aumenta con n para xn fijo, por lo que el mtodo es convergente. Por lo tanto la convergencia es una condicin ms estricta que la consistencia (requiere
la condicin Lipchitz o equivalente).
8.8.2.
Errores de redondeo
donde las tildes idican la relacin de recurrencia afectada por los errores de redondeo. Tenemos
que y(xn ) satisface
|2
yn+1 y(xn+1 )| = |2
yn + hG(xn , y2n , h) y(xn ) h(Gxn , y(xn ), h) ht(xn , h) + |
|2
yn y(xn )| + h |t(xn , h)| + h |G(xn , y2n , h) G(xn , y(xn ), h)| +
yn y(xn )| + hMh p + hL |2
yn y(xn )| + = hMh p + (1 + hL) |2
yn y(xn )| +
= |2
Vemos que si reducimos h por debajo de
h<
1
0 1 p+1
el error de redondeo dominar sobre el error de truncado, por lo que no tiene sentido disminuir h
o aumentar el orden de convergencia para mejorar la precisin del clculo. Slo queda aumentar
la precisin de la aritmtica con la que operamos (cudruple precisin o precisin arbitraria).
8.9.
Uno de los problemas importantes es determinar si un mtodo para resolver una ecuacin diferencial es estable. Cuando resolvemos la ecuacin numricamente, reemplazamos la ecuacin
diferencial por una ecuacin en diferencias. Las solucin exacta de esta ecuacin en diferencias
es distinta de la solucin de la ecuacin diferencial. La diferencia entre ambas viene dada en
yn = (1 Ah)n y0
"
#
"
#
1
1
1 + hA yn+1 = 1 hA yn
2
2
yn =
1 12 hA
1+
1
2 hA
4n
y0 ( eAnh
172
y
(2)
yn
zn2
'n
.
/n &
5
1 2 2
3
2
2
= Ah + A h + 1 ( 1 Ah + A h O(h ) ( eAnh + O(nh3 )
2
= eAxn + O(h2 )
yn yn
(1)n e2Axn $
yn
c2
El origen de esta solucin parsita radica en la aproximacin una ecuacin diferencial de primer
orden por una ecuacin en diferencias de segundo orden. Como necesitamos dos valores de
comienzo, aunque estos valores sean exactos para la ecuacin diferencial, como la ecuacin en
diferencias es distinta, estos valores no correspondern a la solucin de la ecuacin en diferencias
que corresponde a la solucin de la ecuacin diferencial y no la seleccionarn de forma exclusiva,
introduciendo componentes de las otras soluciones parsitas. En general cuando resolvemos una
ecuacin diferencial de primer orden mediante un mtodo de m pasos, la convertimos en una
ecuacin en diferencias de orden m, que tiene m soluciones. Si algunas de estas soluciones son
exponenciales crecientes, el mtodo ser inestable.
Ejemplo: Demostrar la convergencia del mtodo de Milne.
Las soluciones numricas satisfacen
h
yn+1 = yn1 + ( fn+1 + 4 fn + fn1 )
3
mientras que las exactas
h
h5
y(xn+1 ) = y(xn1 ) + ( f (xn+1 , y(xn+1 )) + 4 f (xn , y(xn )) + f (xn1 ), y(xn1 ))) f (4) ()
3
90
Tenemos
y(xn+1 ) yn+1 = y(xn1 ) yn1 +
h
[ f (xn+1 , y(xn+1 )) fn+1 + 4 ( f (xn , y(xn ) fn ) + f (xn1 , y(xn1 )) fn1 ]
3
h5
f (4) ()
90
Si se cumple la condicin Lipchitz
| f (xn , y(xn )) fn | L |y(xn ) yn |
tenemos
h
|y(xn+1 ) yn+1 | |y(xn1 ) yn1 | + (L |y(xn+1 ) yn+1 | + 4L |y(xn ) yn | + L |y(xn1 ) yn1 |)
3
6
6
5
h 6
6
+ 6 f (4) ()6
90
con lo cual
"
#
"
#
hL
hL
4hL
h5
|y(xn+1 ) yn+1 | 1 +
|y(xn1 ) yn1 | +
|y(xn ) yn | + M
1
3
3
3
90
174
6
6
6
6 (4)
donde 6 f ()6 M. Esta es una ecuacin en diferencias, con ecuacin caracterstica de la
ecuacin homognea
"
#
#
"
hL 2 4hL
hL
1
z +
=0
z 1+
3
3
3
cuyas races son
z1 = 1 + hL + O(h2 )
hL
z2 = 1 +
+ O(h2 )
3
La ecuacin no homognea tiene la solucin coonstante
z=
h4 M
180L
h4 M
180L
y(x0 ) = y0
h4 M
180L
Si el error en el primer trmino es |y(x1 ) y1 | = , se cumple
c1 + c2 =
c1 c2
h4 M
=
180L
h4 M
+
180L 2
c2 =
2
"
#
"
#
c2 zk2
h4 M
h4 M
h4 M
k
k
|y(xn ) yn | c1 z1 1 +
+
z
c1 zk1
180L
180L 1 180L
c1 =
Esta cantidad tiende a 0 cuando h tiende a 0 si = O(h), lo que ocurre siempre que se tome un
mtodo adecuado para determinar y1 . Por lo tanto el mtodo es convergente.
Ejercicio: Demostrar la estabilidad del mtodo de Milne
Suponemos una ecuacin diferencial
y! = Ay
175
hA
!n = c1 (1 + hA) + (!0 c1 ) 1 +
3
n
#n
nhA
( c1 enhA + (1) (!0 c1 ) e 3
k
y(xn ) = enhA
!n
k
rn =
( c1 + (1) (!0 c1 ) e 3
y(xn )
Vemos por lo tanto que, si A > 0, el mtodo es estable, ya que el error relativo permanece acotado,
y que si A < 0 el mtodo es inestable ya que el error relativo aumenta indefinidamente.
8.10.
176
Runge-Kutta del mismo orden. No permiten el cambio del paso de integracin de forma sencilla,
aunque se puede realizar mediante frmulas especiales. Los mtodos explcitos no permiten estimar el error cometido y tienen un error de truncado incierto debido a la extrapolacin, mientras
que los mtodos implcitos tienen un excelente error de truncado. Tanto mtodos explcitos e
implcitos requieren pocas evaluaciones, una sla en el caso de los mtodos explcitos, y unas
tres en los mtodos predictor-corrector, que es menor que el esfuerzo numrico necesario en el
mtodo RK4 y la mitad que en el mtodo RK5. Los mtodos predictor-corrector permiten adicionalmente estimar el error cometido. Si el volumen de clculo es un factor decisivo, los mtodos
explcitos o los mtodos implcitos del tipo predictor corrector son una posibilidad a considerar.
Si las condiciones no cambian mucho de un problema a otro, de forma que conocemos el error
cometido y no hace falta cambiar el paso de integracin, los mtodos explcitos son aconsejables,
pues requieren mucho menor volumen de clculo. Esto ocurre, por ejemplo, cuando realizamos
clculos comparativos con muchos potenciales similares, en los que varan slo en los valores de
algunos parmetros que cambian ligeramente la forma del potencial.
8.11.
Ejercicios
con la condicin de contorno y(0)=0. Intgrese esta ecuacin diferencial hasta t = 0,5 con
pasos de integracin !t = 0,1, usando el mtodo de Euler. Comprerse el resultado con la
evaluacin numrica de la integral
y(0,5) =
! 0,5
0
dt
1 t4
3. La trayectoria de un mvil a lo largo de una lnea recta viene descrita por la ecuacin
d2x
= x2
dt 2
partiendo del punto x = 1 con velocidad inicial v = 1 Cunto tiempo trancurrir hasta que
el mvil llegue al punto x = 2? Utilcese el mtodo de Euler con pasos !x = 0,2.
8.11. EJERCICIOS
177
4. Una partcula de 1 Kg de masa se mueve partiendo del origen con una velocidad inicial de
10 m/s y est sometida a una fuerza dada por la expresin
F = x2 v2
con = 1 N/m2 y = 0,002 Kg/m.
a) Escrbase la ecuacin diferencial que describe el movimiento.
b) Transfrmese en un sistema de ecuaciones diferenciales de primer grado.
c) Escrbanse las frmulas de integracin para el mtodo de Euler.
d) Determnese la posicin, velocidad y aceleracin en t = 0,5 con paso h = 0,1, sabiendo que las condiciones iniciales son x(0) = 0 y v(0) = 10.
5. Considrese la ecuacin diferencial y! = y con la condicin de contorno y(0) = 9. Calcular el valor de y(1) usando el mtodo del punto medio, con dos y cuatro subdivisiones
del intervalo. Realizar a continuacin la extrapolacin de Richardson para obtener el mejor
valor. Comparar con la solucin analtica de la ecuacin diferencial.
6. Dada la ecuacin diferencial
d2x
= t2
dt 2
con las condiciones de contorno para t = 1
4
3
dx(1)
8
=
dt
3
x(1) =
llevar a cabo un paso de integracin de valor h = 0,1 usando el mtodo de Euler y el mtodo
predictor corrector.
= dr
+
= dt
r r2
r 2 ( + r) 2 ( r)
178
1
ln r
que da
r2 =
la integral angular es
r02
= t t0
r2
exp(t0 ) exp(t)
"
#
8
9
exp(t0 )
2
r0 1 +
exp(t)
r02
= 0 + (t t0 )
por lo que vemos que produce espirales que tienden a crculos lmite de radio r =
Demostrar que las ecuaciones en coordenadas cartesianas son:
dr
= r r2
dt
d
=
dt
Resolverlas por RK4 adaptativo y estudiar la variacin del paso de integracin para diferentes condiciones iniciales.
2. Osciladoor de Van der Pool
3. Ecuaciones de Lorentz
4. Lotka Volterra
5. La ecuacin de Mathieu viene dada por
y!! (x) + (a 2q cos 2x) y = 0