Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A la hora de establecer algoritmos para la resolucin de ecuaciones diferenciales ordinarias es preciso tener en cuenta la casustica de cada problema. As se establece la divisin entre los problemas con condiciones iniciales y los problemas con condiciones de contorno. En los primeros los valores de la funcin solucin se van construyendo sucesivamente a partir de valores previamente calculados, comenzando en las condiciones iniciales. Los problemas con condiciones de contorno pueden resolverse, en su mayora, seleccionando la solucin correcta de entre todas las obtenidas con el apoyo de los algoritmos de condiciones iniciales. a) Problemas de condiciones iniciales. En lo que sigue se describen los fundamentos de los algoritmos ms sencillos para resolver una ecuacin diferencial ordinaria de primer orden sujeta a cierta condicin inicial. La generalizacin a sistemas de ecuaciones de primer orden y/o ecuaciones diferenciales de orden superior es inmediata. Consideremos una ecuacin diferencial del tipo:
y'(t) =
tattb
y(ta)=ya
Conocido el valor de la funcin en un punto yiy(ti), podemos calcular el valor yi+1 a partir del desarrollo en serie de Taylor alrededor de yi. Llamando hti+1-ti (en lo que sigue asumiremos que h es constante) se tiene:
wo ya
wi + 1 = wi + hf(ti, wi )
i = 0,L, N - 1
t t h b a N
El mtodo de Euler requiere muchos valores {es decir muchas evaluaciones de f[t,y(t)]} de h pequeos para obtener una precisin aceptable. Desgraciadamente el error aumenta linealmente con N y, por tanto, salvo para tanteos iniciales el mtodo de Euler es de poca utilidad. La solucin ms obvia consiste en retener trminos de orden superior en el desarrollo de Taylor mencionado.
wo ya
wi + 1 = wi + hT (n) (ti, wi )
donde:
i = 0,L, N - 1
Por otra parte es fcil ver que dadas las constantes desconocidas a1, 1 y 1 se tiene:
a1f(t + 1, y + 1 ) a1 f(t, y) +
f(t, y) f(t, y) + 1 1 t y
h h y 1= f(t, y): 2 2
wo ya
h h wi + 1 = wi + hf[ti + , wi + f(ti, wi )] 2 2
i = 0,L, N - 1
Es vlida esta tcnica para rdenes superiores?. La respuesta es (afortunadamente) s. Por ejemplo si pasamos a cuarto orden [T(4)(x,y)] puede repetirse un proceso similar (aunque bastante ms largo) al efectuado con T(2)(x,y) y as obtener el algoritmo de Runge-Kutta de orden 4 que es frecuentemente utilizado y que, de manera compacta se muestra a continuacin:
k1 hf(ti, wi )
wo ya
i = 0,L, N - 1
El mtodo de Runge-Kutta mejora si se utilizan algoritmos ms refinados como el control de paso (h) adaptativo (que pueden estudiarse en algunos de los libros recomendados en la bibliografa). Aunque no es el mtodo definitivo puede usarse siempre que no se requiera una gran eficiencia computacional, algn mtodo ms sofisticado falle o no se conozca nada mejor. Los algoritmos de resolucin de una ecuacin diferencial ordinaria de primer orden con condiciones iniciales, pueden generalizarse directamente a un sistema de ecuaciones:
du (t) dt du (t) dt
2 1
=f [t, u1 (t), u2(t),Lum (t)] m dt u1 (ta ) = u1a , u2 (ta ) = u2a ,L, um (ta ) = uma ; ta < t < tb
resolviendo secuencialmente cada una de ellas. En particular debe tenerse en cuenta que las ecuaciones diferenciales de orden superior:
y(m) (t) dm y(t) dt
m
du (t)
m
du (t)
du
dt du (t) dt
m
m -1
(t)
dy
(m - 2)
(t)
dy
(m - 1)
dt (t)
= um (t)
(m - 1) u1 (ta ) = y(ta ) = ya, u2(ta ) = y'(ta ) = y'a ,L, um (ta ) = y(m - 1) (ta ) = ya ; t <t<t a b
dt
= ym (t) = f[t, y(t), y'(t),L y(m - 1) (t)] = f[t, u1 (t), u2(t),Lum - 1 (t)]
Siendo:
los valores de la funcin y(x) a partir de la condicin inicial y(0). Es decir 2 nos permiten obtener funciones que satisfacen una de las y''(x)=6x condiciones de contorno aunque 3 y(x)=x +ax y(0)=0 y(1)=2 sin garanta de que la otra sea tambin satisfecha. En el caso simple que nos ocupa, el mtodo de Runge-Kutta nos proporcionara una familia de funciones y(x)=x3+ax de las que slo una (la que corresponde a a=1) satisfara la condicin y(1)=2. En la figura se representa esta situacin. La solucin podramos obtenerla 0 disparando desde y(0) con 0 1 diferente valores de a [es decir y(0)] hasta dar en el blanco alcanzando el valor requerido por la condicin de contorno en x=1. Obviamente esto puede hacerse manualmente por tanteo, pero tambin puede automatizarse. Analicemos paso a paso el algoritmo: 1) Dado que la ecuacin es de 2 orden, obtengamos el sistema asociado de ecuaciones de primer orden. Definiendo u1y(x) y u2y(x), las ecuaciones buscadas son: u1(x)=u2(x) u2(x)=6x con u1(0)=y(0)=0 y u2(0)=y(0)=ap. 2) Resolvamos el sistema para un cierto de valor de a (ap) utilizando un algoritmo de condiciones iniciales (por simplicidad de notacin el mtodo de Euler, aunque sea poco recomendable): u1(xi+1;ap)=u1(xi;ap)+hu2(xi;ap) u2(xi+1;ap)=u2(xi;ap)+6hx
hxi+1-xi; i=0,,N-1
3) Si u1(xN=1;ap)=y(1) hemos resuelto el problema. Normalmente este no ser el caso y deberemos cambiar el valor del parmetro a. Este
cambio puede hacerse muy fcilmente si se tiene en cuenta que el valor correcto del parmetro de disparo es una raz de la ecuacin u1(xN=1;a)-y(1)=0. As podemos obtener un nuevo valor ap+1 utilizando el mtodo de Newton-Raphson:
u x = 1; ap y( 1 ) ap+1 = ap 1 N du1 a da p
El problema puede ser calcular 1 ap , pero puede obtenerse con da relativa facilidad resolviendo un sistema de ecuaciones diferenciales ordinarias adicionales. 4) Con el nuevo valor se repiten los pasos 1) a 3) hasta que alcanza la convergencia deseada. Por supuesto el mtodo funcionar con una buena primera aproximacin para a1. El algoritmo general se esquematiza en el siguiente diagrama.
) ( )
du
( )