Documente Academic
Documente Profesional
Documente Cultură
NDICE G ENERAL
Advertencia: Esta es la primera versin de los apuntes de mtodos numricos del cuarto curso de Ingeniera Industrial. No han sido corregidos y probablemente contengan numerosos errores, pero he decidido colgarlos en la web para que sirva de guia de estudio. Para corregir errores, podeis escribir a mi direccin de correo Jose.Canovas@upct.es. Por otra parte, los ejercicios de los temas 2, 3 y 4 fueron redactados por el profesor David Lpez.
NDICE G ENERAL
ii
Mtodos de AdamsBashforth
52
ndice General
Ecuaciones en diferencias 1.1 1.2 Introduccin ........................................................................................................................................................................... Transformada Z ..................................................................................................................................................................... 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3 1.4 Definicin y propiedades bsicas......................................................................................................................... Transformada Z inversa ...................................................................................................................................... Aplicacin a la resolucin de la ecuacin en diferencias lineales con coeficientes constantes ..................... Frmula de inversin compleja ............................................................................................................................ Funciones de transferencia ..................................................................................................................................
1 1 4 4 6 7 9 11 12 13 17 17 17 19 21 23 27 29 29 30 31 33 33 37 39 40 47 47 47 49 51
Mtodos de un paso 2.1 2.2 Introduccin ........................................................................................................................................................................... Mtodos de Taylor ................................................................................................................................................................ 2.2.1 2.2.2 2.3 2.4 Mtodo de Euler ................................................................................................................................................... Mtodo de Taylor de orden 2 .............................................................................................................................
Mtodos de RungeKutta de orden dos............................................................................................................................. Anlisis del error en los mtodos de orden uno ................................................................................................................. 2.4.1 2.4.2 2.4.3 Error local de truncamiento en el mtodo de Taylor......................................................................................... Error local de truncamiento en los mtodos de RungeKutta ......................................................................... Relacin entre el error local de truncamiento y el error global........................................................................
2.5 2.6
Extrapolacin de Richardson................................................................................................................................................ Ms sobre los mtodos RungeKutta................................................................................................................................. 2.6.1 2.6.2 2.6.3 El mtodo de 3 etapas .......................................................................................................................................... El mtodo de cuatro etapas ................................................................................................................................. Mtodos de ms etapas ........................................................................................................................................
2.7 3
Ejercicios ..............................................................................................................................................................................
Mtodos multipaso 3.1 3.2 3.3 3.4 Introduccin ........................................................................................................................................................................... Mtodos multipaso lineales .................................................................................................................................................. Primeros ejemplos ................................................................................................................................................................ Mtodos de multipaso deducidos a partir de la integracin numrica ..............................................................................
iii
Mtodos de AdamsMoulton
53
NDICE G ENERAL
Estabilidad de los mtodos multipaso lineales ................................................................................................................... Frmulas BDF ....................................................................................................................................................................... Metodos predictorcorrector.............................................................................................................................................. Multipaso o RungeKutta .................................................................................................................................................... Ejercicios ..............................................................................................................................................................................
55 57 58 59 59 63 63 63 67 67 70 77 82 84
4 Mtodos en diferencias finitas 4.1 4.2 4.3 Introduccin ........................................................................................................................................................................... Problemas de contorno en ecuaciones diferenciales ordinarias ....................................................................................... Ecuaciones en derivadas parciales ...................................................................................................................................... 4.3.1 4.3.2 4.3.3 4.3.4 4.4 Clasificacin de ecuaciones de segundo orden lineales .................................................................................... Ecuacin del calor ............................................................................................................................................... Ecuacin de ondas ................................................................................................................................................ Ecuacin de Laplace .............................................................................................................................................
Ejercicios ..............................................................................................................................................................................
iv
Sumario. Ecuaciones en diferencias. Solucin de una ecuacin en diferencias. Ecuaciones lineales: teora general. Transformada Z. Estabilidad de ecuaciones en diferencias lineales. Estabilidad local de ecuaciones en diferencias no lineales.
1.1
Introduccin
Una ecuacin en diferencias es una expresin de la forma F(n,yn,yn+i, ...,yn+fc) = 0 , donde F : D C Rk +2 ^ R es una funcin definida sobre un subconjunto D de Rk+1. El nmero k recibe el nombre de orden de la ecuacin. Por ejemplo, las ecuaciones
y
n+2 n =
n+2 yn,
mientras que en la segunda ecuacin tal operacin no puede realizarse, es decir, no se va a poder despejar explcitamente el trmino yn+3. Nosotros vamos a centrarnos en el primer tipo de ecuaciones, que llamaremos resueltas respecto de el mayor trmino de la sucesin yn. A partir de este momento, consideraremos ecuaciones en diferencias de la forma
y
(1 1)
siendo f : A C Rk ^ R una funcin. Por una solucin de la ecuacin (1.1) entenderemos una solucin xn de nmeros reales de manera que verifique x , ) n+k f (n, xn,xn+1 ..., xn+k-1 .
E CUACIONES
EN DIFEREN CIAS
As, por ejemplo la sucesin constante xn = 1 es solucin de la ecuacin yn +2 = yn. Tambin lo es la sucesin xn = (1)n. Como vemos, una ecuacin puede tener distintas soluciones, pero sta es nica si imponemos una serie de k condiciones iniciales. As, xn = (1 )n es la nica solucin de la ecuacin
n+k + n n+k-1 + ... + n n = n Llamaremos a estos problemas de condiciones iniciales, por su analoga con las ecuaciones diferenciales ordinarias.
Dentro de las n ecuaciones en diferencias, tienen un espcial inters las llamadas ecuaciones que son de esto la forma donde an, ...,on,b son sucesiones de nmeros reales. En el caso de que las sucesiones a^ ..., lineales, an sean constantes, es, an = a para todo n > 0 y para todo i {1 ,...,k}, la ecuacin lineal se dir de coeficientes constantes. En general, tambin distinguiremos entre ecuaciones homogneas si bn = 0 para todo n > 0, y no homogneas en caso contrario. Las ecuaciones
y
i
y
n+2 rn yi = -1, y2 = 1.
a y a y b ,
1, 0,
son ecuaciones en diferencia lineales, siendo la primera no homognea y la segunda homognea y con coeficientes constantes. Las ecuaciones lineales juegan un importante papel en la modelizacin de circuitos digitales. Vemoslo con el siguiente ejemplo que proviene de la electrnica (ver [?]). Para fijar ideas, consideremos el siguiente ejemplo.
Este dispositivo genera una sucesin de salida yk para una sucesin de entrada xk de la siguiente manera. El elemento marcado con una a dentro de un crculo amplifica el dato de entrada la magnitud a R. Por ejemplo
El segundo elemento, una D dentro de un rectngulo, retarda la seal o sucesin de entrada una
E CUACIONES
EN DIFEREN CIAS
unidad temporal. As
Finalmente, el elemento marcado con un smbolo S dentro de un crculo, suma los datos que le llegan:
Combinando varios de estos elementos, construimos los llamados circuitos digitales, como el de la figura anterior. sta representa uno de los tipos ms sencillos de retroalimentacin de una seal. Los datos de entrada vienen dados por la sucesin xk y los de salida por
y
k+1 k
(1 .2 )
k xk aVk,
(1.3)
donde a es un nmero real. Combinando (1.2) y (1.3) obtenemos la ecuacin en diferencias de orden uno a x Vk+1 + Vk k Si complicamos el dispositivo, como se muestra en la figura,
yk+i vk,
3
E CUACIONES
EN DIFEREN CIAS
k+1 rk,
rk = xk + byk - avk,
de donde se obtiene la ecuacin yk+2 + ayk+1 byk = xk. Por ejemplo supongamos la ecuacin
1.2 Transformada Z
1.2.1 Definicin y propiedades bsicas
Consideremos una sucesin de nmeros complejos xk. Se define la transformada Z de la misma como la serie
(1.4)
Ntese que (1.4) es una serie de Laurent con parte regular x0 y parte singular Y^=1 xnz n, y que por tanto converger en un disco de convergencia de la forma A(0,r, +ro) = {z E C : |z| > r} donde r es el radio de convergencia de la serie de potencias Y^=1 xnzn. Por ejemplo, si 6 = (1,0, 0, 0,...) entonces su transformada Z es
n=1 n
Z [6](z) = 1
definida en todo el plano complejo. Si xk = (1,1,1,...), entonces
Linealidad. Dadas las sucesiones xk e yk y a, 3 E C, se verifica Z [axk + 3yk ](z) = aZ [xk ](z) + 3Z [yk ](z)
E CUACIONES
EN DIFEREN CIAS
axn + fi Vn
a; n=0
oo
Dada la sucesin xk, definimos la nueva sucesin Vk xk+1. Entonces Z[Vk](z) Z[xk+i](z) zZ [xk](z) - zxo.
En general, si k0 G N y definimos Vk xk+ko, tenemos la frmula ko-1 Z[xk+ko](z) z Z[xk](z) - xnZko-n. n=0 Demostracin. Calculamos OO
x k0
n+1
Z [x
k+i](z) n=0 z
oo
n
x x n+1
oo
n=0 oo n=0
z z
E
m
n+1 __ zn+1
/ -J n=1
Dmostracin. Calculamos ^o n
Z [akx ](z)
k [2k](z)^ zn
2n 1
E CUACIONES
EN DIFEREN CIAS
Dadas las sucesiones xk y km, m E N, se verifica Z [kmxk ](z) = [-z^ ]mZ [xk ](z),
donde por zdZ se entiende la operacin derivada y luego multiplicacin por z. Demostracin. Hacemos la demostracin por induccin en m. Si m = 1, entonces
Z M(z) = ^ n=0 OO
zn zn n=1 OO J
o- r U A
Si suponemos el resultado cierto para m, veamos que tambin lo es para m +1. Para esto calculamos Z[km+1xk](z) = = Z[k kmik](z) = -zdjZ[kmxk](z) (-"^ '[-z^ ]"Z [xk ](z) = [-z ]m+1Z [xk ](z).
dz z - 1 dz\ dz z - 1y 3z2
3
d / -z dz \z - 1 + (z - 1)2 2z3 +
z2
z - 1 (z - 1) (z - 1) si |z| > 1.
1.2.2
Transformada Z inversa
Z [xn](z) = F (z),
Es interesante obtener transformadas Z inversas de funciones de variable compleja F(z), es decir, qu sucesiones verifican que o equivalentemente
xn = Z-1[F (z)].
Para calcular la transformada Z de una funcin F(z) basta calcular el desarrollo en serie de Laurent centrada en cero de manera que tenga un anillo de convergencia de la forma {z E C : |z| >r}, donde r > 0. Por ejemplo, si F(z) = zh, entonces desarrollando en serie de Laurent
1 11 1 ^ 1 ^ 1 z - 1 z 1 1 z zn zn+1
z
n = 0 n = 0
E CUACIONES
EN DIFEREN CIAS
1.2.3
Consideramos el problema
obtenido anteriormente. Tomando la transformada Z en la ecuacin, usando las propiedades de sta y tomando en consideracin las condiciones iniciales obtenemos
Z [y
y desarrollando Z[yfc+2 + yk+1 - 2yk](z) = Z[yk+2](z) + Z[yfc+i](z) - 2Z[yfc](z) = z2Z [yk](z) - z + zZ [yk](z) - 2Z [yk](z) = (z2 + z - 2)Z [yk](z) - z.
(z2 + z 2)(z 1) Pasamos a fracciones simples r i / \ z2 1 3 4 Z [y ](z) fc ~T ------ ~T ------------- 7T2 - -- 7 + (z - 1)2(z + 2) (z - 1)2 z - 1 Z + 2 y calculamos la transformada inversa obteniendo los desarrollos en series de Laurent 1 1 1 1 ^ /-2y ^ (-2)n z + 2 = z 1 - = z ^ y z ) = z n+1 z n=0 v 7 n=0 si |z| > 2. 1 11 1 ^ 1 ^ 1 z - 1 = z 1 - 1 = z ^ zn = ^ z n+1 z n=0 si |z| > 1. Finalmente n=0
\n=0
^ n +1
^ 3 ^ 4(2)n+1
E CUACIONES
EN DIFEREN CIAS
fc
O O
O O/\
1 + g n 4 + 4(2)n+1 z n=0 por lo que si k > 2 yfc 4(2)fc+1 4 + k. Veamos a continuacin el siguiente ejemplo, en que las raices son complejas: zn+2
I
Si aplicamos la transformada Z a la ecuacin, tenemos que
Z [x
Por un lado Z [1](z) ^ n=0 mientras que Z [x+2 2x+1 + 2x](z) Z [Xn+2 ](z) 2Z [xn+1](z) + 2Z [xn](z) de donde Z [xn](z)
2
00
1 z
L ^ t zn
1z 1 1 z 1'
y
(z 1)(z 2z + 2)'
Desarrollamos la funcin en serie de Laurent para calcular xn. Para ello en primer lugar z 1 11+i 11-i z12z1i2z1+i Calculamos de forma separada z
z 1 z 1 - z zn
n=0
zn n=1
/1 i \ "
E CUACIONES
1
EN DIFEREN CIAS
--- 1 --- = 1-------^ = 1 X (^) = X(1 - i)""'1, / z 1 + i z 1 z ~^ nV z / z "=0 v con lo que agrupando CO ^
z
n=1
z"
-, CO
(z 1)(z2 2z + 2)
\ / \ /
^ -- 1
rn - - 1
nn\ 1
1.2.4
Supongamos que Z [xfc](z) = ^2 Xfcz k, fc=0 y multipliquemos ambos miembros de la igualdad por zn 1, de donde O Z[xk](z)z
n-1
= ^ xkz
n-k-1
. k=0
Supongamos una circunferencia del plano complejo Y que contiene todas las singularidades de la funcin Z[xk](z)zn-1, para todo n > 1. Por la frmula integral de Cauchy
jy
Z [xk ](z)
*-"-idz =
OO k=; z"-k-idz
E CUACIONES
EN DIFEREN CIAS
dado que
xkz
"-k-1dz
0 si n k 2, 2nixn si n k 2.
'Y
Por el Teorema de los residuos 1 Xn 2ni
donde si z es un polo de orden m, entonces el residuo es 1 dm-1 Res(Z[xk](z)zn-1,zi) = (m -1), Hm ^^-1 ((z - zrZ[xk](z)zn-1) Vamos a modo de ejemplo a obtener la transformada inversa de f (z) (z 2)2(z + 3)'
Res(f (z)zn-1, 2)
z^-r (z 2)2(z + 3)
zn(z 1) 4 lim . . z^-3 (z 2)2 De esta forma
25(3>'
Sea ahora
= lim
z^ (z + i) 2i 10
- in-1 in, 2
E CUACIONES
EN DIFEREN CIAS
(z - i)(z + i)
r -(-i) 2;
por lo que
X
n = - ^ir + 2(-i)r
Expresando los nmeros complejos en forma trigonomtrica y utilizando la frmula de De Moivre, obtenemos
- - in + -(-i)r 2 2 1/ n . . n. n 1. - n , - n. n -- (cos ---; + i sin ) +(cos -------- + i sin ----) 2 ' 2 2V 2 2 2 2 1 nn nn = ----- (cos ----- + i sin 22 2 2
cos
-nn 2
+ i sin
nn,
2
a y
(1.5)
siendo a G R, 0 < i < n. Entonces, suponiendo que y 0 i < k, tomando la transformada Z obtenemos que (anzn + an-1zn + + a1z + ao)Z [yk ](z) = Z [ufc](z), por lo que
Z[
1 + + a1z + ao
Z M(z)
fc](z) 1
T (z) =
11
E CUACIONES
EN DIFEREN CIAS
Podemos estudiar entonces la estabilidad de la ecuacin entendiendo sta de forma anloga al caso continuo estudiada en el tema anterior, es decir, si para toda solucin asociada a una condicin inicial dada se verifica que lim yk = 0. k El siguiente resultado caracteriza la estabilidad del sistema en base a los polos de la funcin de transferencia. Theorem 1 El sistema dado por la ecuacin (1.5) es estable si y slo si todos los polos de la funcin de transferencia verifican
que |z | < 1.
1.3
Ecuaciones no lineales
donde f : A C Rk+1 ^ R es una funcin continua. Esta ecuacin puede reducirse a un sistema de orden orden uno de la manera siguiente. Definimos las variables zn = y , zn = y + , ...,zn = y + . de n n 1 n k-1 Entonces 12 z n+1 = zzn, z z2 = z3 n+1 n,
k-1 z
= zk zn+1 zn,
, zn+1 =f (n,zn+1,...,zn+1).
Esto es, si zn = (zn,..., zn), entonces de forma compacta el sistema se puede escribir como
z
n+1 = f (n zn)
donde
f (n,z?1 ,...,zn) = (zn ,zn ,...,zn ,f(n,zn+1,...,zn+1)). Si la ecuacin o sistema de orden uno no depende explcitamente de n, se dice que dicha ecuacin
n+1
y
n + yn,
n+1 = xn y^
es un sistema autnomo de orden uno. Las ecuaciones y sistemas de orden uno han tenido un reciente desarrollo debido a que son modelos de ciencias experimentales como la ecologa y la economa. Con frecuencia, presentan lo que se conoce como comprotamiento catico o complicado.
12
E CUACIONES
EN DIFEREN CIAS
1.4 Ejercicios
1. Encontrar la transformada Z de las siguientes sucesiones determinando su conjunto de convergencia.
(b) y" = (0,1, 0,1,0,1, (e) y" = 2 ". (h) y" = n3".
2
(c) y" = n4. (f) y" = 1 + 2". (i) y" = (0,1, 0, 2,0,4,...,0, 2",...).
2. Resolver las siguientes ecuaciones homogneas: (a) yn+2 + yn+1 - 2yn = 0. (b) yn+2 - yn+1 - 2yn = 0. (d) yn+2 2yn+1 + yn = 0. (e) yn+2 - 4yn+1 - 12yn = 0.
y
(f) y
"2
"2 + 2y"1 3y" 0. (h) y"3 y"2 + 2y"1 2y" . (i) y"4 + y"2 2y" 0.
y"2 + 2y"1 + y" = n3. y"2 + 4y" = n(1)". (h) y"2 2y"1 + 6y" = 3" + n. (i) y"3 y"2 + 2y"2 2y" = 1.
4. Resolver los siguientes problemas de condiciones iniciales: y"2 + 2y"1 + y" = n2 (a) { yo = 0 y1 =1
y
{ yo = y1(0) = 1
y1 = 2
=0 y1 =0
S yo =
s yo =
y1 = 0
y
y1 =0
y (i)
s yo =
6. Obtener la solucin de los siguientes circuitos digitales suponiendo condiciones iniciales nulas:
13
E CUACIONES
EN DIFEREN CIAS
7. Calcular el comportamiento asinttico (lmite cuando n tiende a infinito) de la solucin de los siguientes circuitos digitales:
14
x = e-x. (b) log x = x. (c) x = e-y, y = e-2x xn+1 = axn(1 - xn), a [0, 4]. (b) xn+2 = xn.
E CUACIONES
EN DIFEREN CIAS
3 2 2 8. Encontrar las soluciones (c) aproximadas xn+1(d) = de \/ las yn/a siguientes yn+1 ecuaciones = xn/b xn, a, b de < algebraicas xn+1 = usando xn +1los mtodos de Newton x 2=yn, 0 (e) cos x \/ =x -y1sistemas (f) log(x +0. 1)(d) = x.
y el de la aplicacin contractiva, en caso (e) de poder xn+1 usarse. = ex" (f) xn+2 = 3xn(1 - xn) 9. Encontrar los punto fijos de las ecuaciones en diferencias no lineales siguientes, y determinar la estabilidad local de los mismos:
15
E CUACIONES
EN DIFEREN CIAS
16
2.1
Introduccin
donde la funcin f : Q C Rm+1 ^ Rm es suficiente regular para que dicho problema tenga solucin nica. Por ejemplo, f y Jf, i 1, ...,m continuas. Sin embargo, dada un problema de condiciones iniciales arbitrario, es muy posible que no sepamos cmo hallar dicha solucin. Basta considerar el problema y' ey2, y(0) 4.
(2,1)
Es por ello importante determinar mtodos que permitan obtener aproximaciones de dichas soluciones, que existen, pero son desconocidas. En esencia, dado el problema (2.1), denotemos su solucin por y(t; t0, y0) y buscamos cmo aproximar el valor de y(tf; t0, y0), para un cierto tf > t0 (anlogamente se hara para tf < t0). Los mtodos que vamos a estudiar consisten en generar una sucesin y0, y
1,...,
yn de manera que yn sea un valor aproximado de y(tf; t0, y0). Vamos a ver en este tema varias maneras de construir dicha
sucesin.
2.2
Mtodos de Taylor
Este mtodo se basa en suponer que la solucin y(t; t0, y0) es suficientemente diferenciable en un entorno de t0. Si t1 est en dicho entorno y denotando h t1 t0, entonces y(t1; t0, y0) y(t0; t0, y0) + 1 y'(t0; t0, y0)h + 1 y''(0; t0, y0)h2 + ... + +^ yn)(t0; t0, y0)hn + o(hn), n!
17
M TODOS
DE UN PASO
donde O(hn) es denota una funcin g(h) para la cual existe una constante positiva k tal que |g(h)| < k|hn|. Entonces y(to; to, y0) = y0, y0(to; to, y0) = f (to, y0) = ^(o, y0),
d
d d = f1(t0, y0) + d_f1(0, yo)y0(to; to, y0) d d = dt f1(t0, y0) + dyf1(t0, y0)f (*o, y0)
= yo), donde por dyf1(t0, yo) denotamos el gradiente de f1(t0, y0). y3)(to; ^, yo) = ^"to; ^ yo) = d yo)
d d = dt f2 (to, yo) +
= ;T;;f2(to, yo) + t = f3(to, yo). Inductivamente, si y
n-1)
dd
y
(t0; t0, y0) = fn-1(t0, y0), entonces yn)(to; ^, yo) = yn-1)(to; ^ yo) = ^-^ yo)
d
18
MTODOS DE UN PASO
2.2.1
Mtodo de Euler
El mtodo de Taylor con n = 1, recibe el nombre de mtodo de Euler y fue quizs el primer mtodo numrico generado mucho antes de la existencia de ordenadores. Como vemos, la expresin (2.2) queda de la forma y(ti; to,yo) - yi = yo +if(to,yo)h, (2.3)
y tiene un claro significado geomtrico. Imaginemos que m = 1, es decir, se trata de una ecuacin diferencial. Entonces la recta tangente de la solucin y(t; to,yo) para t = to tiene la forma y y(to; to,yo) = y'(to; to,yo)(t to), y sustituyendo cada elemento de la expresin anterior por su valor obtenemos y yo = f (to,yo)(t to). Si sustituimos t por ti en la recta anterior obtenemos y(ti; to,yo) - yi = yo + f (to,yo)h,
que es la expresin (2.3) para ecuaciones de dimensin uno. La figura 2.1 nos muestra grficamente el mtodo.
Veamos cmo funciona el mtodo de Euler con un ejemplo. Consideremos el problema de condiciones iniciales f y' = y, l y(0) = 1,
19
M TODOS
DE UN PASO
que como sabemos, tiene por solucin y(t;0,1) e*. Tomemos t1 0.1, y estimemos por el mtodo de Euler y(0.1; 0,1). Como h 0.1, entonces y1 y0 + y0h 1 + 0.1 1.1. Como vemos, el error cometido e1 |y(0.1; 0,1) y11 je0'1 1.1| w 0.00517092.
esto es, el error aumenta considerablemente. Esto se debe a que estamos tomando aproximaciones locales. Para reducir el error se procede de la siguiente manera. Tomamos una particin P del intervalo [t0,tf], esto es P t0 < t1 < t2 < ... < tn-1 < tn tf. Definimos h* t*+1 t*, i 0,1,..., n 1. Construimos la sucesin yn de la siguiente manera y1 y0 + f (t0, y0)h0. Ahora bien, y1 es una aproximacin de y(t1; t0, y0). Para construir y2, tomamos la aproximacin mediante el mtodo de Euler del problema
y' f (t, y), y(t1) yl, dado por y2 y1 + f (t1, y1)h1, y de forma recurrente para i 1,..., n, y* y*-1 + f (ti-1, y-1)h-1. En general, suele tomarse h* h, i 0,1,..., n 1, cantidad que suele llamarse tamao de paso y n el nmero de pasos. En este caso el mtodo de Euler queda como
y* y*-1 + f (t*-1, y*-1)h y* + f (t0 + (i 1)h, y*-1)h, para i 1,..., n. En el ejemplo anterior, tomamos h 0.1 y calculamos y1 y0 + f (0,yj)h 1 + 1 0.1 1.1, y2 y1 + f
(h,y1)h 1.1+ 1.1 0.1 1.21, ya 0.1 1.331, y4 1.4641, y5 1.61051, y6 1.77156, y7 1.94872, y8 2.14359, y9 2.35795, y10 2.59374,
ya + f (3h,ya)h 1.331 + 1.331 0.1 y4 + f (4h,y4)h 1.4641 + 1.4641 0.1 y5 + f (5h, y5)h 1.61051 + 1.61051 0.1 y6 + f (6h,y6)h 1.77156 + 1.77156 0.1 y7 + f (7h, y7)h 1.94872 + 1.94872 0.1 y8 + f (8h,y8)h 2.14359 + 2.14359 0.1 y9 + f (9h,y9)h 2.35795 + 2.35795 0.1
20
M TODOS
DE UN PASO
y ahora los errores son e = |ei*o'i yi|, para i = 1,..., 10, que nos da la siguiente tabla aproximada
ei 0.005
e2 0.011
e3 0.019
e4 0.028
e5 0.038
ee 0.051
e7 0.065
io
0.082
0.102
0.125
Como vemos, el error ha disminuido notablemente, a pesar de que en los pasos intermedios la aproximacin del mtodo de Euler no coincide en su condicin inicial con la solucin del problema de condiciones original. Vemos no obstante que los errores se van acumulando desde ei hasta eio, de manera que estos van creciendo. Sin embargo, si disminuimos el tamao de paso, vemos en la siguiente tabla como los errores al final dismuyen
h=1 0.718
h = 0.1 0.125
h = 0.01 0.013
h = 0.001 0.001
h = 0.0001 0.00014
h = 0.00001 0.000014
Como vemos, al dividir el tamao de paso h por diez, el error final aproximadamente tambin hace esta operacin. Veremos posteriormente una explicacin a este hecho.
2.2.2
Si hacemos n = 2, observamos que el mtodo de Taylor queda de la siguiente forma: y(ti; to, yo) - yi = yo + fi(to, yo)h + f2(to,yo)h2, y dado que fi(to, yo) = f (to, yo)
y
Si dividimos el intervalo [to, tf] en n intervalos igualmente espaciados siendo el tamao de paso h = (tf to)/n, el valor y(tf; to, yo) con yn, que puede estimarse con la recurrencia y = yi-i + f (to + (i 1)h, y_i)h 1/dd\ +2 (dtf (to +(i 1)h, y*_i) +f (to +(i 1)h, y*_i) dyf (to +(i 1)h, y*_iMh2,
y' = y, y(0) = 1, 21
MTODOS DE UN PASO
tenemos que f (t, y) = y, por lo que (t, y) =0 y f (t, y) = 1, y as la recurrencia anterior se expresa de la forma 1 ( h2\ y* = y*_i + y*-ih + ^y_ih2 = ( 1 + h + J y*_i,
yi
+h + y 1 yo = 1.105, h2
y2
1 + h + y )2 y1 = 1.22103, h2
ya
1 + h + y )2 y2 = 1.34923, h2
y4
1 + h + 2 ) y3 = 1.4909, h2 1 + h + y )2 y4 = 1.64745,
h
y5
y?
ys
=
h2 1 + h + --2
yo
= 2.45618,
h 1 + h + y )y9 = 2.71408,
e* = je**0'1 - y*| para i = 1,..., 10, que nos da la siguiente tabla aproximada ei 0.00017 e2 0.0004 e3 0.0006 e4 0.0009 e5 0.0013 ee 0.0017 e? 0.0022
e
10
0.0028
0.0034
0.0042
Como vemos, el error decrece notablemente en comparacin al obtenido al aplicar el mtodo de Euler. Adems, los errores para diferentes tamaos de paso son h=1 0.2183 h = 0.1 0.0042 h = 0.01
4
h = 0.001 O 1 .
5 1
h = 0.0001
4
h = 0.00001 . o i
5 1
0.000045
4.5 10
-9
Como vemos, se mejora notablemente el error con respecto al mtodo de Taylor, siendo ste adems de orden dos, es decir, al dividir por 10 el tamao de paso, el error es aproximadamente el del paso anterior al cuadrado.
22
M TODOS
DE UN PASO
Aumentando el orden del mtodo de Taylor, seguimos disminuyendo el error producido. Sin embargo, el mtodo de Taylor presenta el problema de que hay que derivar sucesivamente las funciones que determinan la ecuacin o sistema de ecuaciones diferenciales, y esto frecuentemente no es tarea fcil. Adems, en el caso del ejemplo anterior para la ecuacin y' y, el incremento del orden no mejora el algoritmo dado que fm(t, y) 0 para m > 3. Veamos a continuacin una familia de mtodos que presentan un avance en este sentido, y que se conocen como mtodos de RungeKutta.
2.3
que se construye de la siguiente manera. Como y(t; t0, y0) es solucin y(t; t0, y0) y(t0; t0, y0) y(t; t0, y0) y0 / y(s; t0, y0)ds f(s, y(s; t0, y0))ds. Jt0
Jt0
f(s y(s))ds t0
mediante algn mtodo de integracin numrica apropiado. A modo de primer ejemplo, supongamos que dicha integral se aproxima mediante el mtodo del trapecio, esto es
h
t0 2
f(
siendo h tf10. El valor f (t0, y(t0)) f (t0, y0) es conocido. Sin embargo f (tf, y(tf)) es desconocido dado que y(tf) y(tf; t0, y0) es precisamente el valor que tenemos que aproximar mediante el mtodo. Para obtener un valor aproximado de dicho valor para poder aplicar el mtodo, obtenemos ste por un algoritmo de los estudiados anteriormente para tamao de paso h, por ejemplo y* y0 + hf (t0, y0), que es el mtodo de Euler. Entonces y1 y0 + ^[f (^ y0) + f (tf, y*)],
h
23
MTODOS DE UN PASO
ser la aproximacin de y(tf; to, yo) que buscbamos. Si tomamos un tamao de paso h = (tf to)/n, se tiene que de forma compacta y*+i = yo + hf (to + ih, y), h y*+i = yo + 2 [f(to + y ) + f(to + (i + 1)h, y*+i)] que se conoce como mtodo de Heun. Como vemos, hay dos etapas, una inicial donde se calcula y* y otra posterior donde ya se obtiene la aproximacin propiamente dicha. Por ello, se dice que es un mtodo de RungeKutta de dos etapas, y como veremos posteriormente de orden dos. Suele escribirse de forma ms compacta como
( gi = hf(ti-i, yi-i),
< g2 = hf (ti-i + h, yi-i + gi), [ yi = yi-i + 5(gi + g2)Veamos cmo se implementa este mtodo en nuestro ejemplo de costumbre / y' = y. \ y(0) = 1. Los valores que obtenemos para tamao de paso h = 0.1 son
yi = (1 + h) yo = 1.1,
1 yi = yo + I (yo + yi) = 1.105, 1 y2 = (1 + h) yi = 1.2155, 1 y2 = yi + | (yi + y2 ) = 1.22103,
1
y3 = (1 + h) y2 = 1.34313,
y4 = (1 + h) y3 = 1.48416, f y4 = y3 + 1
y6 = (1 + h) y5 = 1.81219,
y8 = (1 + h) y? = 2.21273,
yio = (1 + h) y9 = 2.7018,
ei 0.00017
e2 0.0004
e3 0.0006
e4 0.0009
e6 0.0017
e? 0.0022
e8 0.0028
eo 0.0034
eio 0.0042
0.0013
24
M TODOS
DE
UN PASO
Obsrvese que son similares a los obtenidos en el mtodo de Taylor de segundo orden. Si variamos el tamao de paso, obtenemos los siguientes errores para los siguientes valores h=1 0.2183 h = 0.1 0.0042 h = 0.01
4
h = 0.001 O 1 .
5 1
h = 0.0001
4
h = 0.00001 . 0 i
5 1
0.000045
4.5 10
-9
que reproducen los obtenidos en el mtodo de Taylor anteriormente mencionado. La forma ms general posible para un mtodo de RungeKutta de orden dos es gi = hf (ti-i, yi-i), g2 = hf (ti-i + C2h, yi-i + a2igi), y* = yi-i + bigi + b2g2, donde los tiempos ti-i no tienen porqu ser uniformemente distribuidos, y b2 = 0. Si tomamos g2(h)/h y desarrollamos mediante la serie de Taylor de primer orden obtenemos
df d f \
'd t
dy
por lo que yi = yi-i + bigi + 2g2 df df \ = yi-i + (bi + 62) hf (ti-i, yi-i) + 62 h2 C2 (ti-i, yi-i) + 2i dy (ti-i, yi-i)f (ti-i, yi-i) ) Por otra parte, la aproximacin mediante la serie de Taylor de orden dos de y(t; ti-i, yi-i) era
d
Wd d yi = yi-i + f(ti-i,yi-i)h + - f(ti-i,yi-i) + f(ti-i,yi-i)^yf(ti-i,yi-iM h2, e igualando coeficientes obtenemos que bi + b2 = 1, b2C2 =1/2, b22i = 1/2. Como b2 = 0, tenemos que a2i = c2 = y bi = 1 b2, lo cual nos proporciona una familia de mtodos de RungeKutta de orden dos segn los valores de b2. As, cuando b2 = 1/2, obtenemos el mtodo de Heun anteriormente descrito. Cuando b2 = 1, tenemos
i
e
yi = yi-i + hg2 = yi-i + hf (ti-i + 77, yi-i + o gi) hh = yi-i + hf (ti-i + , yi-i + f (ti-l, yi-l)),
h -
25
MTODOS DE UN PASO
que es el algoritmo de Runge de 1895. En general, un mtodo de RungeKutta explcito de m etapas es de la forma yi = yi-i + ^2 bjgj , j=i gi = hf (ti-i, yi-i), donde g2 = hf (ti-i + C2h, yi-i + a2igi), g3 = hf (ti-i + C3h, yi-i + a3igi + a32g2),
^ gm
1 +
siendo Cj, j = 2, , m, bj, j = 1, , m y ajk, j = 1, . . . , m , k = 1 , , j 1, los coeficientes del mtodo. Normalmente, estos coeficientes se agrupan segn la tabla 0 C2 C3
c a a
2i 3i mi
a
m2 b2 c*
bi y en forma matricial
,b
(a
jk) ^ Mmxm(R
y i 2 0
y concretado en gi = hf (ti-i, yi-i), g2 = hf (ti-i + h, yi-i + ^ gi), g3 = hf (ti-i + h, yi-i + i g2), g4 = hf (ti-i + h, yi-i + g3), que da yi = yi-i + ^ gi + 3 1 1 g2 + 3 1 1 g3 + ^ g4
es el mtodo de Kutta de 1905, que es el mtodo clsico de RungeKutta de cuatro etapas, y como veremos posteriormente, cuarto orden. Si aplicamos este mtodo a nuestro ejemplo
y=^ y(0) = 1,
26
MTODOS DE UN PASO
tenemos que los valores que obtenemos para tamao de paso h = 0 yi = 1.10517, ya = 1.34986, y5 y7 y9 cuyos errores son = 1.64872, = 2.01375, = 2.4596, y2 y4 y6 y8 y1
0
son
e9 = 1.7 10_6
Obsrvese que son similares a los obtenidos en el mtodo de Taylor de segundo orden. Si variamos el tamao de paso, obtenemos los siguientes errores para los siguientes valores h=1 0.00995 .
2
h = 0.1 O 1
h = 0.01
h = 0.001 8 00 7 .
1 1
O 1
a
h = 0.0001 6.22 10_15
e7 = 1.1 10_6
e6 10_
00
= 8.3
7 1
O O 1 1
O o 1
e e
i 00
to
8 6
co
e e
2.25 10_10
3 5 e
7 i 0
h = 0.00001
-1
Como vemos, los errores de redondeo hacen que no se aprecie que el error del paso h/10 es aproximadamente el del paso h elevado a la cuarta potencia. Este hecho s se aprecia en los tamao de paso hasta 0.001.
2.4
y0 = f(t,y),
1 y(to) = yo,
donde la funcin f : C Rm+1 ^ Rm es suficiente regular para que dicho problema tenga solucin nica. Como hemos visto hasta ahora, los mtodos numricos de Taylor y RungeKutta se basan en, fijado t1 > t0 y un tamao de paso h = tl-t, construir una sucesin y0, y1,..., yn de manera que sean una aproximacin de la solucin y(t; t0, y0) en los tiempos t* = t0 + hi. Como hemos puesto de manifiesto con algunos ejemplos, estos mtodos tienen inherentemente asociados unos errores que se deben a dos causas bien diferenciadas: Errores matemticos debidos al mtodo numrico empleado. Errores de redondeo al trabajar los computadores con precesin finita. En general, los mtodos que conocemos son de la forma y* = y*_1 + h$(_1,y*_1,h), i = 1,...,n, (2.4)
que dan lugar a los valores y0, y1,..., yn anteriormente mencionados. En general, dentro de los errores matemticos podemos distinguir los siguientes tipos.
27
M TODOS
DE UN PASO
Definimos el error global de la solucin aproximada como e = y y(*;to,yo), i = 0,1,...,n, y el mtodo numrico en cuestin se dir convergente si lim max | |ej| =0. h^0 o<i<n Bsicamente, la convergencia implica que el error global tiende a cero cuando lo hace el tamao de paso. Otro concepto importante es el de consistencia. Un mtodo numrico dado por (2.4) se dice $(t y, 0) = f (t y).
consistente si
.
(2 5)
Por ejemplo, en el caso de los mtodos de Taylor de orden n, la funcin dada por (2.5) es
$( n hj1 t y, 0) = YI ~v~ yj) = y0 =f (t y). j=1 j
En el caso de los mtodos de RungeKutta, dicho mtodo es consistente si n bj = ! j=1 En el estudio del error global de un mtodo, tienen gran importancia dos errores locales que a continuacin describimos. Se llama error local del paso i como li = y y (ti; ti1, yi1), es decir, la diferencia entre el valor proporcionado por el mtodo yi y el valor exacto proporcionado por la solucin exacta del problema de condiciones iniciales y' = f (t, y),
i
numrico implementado
y(t1) = yi-
El ltimo tipo de error local que vamos a introducir es lo que llamaremos el error local de truncamiento, que definimos como ti = y(ti1; to, yo) + h$(ti1, y (ti1; to, yo),h) y (ti; to, yo), es decir, aquel error que se obtendra al sustituir la solucin real del problema de condiciones iniciales y(t; to, yo) en el mtodo
yi = yi1 + h$ (ti1, yi1 ,h). Si el mtodo numrico es consistente, entonces el error de local de truncaminento converge a cero cuando se divide por h. En efecto lim t = iim y(ti1; to, yo) y(ti1 + h; to, yo) h^o h h^o + lim $(ti1, y (ti1; to, yo),h) h^o h
28
MTODOS DE UN PASO
por ser
to, yo) solucin de la ecuacin diferencial. Bsicamente, la consistencia indica que ||t*||
es al menos O(h2). Diremos que un mtodo es consistente de orden n si es consistente y el error local de truncamiento es de orden O(hn+1). Vamos a analizar este ltimo tipo de error para los mtodo numricos que conocemos.
2.4.1
Recordemos que el mtodo de Taylor es de la forma y* = y*_i + i fl(t^-l, y*_i)h + 2 f2(t^-l, y_i)h2 + + n fm(t*-l, y_i)hn
= y*_i + 2^ tf y*_i). *=i Entonces, el error local de truncamiento es t* = y(ti_i; to, yo) + h$(j_i, y(t*_i; to, yo),h) - y(t*; to, yo) n J-t i 00 j * = yi)(t*_i; to, yo) yi)(t*_i; ^ yo) i=l i=l
X] yi)(t*_i; to, yo) i=n+l hn+l yn+l)(t_i + nh; to, yo), (n + 1)!' con n G (0,1). Entonces, existe A > 0 de manera que ||t*|| < Ahn+l, o equivalentemente ||t* || = O(hn+l), con lo que el mtodo de Taylor truncado en el paso n es de orden n + 1.
2.4.2
Por simplicidad, vamos a considerar slamente los mtodos de dos etapas dados por gi = hf (t*_i, y*_i), g2 = hf (t*_i + C2h, y*_i + a2igi), y* = y*_i + bigi + &2g2, donde a2l = c2 = 2^ y bl = 1 b2. Entonces $(t, y,h) = bif (t, y) + bf (t + c2h, y + a2ihf (t, y)).
29
M TODOS
DE UN PASO
Ahora bien ti = y(ti-i; to, yo) + -$(t-i, y(t-i; to, yo),h) - y(t; to, yo) j = y(t*-i; to, yo) + -$(t*-i, y(t-i; to, yo),h) - ^ yj)(t*-i; to, yo) j=o -'
/ hj-i \ - ( $(t-i, y(ti-i; to, yo),h) - ^ pyj)(t-i; to, yo) j h3 = y *_1 + nh; ^ yo),
3)(t
debido a los valores de los coeficientes del mtodo de RungeKutta, siendo n (0,1). De esta manera, vemos que ||ti|| = O(h3). En general, el error local de truncamiento en un mtodo de RungeKutta de n pasos es O(h+1).
2.4.3
Vamos a ver cmo podemos controlar el error global a partir del error local de truncamiento. Como sabemos e* = y* - y(t*; o, y0). Entonces e* = y*_1 + h$(t*_1,y*_1,h) + t* - y(t*_1;o,y0) - h$(*_1,y(t*_1; o,y0),h) = t* + e*_1 + h ($(*_1,y*_1,h) - $(*_1,y(t*_1;o,y0),h)). Sea M > 0 tal que ||t*|| < M y teniendo en cuenta que h > 0, obtenemos la acotacin ||e*|| < M + ||e*_11| + h||$(*_1, y*_1,h) - $(*_1, y(t*_1; 0, y0),h)||. Supongamos ahora que $ satisface una condicin de Lipschitz con constante L > 0 en la variable y, esto es ||$(t*_1,y*_1,h) - $(t*_1,y(t*_1;0,y0),h)|| < L||y*_1 - y(t*_1;0,y0)||, con lo que la expresin (2.6) se reduce a ||e*|| < M + ||e*_11| + h||$(t*_1,y*_1,h) - $(t*_1,y(t*_1;0,y0),h)|| < M + ||e^_l|| + hL||y*_1 - y(*_1; ^ yo)|| = M + || e* ___ 11| (1 + hL). Aplicando la anterior desigualdad para i > 1 tenemos ||e11| < ||eo||(1 + hL) + M, (2.6)
30
*11
- hLV
MTODOS DE UN PASO
y en general i-1 Como por otra parte, M = Ahn+1 donde A > 0 [M ^ O(hn+1)], tenemos que || e * || < ||e0||(1 + hL)j + M^(1 + hL)j. j=0 ||e*|| < Bhp, Como
Y, (1 + hL)j =(1 + hf - 1,
j=0
por lo que acabamos de probar el siguiente resultado: sustituyendo en la expresin Theorem 2 Si ||t*|| ^ O(hn+1) entonces ||e*||anterior, ^ O(hn).
2.5
Extrapolacin de Richardson
(
= i+o - la (Msolucin +hL) -hfSupongamos que y(t*) = y(t*,h) es aproximada del problema de condiciones iniciales De la nocin de exponencial real tenemos que 0 teniendo en cuenta que e0 = 0, concluimos que < (1 + hL)j < ehLj, y
M|< hL(ehL- - 1)Ahora bien ih = tf t0, donde tf es el tiempo final donde deseamos conocer la solucin de la ecuacin diferencial, por lo que || e * || < (eL(tf-t0) 1).
con tamao de paso h, esto es, t = ti = to + ih. Supongamos que el error global ei(h) = y(ti,h) y(ti; to, yo) = d(ti)hp + O(hp+1), (2.7)
31
2P
V 2
M TODOS
DE UN PASO
donde la funcin d(t) no depende de h. Puede comprobarse, aunque queda lejos de los objetivos de este curso, que el error global tanto en los mtodos de Taylor como en los de RungeKutta tiene esta estructura. Si calculamos ahora la aproximacin con paso h/2, tendremos (h/2) = y(,h/2) - y(; Q, yo) = d(^^ + (hp+1). d(t*) i hxp Restando e*(h/2) - ei(h) = y(t,h/2) - y(t*,h) = d(t)hp (- 1) + (hP+1) = d(t)(h)' (1 - 2P) + O(hp+1), (2.8)
(K
2) P + O(hP+1)'
2pe*(h/2) = 2py(t*,h/2) 2py(t*; to, yo) = d(t*)hp + O(hp+l), y calculando 2pe*(h/2) e*(h) = 2py(t*,h/2) 2py(t*; to, yo) y(t*,h) + y(t*; to, yo) = O(hp+l), de donde yfeto, yo) y(i,h) g2(Mt/2)= o(hP+i), por lo que y(t*,h) 2py(t*,h/2) 1 2P es una aproximacin de y(t*; to, yo) que tiene al menos orden O(hp+l). De este modo, aumentamos en uno el orden de convergencia, sin por ellos aumentar la cantidad de operaciones de una forma drstica. Esto es lo que se conoce como el mtodo de extrapolacin de Richardson. A modo de ejemplo, tomemos el problema
y' = ^ y(0) = 1,
y calculemos y(1;0,1) por el mtodo de Euler con tamao de paso h = 10000 y h/2 = 5000. Obtenemos los errores e(h) = 0.000135902 y e(h/2) = 0.0000679539. Teniendo en cuenta que el mtodo de Euler es de orden uno, calculamos
y(t ,h) 2y(t ,h/2) * * = 2 _ 2.71821 2.71815 = 2.71828, 12
que nos da un error de 6.22853 10_9, con lo que el error ha disminuido notablemente con una serie de operaciones sencillas.
32
MTODOS DE UN PASO
2.6
y' = f(t y) ,
1 y(to) = yo. En general, un mtodo de RungeKutta explcito de m etapas es de la forma y* = y*-i + donde gi = hf (t*-1, y*-i), g2 = hf (t*-i + C2h, y*-i + a2igi), < g3 = hf (ti-1 + C3h, y*-i + a3igi + a32g2) ^ gm hf (t-1 + cmh^ y-1 + am1g1 + am2g2 + ... + amm-igm-1)^ siendo Cj, j = 2, ... ,m, bj, j = 1, ...,m y ajk, j = 1,... ,m, k = 1, ... , j 1, los coeficientes del mtodo. Normalmente, estos coeficientes se agrupan segn la tabla
^2 gj j=i
0
C C
2 3 m
a a
21 31 m1 32
a
m2 .
. amm-1
.b
bi y en forma matricial
62 .
m-i bm
A b
donde c = (0, C2,... , Cm), b = (61,62,..., bm) y A = (j e Mmxm(R) con j = 0 si k > j. Se satisfacen en general las condiciones de simplificacin j-i
c
j = ^ j j = 2,...,m. fc=i
2.6.1
El mtodo de 3 etapas
Veamos cmo se genera el mtodo de RungeKutta de tres etapas que tendr error local de truncamiento t* ^ O(h4). Como sabemos, su tabla de Butcher ser
0
C C
2 3
a a
21 31 a32 i
b
3 b 2 b
33
M TODOS
DE UN PASO
y el mtodo ser de la forma g1 = hf (ti1, yi1), g2 = hf (ti1 + C2h, yi1 + a21g1), g3 = hf (ti1 + C3h, yi1 + a31g1 + a32g2),
y
(2.9)
Por otra parte, la aproximacin mediante la serie de Taylor de orden tres de y(t; ti1, yi1) era yi = yi1 + f(ti1, yi1)h +^f(ti1, yi1) + f(ti1, yi1)f(ti1, yi1)) h2
1
(2.10)
( d2 d2 d d
(2.11)
dd
G2(h) = C2 dt f (ti-i + C2h, yi-i + a2igi) + ^yf (ti-i + C2h, yi-i + a2igi)a2if (t-1, yi-i),
d2
32 G2 (h) = c2 dt2 f (ti-i + C2h, yi-i + a2igi) + 2c2 ddy f (ti-i + c2h, yi-i + a2igi)a2if (ti-i, yi-i)
22
de donde el desarrollo de Taylor de orden dos es G2(h) = G2(0) + G2(0)h +2 G2 (0)h2 + O(h2)
f
dd\
2 2 +2 v2dt2f(ti-i,yi-i) + 2c2a2if(ti-i,yi-i)dtdyf(ti-i,yi-i)
2 + 2if(ti-i,yi-1)2f(ti-i,yi-in h2 + O(h3)
34
M TODOS
DE UN PASO
que derivando dos veces nos da d G3(h) = C3 f (t*_i + csh, y*_i + 3igi + a32hG2(h)) d + dyf (t*_l + c3h, y*_l + 31gl + a32hG2(h)) (a3lf y*_l) + 32(G2(h) + hG2(h)))
d2
G
3 (h) = c3dt2f (t*_l + C3h, y*_l + a3lgl + a32hG2(h)) + d 2 + 2c3 dtdyf (t*_l + c3h, y*_l + a3lgl + a32hG2(h)) (a3lf
d + dyf (t*-1 + c3h, y*-1 + a3lgl + a32hG2(h)) (a32(2G2(h) + hG2 (h))) , de donde dd G3(0) = C3f(t*_i,y*_i) + (31 + 32) dyf(t*-i,y*-i)f(t*_i,y*_i),
d2 d2 g3 (0) = c21^2 f (t*-i, y*-i) + 2c3 (31 + 32) dtdyf (t*_i, y*-i)f (t*-i, y*-i) d2 + (a3i + 32)2 f ^-u y*-i)f ^-^ y*-i)2 d/dd\ +232dyf(t*_i,y*_i) ( c2dtf(t*-i,y*-i) + 2if(t*-i,y*-i)dyf(t*-i,y-in , por lo que el desarrollo de Taylor en cero es
G (h)
= G3(0) + G3(0)h +2G3 (0)h2 + O(h3) /dd\ = f(t*_i,y*_i) + C3f(t*_i,y*_i) + (31 + 32) dyf(t*-i,y*-i)f(t*_i,y*-i)) h 1 id d2 +2 (c3 dt2 f ^-^ y*-i) + 2c3 (3i + 32) d td yf ^-u y*-i)f y*_i)
2
d 2 + (3i + 32)2 dy2f ^-u y*-i)f ^-^ y*-i)2 + ^2fl32dyf(t*_i, y*_i) ^C2dtf(t*_i, y*_i) + 2if(t*_i, y*_i)dyf(t*-i, y*-i)^ h2 +O(h2)
35
M TODOS
DE UN PASO
desarrollo de Taylor de orden 2 (2.10), obtenemos las ecuaciones bi + 62 + 63 = 1, 62 C2 + 63 C3 = 1, b2a21 + b3 (a31 + 32) = 1 ^ 62c2 + 63 c3 =1, b2C2a21 + b3c3 (31 + 32 ) = ^ ^ b22i + b3 (a31 + a32)2 = 1 ^ b3 a32c2 = 6 ^ b3 a32a21 = 1. De las dos ltimas obtenemos que c2 = a21 con lo que usando la segunda y tercera, llegamos a c3 = a31 + a32. Entonces la quinta y sexta ecuaciones se simplifican a
62c2 + 63c2 =
que es la cuarta, y la ltima ecuacin es la antepenltima, con lo que el sistema reducido de ecuaciones nos queda bi + 62 + 63 = 1, c2 = a21 ^ c3 = 31 + 32 ^ 62C2 + 63 C3 = 1, b2c2 + 63 c3 = 1,
b a
3 32c2 = 6 ^
que nos dan los mtodos de RungeKutta de orden 3, que es una familia biparamtrica de mtodos numricos. Si tomamos c2 y c3 como parmetros, tenemos de las ecuaciones
!
que 2 c3 1 c2 3 c3
c c
62 =
63 =
2 3 22 2 c2 c 2 i3 c 2 2 22 1 c2 3 c2 c3 2 2 2 c c c2 c 3
c2c3(c3 c2)
c2c3(c3 c2)
y de la ltima 1
a
c2c3(c3 c2)
6
32 =
6b3c2
(5 ?
31 = c3 32 = c3
c2) 6 (i
36
M TODOS
DE UN PASO
y de b1 + b2 + b3 = 1 concluimos
3C2 T
c3
[93_ 1^ 3)
^ (1 _ 2 v 3
bi = 1 62 63 = 1
c c (c
2 3 3 c2) c3 (f 5) c2 (j f )
0 1 2 1 1 2 12 121 636 Estas soluciones son vlidas siempre que c2 y c3 sean no nulos y distintos. Existen mtodos que se obtienen cundo alguna de estas cantidades son nulas, y que se obtienen de igual manera. Como vemos, dado que el error local de los mtodos de RungeKutta de tres etapas es de orden 4 [O(h4)], tenemos que el error global de los mtodos de tres etapas es de orden 3.
2.6.2
Procediendo como en los casos de dos y tres etapas, aumentando en un orden los desarrollos de Taylor de las funciones implicadas, tenemos que si la tabla de Butcher de un mtodo de cuatro etapas es
0
c c c
2 3 4
21 31 41 bi 32 42 62 43 63 64
37
M TODOS
DE UN PASO
4 4 = 1, 63 C3^32C2 + &4C4(a42C2 + 043C3) = 1, 63^32^ + 64(a42C2 + a43c|) = 12, ^ 64a43a32c2 = 24, la primera de las cuales, como sabemos, viene de la condicin de consistencia de los mtodos de RungeKutta en general. Butcher en 1963 dio la simplificacin 4 6iaij = 6j(1 Cj), j = 2, 3,4, i=1 donde aij- = 0 si i > j, de la cual se tiene para j = 4 que (2.12)
6 (1 c )
4 =
de donde c4 = 1 ya que 64 = 0. Como las ecuaciones 2, 3 y 5 son lineales en 62, 63 y 64, tenemos que
62 =
1 2C3 12C2(1 C2)(C2 C3) 1 1 2C2 63 = 12C3(1 C3)(C3 C2) , 6c2c3 4(C3 + C2) +3
C )
12C2(1 C2)(1
43 =
= 2C2(2C2 1),
y a = 042
Como vemos, estas soluciones dependientes de dos parmetros son vlidas siempre que c2 1/ {0,1/2,1}, c3 1/ {0,1} y c2 = c3. Cuando alguna de estas condiciones no se satisfacen, existen no obstante mtodos de RungeKutta con estos coeficientes.
38
M TODOS
DE UN PASO
Estos mtodos son de orden 4 (orden 5 tiene el error local de truncamiento) y representan una familia de cinco parmetros de mtodos cuyos ejemplos son 0 1 3 1 1 3 1 3 1 1 8 y sobre todo, que cumple c2 = c3, 0 1 2 1 2 1 1 2 0 0 1 6 1 -1 3 8 1 31 88
1 2 0 1 3
1 11 36
que es el mtodo debido a Kutta de 1905 y que usualmente se conoce como el mtodo de Runge Kutta.
2.6.3
Mtodos de ms etapas
En general, se conoce que un mtodo de RungeKutta de m etapas tiene a lo sumo orden m. De hecho, se tiene la siguiente tabla para los rdenes en funcin de las etapas
Etapas Orden
1 1
2 2
3 3
4 4
5 4
6 5
7 6
8 6
es decir, a partir de 5 etapas no aumenta el orden global del mtodo. Por qu entonces se construyen mtodos de ms de 5 etapas? La razn es meramente computacional, ya que los errores debidos al redondeo aumentan con el nmero de pasos. Para fijar ideas, supongamos que el error global de un mtodo es e = Chp, donde p es el orden. Tomando logaritmos tenemos que log e = log C + p log h, y suponiendo que el tamao del paso h = (tf to)/n se tiene log e = log C + p log n = log C + p log(tf to) p log n = B p log n, siendo B = log C + p log(tf to). Si asumimos cierta la identidad log e = B p log n
39
M TODOS
DE UN PASO
y escirbimos otra anloga para un mtodo de orden q log e = B' q log n, tenemos dos rectas que se cortarn en un punto, que marcarn la eficiencia de cada mtodo y determinarn cundo debe usarse cada uno. 0
2.7
Ej ercicios
1. Calcula una constante de Lipschitz respecto de y para las funciones (a) (b) (c)
f (t,
f (t,y)
2. Resuelve los siguientes problemas mediante el mtodo de Euler con amplitudes de paso h y h/2. Calcula las estimaciones de error de ambas aproximaciones en el tiempo tN = b y aplica extrapolacin de Richardson. (a) (b) (c) (d) (e) (f) {y' = 1 y, y(0) =0}, b = 1, h = 0.5, h/2 = 0.25. {y' = t2 y, y(0) = 2}, b = 0.2, h = 0.2, h/2 = 0.1. {y' = y + e* + ty, y(1) = 2}, b = 1.03, h = 0.01, h/2 = 0.005. {y' = 2y/(t2 + 1), y(0) = 1}, b = 1.2, h = 0.2, h/2 = 0.1. {y' = y2 + 2t t4, y(0) =0}, b = 0.2, h = 0.2, h/2 = 0.1. {y' = t + y, y(0) = 1}, b = 0.2, h = 0.2, h/2 = 0.1.
3. Aplica el mtodo de Euler para resolver el problema y' = 1 2ty, y(0) = 0, dando tres pasos de amplitud h = 0.1 para aproximar y(0.3).
40
MTODOS DE UN PASO
4. * Aplica el mtodo de Euler para resolver el problema y" + 2y0 + 4y = 0, y(0) = 2, y0(0) = 0, dando dos pasos de amplitud h = 0.2 para aproximar y(0.4). 5. Se considera la ecuacin integral de Volterra y(t) = e* + / cos(s + y(s)) ds Jo Transforma la ecuacin integral en una EDO, obtn la condicin inicial y(0) y aplica el mtodo de Euler con h = 0.5 para aproximar y(1). 6. Se considera el mtodo yn = yn-1 + h f (tn,yn-1). (a) (b) (c) Encuentra la funcin 0(t, y, h) que se ajusta a yn = yn-1 + h 0(tn-1,yn-1,h). Demuestra que el mtodo numrico es estable y consistente de primer orden. Aplica extrapolacin de Richardson local para construir un nuevo mtodo convergente de segundo orden.
es convergente de tercer orden. 8. Encuentra coeficientes a21,a31,a32 para una frmula explcita similar a la regla de Simpson
0 1/2 1
a a
2i 3i a3 2
1/6 4/6 1/6 de tercer orden. ?Es esta regla de orden cuatro? 9. Encuentra qu relacin han de cumplir los coeficientes 61, 62 y 63 para que el mtodo de tablero 0 1/2 1 1/2 1/2 1/2 3 -O 2 -O -O
tenga orden dos. ?Existe algn caso con orden tres? 10. Resuelve el sistema de dos ecuaciones yi = t yi y2 = 3yi + 2y2 con las condiciones iniciales yi(3) = -1.312258, y2(3) = -0.414524 dando un paso con h = 0.04 y dos pasos con h = 0.02 con la regla de los trapecios explcita, el mtodo de Taylor de tercer orden y el mtodo Runge-Kutta clsico de cuarto orden. Utiliza la extrapolacin de Richardson para mejorar las aproximaciones de los tres mtodos.
41
M TODOS
DE UN PASO
+4
hf(t
Plantea el mtodo como un mtodo Runge-Kutta y escribe su tablero de Butcher. ?Satisface las condiciones de simplificacin? 12. * Se considera el esquema anterior
+4
hf(t
siendo f lipschitziana y suficientemente diferenciable. Demuestra que, para h suficientemente pequea, este esquema admite una solucin nica, estudia la estabilidad y el orden del esquema. 13. * Obtn todos los mtodos Runge-Kutta explcitos de dos etapas y orden dos. ?Puede alguno de ellos tener orden superior a dos? 14. * Usa el mtodo de Taylor de tercer orden y el Runge-Kutta clsico de cuarto orden con h = 0.1 para aproximar la solucin en t = 0.1 y t = 0.2 del problema y' = y t, y(0) = 2. Utiliza la solucin exacta y(t) = e* + t + 1 para comparar ambas aproximaciones. 15. * Se considera el mtodo
Escribe el algoritmo y estudia el orden del mtodo. Utilzalo para resolver el problema y0 = y2 + 2t t4, y(0) = 0 dando dos pasos con h = 0.1. 16. * Se considera el mtodo Runge-Kutta de cuarto orden con tablero 0 1/2 1/2 1 1/2 1/4 1/4 0 12 1/6 0 4/6 1/6 Escribe el algoritmo y justifica su convergencia. Resuelve el problema y' = 1 2ty, y(0) = 0 en el intervalo [0, 0.3] tomando h = 0.1 y utilizando los mtodos de Euler, Taylor de segundo orden y este Runge-Kutta.
42
MTODOS DE UN PASO
17.
* Dada la ecuacin lineal y' = Pi(t) y + Qi(t) prueba que las derivadas necesarias para el mtodo de Taylor de orden p vienen dadas por el algoritmo y(k) = Pfc (t) y + Qfc (t) donde
P
18.
* Se considera el mtodo
Escribe el algoritmo y estudia el orden. Integra el problema y' = t2 + y, y(0) = 0 en [0, 0.2] tomando h = 0.1 con este mtodo y el de Taylor de tercer orden. 19. * Estudia en funcin de c3 y b2 el orden del mtodo de tablero 0 1/3 C3 1/3 0 C3 / 2 -O
1 3
y obtn uno con orden 3. Resuelve con este mtodo y el de Taylor de segundo orden el problema y' = t2 y, y(0) = 1 en [0, 0.2] con pasos h = 0.2 y h = 0.1. Utiliza la solucin exacta y(t) = e-t + t2 2t + 2 para calcular los errores en t = 0.2 para ambos mtodos. ?Se comportan los errores como se espera cuando h se divide entre dos? 20. * Halla todos los mtodos de orden mximo de tablero
0 C2 C3 C2
a
31
32
1/6
4/6 1/6
Utiliza uno de ellos y el de Taylor de tercer orden para aproximar la solucin de y0 = t y, y(0) = 1 en t = 0.2 dando un paso de amplitud h = 0.2 y dos de amplitud h = 0.1 y mejorar las aproximaciones mediante extrapolacin de Richardson. Teniendo en cuenta que la solucin exacta es y(t) = e* /2, ?se comportan los errores como se espera? 21. * Se considera el mtodo de tablero
43
MTODOS DE UN PASO
(a) (b)
Estudia el orden del mtodo. Hemos integrado con este mtodo el problema y0 = e*, y(0) = 1 en el intervalo [0,1] y hemos obtenido la siguiente tabla de errores. h 1/4 1/40 1/400 error 1.23047 10-4 1.24191 10-7 1.24266 10-10
?Se ajusta el error numrico al terico? Razona tu respuesta calculando el error local asociado al problema. 22. * Transforma el problema y00(t) = t + y2(t), y(3) = 1, y0(3) = -2, en un sistema de primer orden y aproxima la solucin en el tiempo t = 3.02 tomando h = 0.01 para la regla de los trapecios explcita cuyo tablero es
0 1 1 1/2 1/2 23. * Se quiere aproximar la solucin en t = 0.2 de la ecuacin y0(t) = t + ey(t) con la condicin inicial y(0) = 0. Da dos pasos con h = 0.1 con el mtodo de Taylor de orden 3 para aproximar y(0.1) e y(0.2). 24. 25. * Estudia si hay un Runge-Kutta explcito de tres etapas y orden tres con b1 = b2 = b3. * Transforma el problema y00(t) = y(t) + t y0(t), y(1) = 2, y0(1) = -3, en un sistema de primer orden y aproxima la solucin en el tiempo t = 1.04 tomando h = 0.02 para el mtodo Runge-Kutta de tablero
0 2/3 2/3 1/4 3/4 26. * Dada la ecuacin y0(t) = t y2(t), y(1) = 2 aproxima y(1.1) de tres formas: dando un paso con h = 0.1 para el mtodo de Taylor de orden dos, dos pasos con h = 0.05 para el mismo mtodo y aplicando la extrapolacin de Richardson a partir de los datos anteriores. 27. * Estudia si hay algn Runge-Kutta explcito de tres etapas y orden tres con c2 = c3. En caso afirmativo escribe el tablero de Butcher de todos ellos. 28. * Se quiere aproximar la solucin en el tiempo t = 1.02 del sistema x0(t) = x(t)2 z(t), x(1) = 1 z0(t) = e* + x(t), z (1) = 2 Da dos pasos con h = 0.01 para el mtodo Runge-Kutta de tablero
44
MTODOS DE UN PASO
29.
* Se quiere resolver el problema de primer orden y'(t) = t + y(t)2, y(2) = 1. Aproxima y(2.01) e y(2.02) con el mtodo de Taylor de tercer orden y h = 0.01.
30. 31.
* Encuentra el Runge-Kutta explcito de tres etapas y orden tres con b1 = c3 = 0. * Se quiere aproximar en el tiempo t = 0.98 la solucin del sistema x'(t) = t z(t), x(1) = 1
z'(t) = x(t) + z(t), z(1) = 2 Da dos pasos con h = 0.01 para el mtodo Runge-Kutta de tablero
32.
* Dado el problema y'(t)=sin( + y()), y(0) = 1, aproxima y(0.1) de tres formas distintas: dando un paso con h = 0.1 para el mtodo de Taylor de orden dos, dos pasos con h = 0.05 para el mismo mtodo y aplicando la extrapolacin de Richardson a partir de los datos anteriores.
33.
* Estudia si existe algn Runge-Kutta de dos etapas y orden dos con ^ = 0. Estudia si existe algn Runge-Kutta de tres etapas y orden tres con ^ = 0.
45
MTODOS DE UN PASO
46
3.1
Introduccin
3.2
Sea y(t; t0, yo) la solucin del problema de condiciones iniciales anterior, y sean tf = ti > t0, y h = ti t0. Sea yi la aproximacin de y(ti; t0, y0) dada por la expresin pp yi = a y- +h YI f (t0 i'^ y-j), j 0 j -i = = donde a j, bj y p son parmetros elegidos de acuerdo con unas condiciones de convergencia y estabilidad detrminadas, e y-j y(t0 jh;to,yo), i = 1,...,p. Si p > 1, entonces para j = 1, ...,p los valores y-j- han de ser previamente estimados con un mtodo de orden uno, probablemente algn mtodo de RungeKutta. Si b-i = 0, el mtodo se dir
(3 1)
47
M TODOS
MULTIPASO
explcito ya que y1 se obtiene directamente como pp yi = a y-j + h X] f (to jh y-j). j=o j=o Sin embargo, si b-1 = 0 entonces el mtodo se dice implcito porque hay que calcular y1 resolviendo la ecuacin (3.1), presumiblemente haciendo uso de algn mtodo numrico para ello. En general, si tenemos n pasos, h = (tf to)/n y t = to + ih, para cada i {1,..., n} construimos pp y*+i = ajyi_j + h X] bjf (ti jh, yi-j), (3.2) j o j -1 = = junto con las condiciones yj, j = 0 parmetros del mtodo. Para ello, consideramos el error local de truncamiento pp ti+1 = ^2 aj y (ti jh; to, yo) + h ^ bj f (ti jh, y (ti ih; to, y o ) ) y (ti + h; to, yo) j o j -1 = = p p = 53 aj y (ti jh; to, yo) + h^2 bj y'(ti jh; to, yo) y (ti + h; to, yo), j o j -1 = = y tomando el desarrollo en serie de Taylor en h = 0, tenemos pp ti+1 = ^2 aj y(ti jh; to, yo) + h ^ bj y'(ti jh; to, yo) y (ti + h; to, yo) j=o p ^ 1 = 53^53 i yk)(ti; to, yo)(1)k (ih)k j=o fc=o 1 p TO 1 +h 53 bj53 kiyk+1)(ti; to,yo)(1)k(ih)k j=-1 k=o 1 53 M yk)(ti; to, yo^
oo ^
de orden p que da lugar a la aproximacin de la solucin. Veamos a continuacin cmo obtener los
j=-i
ki fc=o y reagrupando en distintas potencias de h concluimos que p\/pp\ a = hy to, ,y ) ti+1 (ti; yo) aj b + ia hy'(ti; j 1 Iy+ '(ti; t0 oY] I ^3 j 153 j 1 ) to, yo) ( ^ " bj N " iaj 1 j o = / \j=-1 j=o / (p1p h2 (t t , + y'' i; o yon J3 jbj + 2 j2aj 2 j=-i j=o +h3y3)(ti; to,yo) X A 1 X A ^ \ j=-1 j=o / + . . . + ^ j=_ jk -ibj+ <j
k a
j)+..
48
MTODOS MLTIPASO
j=_i con lo que el error local de truncamiento ser de orden O(hq+1) si se satisfacen las ecuaciones p
a j1 'j
, j=o
(-1)k
3.3
Primeros ejemplos
Vamos a construir un mtodo multipaso de 2 pasos y de orden 3. Supongamos en primer lugar que el mtodo es explcito, esto es b_1 = 0. Ser entonces un mtodo de la forma y*+1 = aoy + a1y_1 + hbof (*, y*) + hbf (* - h, y*_1), satisfaciendo el sistema de ecuaciones ao + a1 = 1, a1 + bo + ^1 = 1, a1 2&1 = 1, a1 + 3&1 = 1, de donde b1 =2, a1 =5, bo = 4 y ao = 4, de donde y*+1 = 4y* + 5y*_1 + 4hf (*, y*) + 2hf (* h, y*_1). Si elegimos un mtodo implcito, esto es, y*+1 = aoy* + a1y*_1 + hb_f (* + h, y*+1) + hbof (*, y*) + hbf (* h, y*_1), el sistema de ecuaciones anterior es de la forma ao + a1 = 1, a1 + b_1 + bo + &1 = 1, a1 + 2b_1 2b1 = 1, a1 + 3b_1 + 3b1 = 1, que es un sistema compatible indeterminado cuya solucin es <
49
MTODOS MLTIPASO
por lo que si A = 0, tenemos el mtodo 5 2 1 yi+1 = yi + h f (ti + h, yi+1) + h 3 f (ti, y i) h f (t h, y-i). El mtodo implcito tiene la desventaja de que el valor de yi+1 ha de obtenerse a partir de la solucin aproximada de una ecuacin algebraica, cosa que no ocurre con el mtodo explcito. Este ltimo no permite obtener aproximaciones de tanto orden como el implcito. Por ejemplo, el mtodo de dos pasos explcito no puede tener orden 4, ya que debera cumplir, adems de las ecuaciones anteriores, la ecuacin adicional ai 4&i = 1,
y dado que el determinante 1 -2 1 -1 3 1 1 -4 1 el sistema dado por ai 2bi = 1, ai + 3bi = 1, ai 4bi = 1, no tiene solucin. Sin embargo, si planteamos el mismo sistema para el mtodo implcito, hemos de aadir la ecuacin = 4,
4b0 1 2 3 4 0 1 0 0 0
y ahora el determinate
1 0 0 0 0
1 -1 1 -1 1
ai + -
i 0 1 = -12, 2 1 3 4 1 1 1 1 = 8, 1
i-
por lo que el sistema lineal anterior es compatible determinado y tiene un solucin nica que ser el nico mtodo de orden 4 y paso 2. Si intentramos conseguir orden 5, tendramos que aadir la ecuacin ai + 5b __ i + 5bi = 1, y tomando las ltimas 4 ecuaciones, el determinante de la matriz ampliada sera
1 1 1
1 1
2 3 4 5
por lo que el sistema ser incompatible y no habr solucin del mismo. As pues, los mtodos de dos pasos pueden tener a lo sumo orden 3 si es explcito y orden 4 si es implcito. Ahora bien, si consideramos el problema
2 1 3 5 4 1
y = y,
y(0) = 1,
50
M TODOS
MLTIPASO
3.4
y buscamos aproximar y(f; o, yo). Para ello fijamos h = (f o)/n y * = o + hi, i = 0,1, ...,n. Integrando respecto de la variable independiente
rU+1 rU+1 y(*+1; o, yo) y(*; o, yo) = / y0(; o, yo)d = / f(, y(; o, yo))d. t/ ti t/ ti
Si queremos cosntruir un mtodo de p pasos, sustituimos f (, y(; o, yo)) por un polinomio de interpolacin de grado p, que denotaremos Q(), y que cumplir la condicin Q(* jh) = f (* jh, y(* jh; o, yo)), j = i p, ...,i. Este polinomio de interpolacin verifica que f (, y(; o, yo)) = Q() + E() donde E() es el error cometido al aproximar la funcin por el polinomio interpolador, y que ser clave a la hora de determin ar el error local cometido en la aproximacin. El mtodo numrico que hemos de construir tendr la forma ' ti+1 y*+1 = y* + q()d, ti donde q(* jh) = f(* jh, y*_j), j = i p, ...,i, es decir, el polinomio interpolador sobre los datos anteriores que sern conocidos. El error local de truncamiento ser en este caso /ti+1 fti+1t*+1 = y(*; o, yo) + Q()d y(*+1; o, yo) = / E()d,
t t
i i
es decir, depender del error que se comete al calcular el polinomio interpolador. Vamos a ver a continuacin cmo se construyen los mtodos de multipaso explcitos e implcitos.
51
M TODOS
MLTIPASO
3.4.1
Mtodos de AdamsBashforth
Para cosntruir estos mtodos utilizamos la forma de Newton del polinomio interpolador dada por la diferencias finitas. Dada la sucesin xi, se definen Vixi = Vxi = xi xi-i, y para k > 1, Vk Xi = Vfc-ixi Vfc_ixi_i. Por ejemplo V2Xi = VXi VXi_i = (Xi Xi_i) (Xi_i Xi_2) = Xi 2Xi_i + Xi_2,
y
_1 + 3x_2 Xi_3.
Por convenio, estableceremos que V0xi = xi. Si t = ti + sh, el polinomio de interpolacin tiene la forma
s
+M V72f(t.y.) + + S + p M V7P
=I
donde
m
m(m 1)...(m k + 1)
para m G R y k G N, y ( m ) = 1-
= ( p + p ) hp+1fp+1)(t^,y(t;^yo)) + (hP+2).
Como s = , reescribimos
Jo
52
M TODOS
MULTIPASO
Jo
ro i1P ( s + j ) h vjf(t s y* + h y* + (^X *. y* + v /o J0 ( j= p h y* + Yl Yjvj f (t*. y0> j=o
j x
') )
v j f ( y,)ds
"
Y1
Y2
Y3
Y4 251 720
Y5 95 288
Y6 19087 60480
ti+i = hp+2Yp+iyp+2(ti; to, yo) + O(hp+3), por lo que es orden O(hp+2). As, si buscamos un mtodo de error global O(h3), necesitaremos que p = 2, siendo el mtodo de la forma
,+, = h (ni,.
= yi + h (ti,yi) + ^[f(ti,yi) + f(t-i,yi_i)] 5 + 12 [f (ti, yi) 2f (ti-1, yi-i) + f (ti-2, yi-2)] = yi + 112h (23f (ti, yi) 16f (ti_i, yi_i) + 5f (ti_2, yi-2)).
Como vemos, al mtodo de AdamsBashforth le podemos aplicar el teorema de convergencia global, por lo que ser convergente, al contrario de lo que ocurra con el primer ejemplo que estudiamos.
53
MTODOS MLTIPASO
tx
i+1 h
reescribimos
J-1
donde *1 Yo=Z
d
, j = 1, 2,...,p,
ti+i = hp+27*+1yp+2(; q, yo) + O(hp+3). Los primeros coeficientes son en este caso Yi i 2
Y2 Y3
Y4 19 720
Y5
Y6
i 12
1 24
863 60480
rol o
Tomando p = 2 obtenemos el mtodo de dos pasos y orden tres + h (t*+i , y*+i) - 2Vf (t*+i , y*+i) - l2v2f (t*+i , y*+i^ yi+i = yi + h h = yi + 12 (5f (ti+i, yi+i) +8f (ti, yi) f (ti-i, yi-i)). A la hora de aproximar yi+i, dmonos cuenta de que si definimos
IO
G(
54
M TODOS
MLTIPASO
por lo que ||G(y) G(z)|| = h|$|||f(ti+1, y) f(t*+i, z)|| < h|^0|L||y z||, dado que f es Lispchitziana en la variable y. As, para que se pueda aplicar el Teorema del punto fijo a G hemos de elegir tamaos de paso h suficientemente pequeos para que h|/?S|L < 1.
3.5
donde los coeficientes se han escogido de manera que el error local de truncamiento es O(hk), k < p+1. Como sabemos, la convergencia local no implica necesariamente la convergencia global. Vamos a ver qu propiedad adicional hemos de aadir a la convergencia local para que el mtodo sea globalmente convergente. Para ello, aplicamos el mtodo al problema f y0 = o, 1 y(o) = yo, con lo que el mtodo multipaso queda como
p y
a y
o equivalentemente
y
en diferencias lineal cuyo polinomio caracterstico es p(A) = Ap+1 a0Ap ... ap. Por la condicin de convergencia local, sabemos que
p
P(1) = 1
j=0
Y1 aj =0,
55
M TODOS
MULTIPASO
por lo que 1 es solucin particular de la ecuacin en diferencias. Dicha ecuacin, ser entonces estable si las restantes raices de p(A) tienen mdulo menor o igual que uno, y si ste es uno, se trata de una raz simple. En este caso, el mtodo (3.3) puede escribirse como
z1
zp
+1 = zp+1.
I zp+11 = ;=0 a-zp-j+1 + h p=-1 bjf(t, - jh, zp-j+1 ), donde zp--^1 = y,-j-, j = 0 , 1 , p . Matricialmente lo escribimos como
( z1
z2 z
+1
/ 0 0 0 V 0
d
1 0 0 1
0 1 0 2
0 \ 0 1 -1 0 0 / 1 0 0 1 0 1 0
z*1 z**2
\ +h
0 0
*+1
.. . z *p
\ zp1 )
+ 0 0 0
\ Ep=-1 bj f (t* 0 \ 0 1 -1 p
jh, z p+1j+1 ))
A= 0 \0 tiene radio espectral p(A) = max {j^j : ^ valor propio de A} = max {j^j : p(^) = 0} < 1, entonces si b-1 = 0, el mtodo multipaso verifica las condiciones del teorema de convergencia global, por lo que si el mtodo es estable de orden local de truncamiento O(hk+1), entonces ser convergente de orden O(hk+1). Si b-1 = 0, la estabilidad tambin implica la convergencia, aunque la demostracin sale fuera de los contenidos del curso. Si consideramos el mtodo del ejemplo inicial,
d
d p
y*+1 = -4y* + 5y*-1 + 4hf (t*. y,) + 2hf (t* - h, y*^). vemos que p(A) = A2 + 4A 5, que tiene por races 1 y 5, por lo que el mtodo no es estable, y de ah su divergencia. Para conseguir un mtodo convergente, hemos de imponer que el orden local de truncamiento sea una unidad menor, esto es, quedarnos con las ecuaciones
ao + ai = 1,
i + bo + bi = 1 i = 1,
a 2b
56
M TODOS
MLTIPASO
que nos da el conjunto uniparamtrico de soluciones o = -2^, i = 1 + 2^, bo = 2 + ^, bi = ^, que da lugar a la familia de mtodos yi+i = 2^yi + (1 + 2^)yi_i + (2 + ^)hf (ti, yi) + ^hf (ti_i, yi_i), con polinomio caracterstico p(A) = A2 + 2^A (1 + 2^), que para ser estable de cumplir que 1 < 1 + 2^ < 1, o equivalentemente
^ e R,
1 < ^ < 0,
y eligiendo ^ = 0, obtenemos el mtodo yi+1 = yi_i + 2hf (ti, yi), conocido como la regla del punto medio. Es obviamente estable ya que p(A) = A2 1, cuyas raices son 1.
3.6
0,
Frmulas BDF
Las frmulas BDF se basan en la utilizacin del polinomio interpolador en los puntos yi+1_j, j = 1, ...,p, h =
tf t0
() = ( P + P ) hp+if^+i|(t,y(t;to,yo)) + O(P+2). P
y suponemos que se verifica la ecuacin diferencial para dicho polinomio en ti+1, esto es, q0(0) = f (ti+^ q(ti+i)). Por una parte, q(ti+1) = yi+1, y por otra, dado que t = ti+1 + sh
-'() = (g (' * - j ')-y.i) s
(Y( + j 1 ' Vj ds \ ^ 1 j
-1
= X -il ( ' + j
) "y-
57
MTODOS MLTIPASO
Como
('+j
')
(s
= gj(s)
se tiene que
gj (0) = {
(jl: = 1 si j > 0, J 1 J j 0 si j = 0,
j=i que se conocen como las frmulas BDF. Por ejemplo, si p = 2, 11 hf (ti+i, yi+i) = X -V yi+i = Vyi+i + - V2yi+i j=i j 2
j
y como vemos es de dos pasos. Como estos mtodos son implcitos, de igual manera que pasaba con los mtodos de Adams implcitos, el tamao de paso h debe ser elegido para que el mtodo iterativo sea convergente con constante de Lipschitz menos que uno. En cuanto al error de truncamiento local, puede probarse que es de orden O(hp+i).
3.7
Metodos predictorcorrector
Los mtodos de predictor corrector se basan en utilizar alternativamente mtodos multipaso explcitos e implcitos de un mismo orden para aproximar la solucin. El mtodo explcito se usa para obtener la condicin inicial con la que obtener el mediante un mtodo iterativo, una mejor aproximacin con el mtodo implcito. Por ejemplo, consideramos como predictor el mtodo explcito y*+i = -4y + 5y_i + 4hy + 2hy_i, y como corrector, consideramos de entre la familia yi+1 = aoyi + aiy*_i + hb_if (ti + h, yi+i) + hbof (, y) + hbf (t - h, y_i), dados por el sistema (3.4)
58
M TODOS
MULTIPASO
Para obtener un mtodo convergente, calculamos las raices de p(t) = t2 + (A 1)t A, que son 1 A y / (1 A)2 + 4A 2 1 A ^(1 + A)2 _ 1 A (1 + A)
t=
que nos da 1 y A como soluciones, por lo que el mtodo con A = 0, dado por 5 2 1 yi+1 = yi + h f (ti + h, y*+i) + h 3 f (ti, yi) h f (ti h, y-i), ser convergente. Un esquema para aplicar estos mtodos sera el siguiente: yi. Predecimos el valor de y2 por y? con el mtodo (3.4). Como el error local es de orden 4, esta aproximacin ser de este Como el mtodo es de orden 2, utilizamos un mtodo de RungeKutta de orden 3 para estimar (3.5)
orden. Mejoramos la aproximacin anterior calculando y2 con el mtodo (3.5), tomando como punto inicial para hacer las iteraciones el punto y|. Cuando el valor obtenido de y2 sea aceptable, volvemos a aplicar los dos puntos anteriores para obtener y3, y as
sucesivamente. Hemos de destacar que el mtodo (3.5) s es estable y por tanto convergente.
3.8
Multipaso o RungeKutta
La eleccin del mtodo numrico utilizado para obtener la solucin aproximada depende en gran medida del coste de computacin de la funcin f. Si este coste es bajo, en general utilizaramos un mtodo de RungeKutta, pero cuando este es alto utilizamos uno de multipaso, ya que el coste computacional de clculo de f es menor en este caso. Adems, las distintas evaluaciones de f en etapas anteriores se pueden utilizar en varios pasos, por lo que no cada vez que se aplica el mtodo multipaso hay que evaluar la funcin f en todos los pasos.
3.9
Ejercicios
Nota: En los siguientes ejercicios, denotaremos por fn = f (tn,yn).
59
M TODOS
MLTIPASO
1. Deducir el desarrollo de la serie de potencias centrado en 0 dado por (1 X)a = (1)"( ,)X n=0 Utilizarlo para obtener los coeficientes de los mtodos de Adams explcito e implcito para distintos pasos. Para ello darse cuenta que
CO
y elegir a, a y apropiados. 2. Deduce las frmula de Adams implcitas de rdenes uno, dos, tres y cuatro. 3. Reescribe la ecuacin de segundo orden y '0 = t y y0, y(2) = 1.23, y0(2) = 4.56 como un sistema de dos ecuaciones de primer orden. Considera h = 0.05 y utiliza el mtodo de Adams explcito de dos pasos para aproximar la solucin en t = 1.8, inicializando con un mtodo de RungeKutta de orden dos. 4. * Se considera la ecuacin de segundo orden y00 = 2y0 + 4y + t. Reescribe la ecuacin como un sistema de primer orden y aplica el mtodo de Adams explcito de segundo orden con h = 0.1 y 0 < t < 0.3, tomando las condiciones iniciales y(0) = y0(0) = 0, y los datos en t = 0.1 que se obtienen con el mtodo de Taylor de orden tres. 5. * Sea el esquema y (1 + a)y_i + ay_2 = ((5 + a)/ + 8(1 a)/_i (1 + 5a)/_2. (a) (b) Estudia en funcin de a convergencia y orden del mtodo. Elige el mtodo de mayor orden e integra con h = 0.1 el problema y0 = t 5y, y(0) = 1 en el intervalo 0 < t < 0.3, inicializando con un mtodo de un paso del mismo orden que el mtodo multipaso. 6. * Estudia para qu valores de a es estable el esquema yn (1 + a)yn_1 + ayn_2 = h/n_1. 7. * Estudia en funcin de a y b el orden de convergencia de yn yn_1 = h(a/n_1 + b/n_2). 8. * Aplica el mtodo de Adams explcito de segundo orden al problema y0 = t + 2y con h = 1/4 para aproximar y(1), partiendo de las condiciones exactas y(0) = 0, y(1/4) = 3/8 + (1/4^v/e. 4h 9. * Se considera el mtodo multipaso yn = yn_4 + --------------- (2/n_1 /n_2 + 2/n_3). 3 (a) (b) Estudia convergencia y orden del mtodo. Se considera la ecuacin y0 = 4e0 8t y/2. Utiliza este mtodo con h = 1 para aproximar y(4) partiendo de los datos y(0) = 2, y(1) = 6.1946, y(2) = 14.8439, y(3) = 33.6771. 10. * Considera la familia de mtodos yn = yn_1 + h(a/n + (1 a)/n_1). (a) Estudia la convergencia y el orden en funcin de a.
h
60
M TODOS
MULTIPASO
Para a = 1/2 resuelve el problema y' = 10y, y(0) = 1 calculando yn en trminos de n y h. Estima el error local tras dar un paso con dicho algoritmo.
* Construye los mtodos multipaso yn + a1yn-1 + a2yn-2 = h(^ 1fn-1 + @ 2fn-2) consistentes de orden al menos dos y discute su estabilidad. Elige alguno convergente con a1 =0 y resuelve el problema y' = y2 + 2t t4, y(0) = 0 con h = 0.1 y 0 < t < 0.3, inicializando con el mtodo de Taylor de segundo orden.
12.
(b)
13.
n-1 (1 + a)fn-2)
Estudia convergencia y orden para a = 0 y a = 5. Si alguno de los mtodos anteriores converge salo para integrar numricamente la ecuacin y' = 4ty1/2, y(0) = 1 en el intervalo 0 < t < 0.6 con h = 0.2 e inicializando con un mtodo de RungeKutta orden 2.
14.
* Se quiere aproximar la solucin en t = 0.4 de la ecuacin y'(t) = t + ey(t) con la condicin inicial y(0) = 0. a) Da dos pasos con h = 0.1 con el mtodo de Taylor de orden 3 para aproximar y(0.1) e y(0.2).
b) A partir de los datos anteriores aproxima y(0.3) e y(0.4) con el mtodo de Adams explcito de k = 3 pasos.
15.
a)
b) Estudia el orden de consistencia del mtodo. 16. * Se considera el sistema de ecuaciones x'(t) = t + z(t) z'(t) = x(t) z(t) Aproxima (x(2.03),z(2.03)) aplicando dos pasos con h = 0.01 del mtodo de Adams explcito de orden dos. Para inicializar el mtodo utiliza la condicin inicial (x(2),z(2)) = (1,2) y el dato extra (x(2.01),z(2.01)) = (1.04015, 2.02051).
61
M TODOS
MLTIPASO
17.
* Encuentra a y b para que el mtodo multipaso yn = yn-2 + h(a fn-i + b fn-2) sea consistente del orden lo ms alto posible. ?Es estable ese mtodo? ?Es explcito? ?Crees que ser mejor o peor que el mtodo de Adams explcito de dos pasos?
18.
* Se quiere resolver el problema de primer orden y0(t) =t + y(^ y(2) = 1. a) Aproxima y(2.01) e y(2.02) con el mtodo de Taylor de tercer orden y h = 0.01.
b) Aproxima y(2.03) e y(2.04) tomando h = 0.01 para el mtodo de Adams explcito de tercer orden. Realiza la inicializacin con los valores obtenidos en el apartado anterior. 19. * Encuentra a y b para que el mtodo yn = yn-2 + h (a + b fn-3) sea consistente del orden lo ms alto posible. ?Es estable ese mtodo? ?Es explcito? ?De cuntos pasos es? 20. * Se quiere resolver el problema de primer orden y0(t) =t y(0) =1 del que se conocen los datos extra y(0.01) = 1.00005 e y(0.02) = 1.00020. Aproxima y(0.03) e y(0.04) tomando h = 0.01 para el mtodo de Adams explcito de tercer orden. 21. * Encuentra a, b y c para que el mtodo yn + a yn-i + b yn-2 = h c sea consistente del orden lo ms alto posible. ?Cul es su orden de consistencia? ?Es estable? ?Y explcito?
62
Sumario. Mtodos de diferencias finitas para problemas de contorno. Mtodos para ecuaciones en derivadas parciales.
4.1
Introduccin
Vamos a ver en este tema cmo utilizar las diferencias finitas para obtener aproximaciones de problemas de los que no nos hemos ocupado hasta el momento, como son las ecuaciones diferenciales ordinarias con problemas de contorno y las ecuaciones en derivadas parciales. Estos mtodos se basan en aproximaciones discretas de las derivadas de las funciones involucradas y que se pretenden aproximar.
4.2
Los problemas de contorno que vamos a tratar proceden de ecuaciones diferenciales de orden dos de la forma
donde a, b, a, son nmeros reales. Estos problemas son considerablemente ms difciles de analizar y estudiar que los conocidos problemas de condiciones iniciales. Nosotros vamos a centrarnos en el
63
M TODOS
EN DIFERENCIA S FINITAS
i
la solucin nica Sin embargo el problema
y" = -y, y(0) = 3, y(n/2) = 7, que como sabemos tiene por solucin general y(t) = A cos t + B sin t.
Imponiendo las condiciones de contorno obtenemos que A = 3 y B = 7, por lo que el problema tiene y (t) = 3 cos t + 7 sin t. ' y" = y,
{ i
y(0) = 3, y(2n) = 7,
Como vemos, el tratamiento de estos problemas es notablemente ms complicado que los que conocemos de condiciones iniciales. El resultado ms general sobre existencia y unicidad de soluciones es el siguiente. Theorem 3 Sea el problema de condiciones iniciales lineal
i
de contorno tiene solucin nica.
donde a<b y las funciones p(t), q(t) y / (t) son continuas en [a,b] siendo q(t) > 0 para todo t e [a,b]. Entonces dicho problema
No vamos a demostrar este resultado, sino que vamos a ver cmo podemos obtener una solucin aproximada mediante el mtodo de diferencias finitas. Para ello tomamos una particin de [a, b] por los puntos ti = a + ih, i = 0,1, ...,n + 1, donde el tamao de paso es como de costumbre h = n+i. Aproximamos la derivada en los puntos de la malla de la siguiente manera. Dado i e {1, 2,...,n}, tomamos las aproximaciones de la primera derivada como
(4.1)
Viti)
(4.2)
64
M TODOS
EN DIFERENCIA S FINITAS
y a partir de stas, obtenemos las aproximaciones de la segunda y primera derivada con un error O(h2) de la siguiente forma. Multiplicando (4.1) y (4.2) por 1/2 y sumando ambas expresiones
^ i+1
-
y(t
) 2y(t )
i + y(ti-1) h2
Veamos que efectivamente se trata de aproximaciones de orden dos. Para ello supongamos que y(t) es suficientemente derivable y obtenemos y(ti+i) = y(ti + h) = y(ti) + y' (t*)h + 2 y''(,)h2 + O(h3), e y(*-i) = y(* - h) = y(ti) - y'(ti)h + 2y''(,)h2 + O(h3).
Sustituyendo en la expresin para la primera derivada, vemos que y(t ) y(*+i) y(t*-i) y (ti) 2h se reescribe como
y(t)
y(t) + y'(t*)h + 2y''(*)h2 - (y(*) - y'(*)h + iy''(*)h2) + O(h3) /n(h2) y (*) 2h = O(h ).
De igual manera se justifica la aproximacin para la segunda derivada. Introduciendo estas aproximaciones en la ecuacin diferencial y''- p()y'- q()y - f () = o, obtenemos que
y
- p((i)y(i,+1)- y(t,_,)
- q((i)y(ii) _ f (i) = o,
y una vez multiplicado por h2, se reescribe como y(*+i) - 2y(i) + y(*-i) - hp(ti)[y(i+i) - y(*-i)] - h2[q(t)y(t) - f (t*)]0,
que simplificado
y(
65
M TODOS
EN DIFERENCIA S FINITAS
para i = 1, 2,..., n. Sustituyendo los valores y(ti) por yi, siendo y0 = a e yn+i = fl, encontramos
donde i = 1, 2,..., n, que nos proporciona la aproximacin al problema de contorno. Puede expresarse de forma matricial como
A y = b, donde
(4.3)
( (2 + q(i)h2)
1+h P 2 2 A=
(t )
p(*i) 1 - h 2 (2 + q(2)h2 1 + h ^ 0
0 0 0
0 0
0 0
n 2
(2
+ q(tn)h2) /
/ yi \ y2 y= \ yn /
y / h2f (ti) - ^1 + hyo ^ h2f (2) b= h2f (n-i) y h2f (tn) ^ h^2^ yn+i y En cuanto a la convergencia, puede enunciarse el siguiente resultado. Theorem 4 En las condiciones del Teorema 3, el sistema lineal (4.3) tiene solucin nica siempre
que h < 2/M donde M = max{|p(t)| : t [a,b]}. Adems, si la solucin de la ecuacin es de clase
C , entonces el error de la aproximacin es O(h2).
4
Podemos mejorar la convergencia usando como de costumbre la extrapolacin de Richardson, pues su desarrollo del error as lo permite. Veamos cmo aplicamos este mtodo al problema
{
cuya solucin exacta es
y(t) =
e 1 e
2
(e-t e*)
66
M TODOS
EN DIFERENCIA S FINITAS
Para n = 10 y t las matrices del mtodo son 243 121 1 1 0 0 0 0 0 0 0 243 121 0 1 1 0 0 0 0 0 0 243 121 0 0 1 1 0
1
00 00 00 243 121 10 3 1 3 2 2 1 1 21
0 0 0 0 0 1 1 0 0 243 121
0 0 0 0 0 0 1 1 0 243 121
0 0 0 0 0 0 0 1 1 243 121
0 0 0 0 0 0 0 0 1
1 0 0 A= 0 0 0 0 0 0
y
0 0 0 0
01 00 00 00
/ -1 \
24 3 12 1
0 0
b=
0 0 0 0 0
0 10 / 11cmo / Mostramos en la Figura 4.1 los valores obtenidos. Con n = 500, vemos el error decrece el la Figura 4.2.
4.3
4.3.1
Como sabemos, una ecuacin en derivadas parciales de orden dos es una expresin de la forma d 2u d 2u du a(t,y) + b(t,y) do-y + c(t,y) ^ + d(*,y) ^ + e(t,y) ^ + f (t,y)u = g(t,y),
donde a, b, c, d, e, f, y g son funciones definidas en conjunto fi C R2 y u(t, y) es una funcin incgnita a determinar. Si g(t,y) = 0 para todo (x,y) fi, la ecuacin se dice homognea, siendo no homognea en caso contrario. Las ecuaciones se clasifican en tres grandes tipos a partir de su discriminante A(, y) = b(, y)2 - 4a(, y)c(t, y). Diremos que la ecuacin es: Hiperblica si A(t, y) > 0 para todo (x,y) fi.
67
M TODOS
EN DIFERENCIA S FINITAS
\oS7
/
j
\/
\7 / y
4 ^
B 10
Figura 4.1: Para n = 10 representamos la solucin aproximada (esquina superior izquierda), solucin exacta (esquina superior derecha) y el error producido en los valores intermedios (abajo).
68
M TODOS
EN DIFERENCIA S FINITAS
Parablica si A(t,y) = 0 para todo (x,y) fi. Elptica si A(t, y) < 0 para todo (x, y) fi.
Ejemplos clsicos de cada uno de estos tipos son la ecuacin de ondas (hiperblica)
d2u 2 d2u --- = c2 ----dt2 dy2, la ecuacin del calor (parablica) y la du d 2u =k dt dy ecuacin de Laplace (elptica) d2u d2u dx2 dy2 En este ltimo caso, las dos variables x e y son espaciales, mientras que en los dos casos anteriores son temporal y espacial, respectivamente. Vamos a ver cmo trabajar con diferencias finitas para obtener una aproximacin de las ecuaciones anteriores. Para ello, consideraremos el caso en que fi = [a, b] x [c, d], es decir, un recinto rectangular. Establecemos un mallado del recinto a partir de los puntos ti = a + ih para i = 0,1,..., n + 1, siendo h = n_T el tamao de paso para la variable t e yj = c + jk, j = 0,1, ...,m + 1, siendo k = mm+Y el tamao de paso para la segunda variable. Consideramos las frmulas de aproximacin de las derivadas siguientes:
du (t ) u(t
+ = .
u(t ,
i yj+i)
u(t ,
i yj
du (t ) u(ti+i,yj) u(ti_i,yj) dt
(ti,yj)
(ti,yj)
' h2
d2u
(t )
u(ti,yj+i) 2u(ti,yj)+ u(ti,yj_i) dy2(ti,yj) ' de rdenes O(h2) y O(k2), respectivamente. Finalmente d2u dtdy(ti,yj) = dy dt(ti,yj) d du
69
M TODOS
EN DIFERENCIA S FINITAS
^ di (t*,yj+1) dt (t*,yJo 2k u(ti+i ,yj+1 )-u(t-i,yj+i) u(t+i,yj-i)-u(t-i,yj-i) ^ ______________________________ 2h__________________________ 2h ______________________ _ 2k _ u(ti+1,yj+1) - u(ti-1,yj+1) - u(ti+1,yj-1) + u(ti-1,yj-1) ' 4kh de orden O(h2 + k2). Dejamos al alumno, haciendo uso de los desarrollos de Taylor correspondientes, la tarea de verificar los rdenes de error para estas frmulas de derivacin numrica. Una vez obtenidas las frmulas de derivacin numrica anteriores, se sustituyen en la ecuacin correspondiente y se sustituyen cada valor u(tj,y,) por un valor u*, que ser una aporximacin de la solucin en el punto (tj,y,). Veremos cmo se procede con los distintos tipos de ecuaciones.
4.3.2
y dmonos cuenta que el cambio de variable s = kt hace que sta se escriba como
du du ds du d2u
dt ds dt ds dy2 o equivalentemente
du d2
ds dy2
por lo que consideraremos el problema = 0, t> 0. 0 < y < 1, u(t, 0) = 0, u(t, 1) = 0, t > 0, u(.y) = f(y), 0 < y < 1. Elegimos tamaos de paso fijos h y k = 1/m y tomamos la malla y = ik, i = 0,1,..., m,
tj = jh, j = 0,1,..., n. Discretizamos la ecuacin % = l2^ como dt dy2 u(ti+1,yj) - u(ti,yj) = u(ti,yj+1) - 2u(t,yj) + u(ti,y,-1) h = k2 :
i,j + ui,j1
70
M TODOS
EN DIFERENCIA S FINITAS
de donde
1-
2h k? ' U
h +2 tit uu_ k
u(t, 1) = 0, t > 0,
El trmino r = h/k2 se conoce con el nombre de constante de Courant y matricialmente se escribe como Ui+1 = A Ui, i = 0,1,..., n 1,
donde
( 1 2r
r 0 A= 0 0 0
r 1 2r r 0 0 0
0 r 1 2r 0 0 0
0 0 0 1 2r r 0
0 0 0 r 1 2r r
0 0 0 0 r 1 2r y
(u
u
U
i \ i,m-1 /
u
( f (V1) \
f(
V2)
u(0, )
v = y2 v, v e (0,1), u(t, 0) = u(t, 1) = 0, t > 0. Tomando el tiempo t e (0,1] y n = 1000 y m =10, tenemos que la matriz 0.1 0.8 0.1 0 0 0 0 0 0 0 0.1 0.8 0.1 0 0 0 0 0 0 0 0.1 0.8 0.1 0 0 0 0 0 0 0 0.1 0.8 0.1 0 0 0 0 0 0 0 0.1 0.8 0.1 0 0 0 0 0 0 0 0.1 0.8 0.1 0 0 0 0 0 0 0 0.1 0.8 0.1 O 0 0 0 0 0 0 0 0. 1 8
.
Q O . A=
0
0.1 0 0 0 0 0 0
0
y la Grfica 4.3 nos muestra la solucin aproximada para la malla que hemos elegido.
71
M TODOS
EN DIFERENCIA S FINITAS
Figura 4.3: Solucin aproximada para la ecuacin del calor mediante un mtodo en diferencias finitas explcito.
Dado que la evolucin natural para la temperatura de la barra que estamos considerando es que la temperatura de la misma tienda a cero, el mtodo numrico debe cumplir que
lim Ai ui = 0. i
Para ello hemos de analizar los valores propios de la matriz A = Im-1 + rB, donde
2 1 0 B 0 0
0
1 2 1 0 0 0
0. 1. 2 . 0. 0. 0.
.. 0 .. 0 .. 0 .. 2 .. 1 .. 0
0 0 0 1 2 1
0 0 0 0 1
Los valores propios de dicha matriz son de la forma A = 1 + r^, donde ^ es valor propio de B. Si = jmm, entonces los valores propios de B son 2cos0j 2, j = 1, 2, ...,m 1. Para comprobarlo, consideramos los vectores
72
M TODOS
EN DIFERENCIA S FINITAS
y calculamos 2 1 0 0 0 Vo 1 2 1 0 0 0 0. 1. 2 . 0. 0. 0. .. 0 .. 0 .. 0 .. 2 .. 1 .. 0 0 0 0 1 2 1 0 0 0 0 1 2 \
sin(6 )
j \
\
i
s in (
sin((i 1)6 j ) 2sin(i6j ) + sin((i + 1)6j ) y sin((m 2)6j ) 2sin((m 1)6j ) y Como
0
,3,...,n
2 sin(i6 , )6 j), i = 2
2 1 y ( 2 cos 6 j2
) sin((m 1 + = 2 sin(m6 = 2
)6 2
j) = 2 (m + 1 cos )6 )6
sin((m 1 )6 2
)6 ) sin
j) (m 6 +1 )6 j + (m 1
j (m 1 2 j ) + sin((m 2 j ) + sin((m 2
)6
sin((m 1 j) sin((m 1
)6 )6
j)+ j ),
dado que sin(m0j) = sin (n) = 0, tenemos que 2cos 0, - 2 es valor propio de B, y por lo tanto, los valores propios de A son A, = 1 + 2r(cos 0, - 1), j = 1, 2,..., m - 1. Para que se cumpla la condicin
73
M TODOS
EN DIFERENCIA S FINITAS
se verificar si
1 < 2r < 0,
Esta restriccin hace que el mtodo sea de clculo muy lento. Por ejemplo, si k = 10-2, entonces h debe ser menor que 0.5-10-4, lo cual hace que el nmero de pasos en la iteracin es grandsimo. Puede comprobarse aunque queda fuera de los contenidos del curso que si la solucin exacta es de clase C4 y h < entonces el mtodo es de orden O(h + k2).
Mtodos implcitos. Veamos cmo con un mtodo implcito que tiene a veces mejor tratamiento del error. Consideramos el esquema discreto
(t ,y ) u(t
u(
i j
i1 ,yj) _____________ h
u(t ,y
de donde
i,j+1
2u
i,j + ui,j-1
k2
y asi
u
siendo r = h/k2. De forma matricial obtenemos Ui = A' Ui+i, siendo ui, i = 0,1,..., n 1 como en el caso anterior y
/1+ 2r -r 0 A= 0 0
-r 1+ 2r r
0 -r 1 + 2r 0
0 0 0 1 + 2r
0 0 0 r
0 0 0 0
0 0
0 0
r 1 + 2r r 0 r 1 + 2r y
La diferencia con el esquema anterior es que ahora cada trmino ui+1 hay que calcularlo resolviendo un sistema lineal que, dado el nmero de variables que tiene, hay que resolver por un mtodo numrico apropiado. Para el estudio de la estabilidad del mtodo, se tiene que los valores propios de A son
(9 j Aj = 1 + mr sin2 = 1, 2 ......... m 1.
74
M TODOS
Todos son positivos y mayores que uno. Como los valores propios de (A0)-1 son , j = 1, 2,
EN DIFERENCIA S FINITAS
1, se tiene que todos son positivos y menores que uno, por lo que el mtodo siempre es estable, independientemente del valor de r. Es lo que se llama un mtodo incondicionalmente estable. En este caso tambin el error es de tipo O(h + k2) bajo condiciones de regularidad de la solucin anlogas a las del caso explcito, pero la estabilidad del mtodo es mayor. A modo de ejemplo, consideremos la ecuacin anterior
f = w t>-y6(-1)u( , )
21 -1
-1 21 -1
-1 21 -1
-1 21 -1
-1 21 -1
-1 21 -1
-1 21 -1
-1 21 -1
-1 21
A =
y la Grfica 4.4 nos muestra la solucin aproximada para la malla que hemos elegido. El mtodo explcito no converge para los valores que hemos elegido, mientras que el implcito, a pesar de amentar el tiempo de computacin en cada paso, ofrece una mayor estabilidad y por tanto convergencia bajo situaciones ms desfavorables.
2u
i1,j + ui1,j1
con
u
2u
i,j + ui,j1 k2 ,
obtenindose
u
75
M TODOS
EN DIFERENCIA S FINITAS
o equivalentemente, si r = h/k2, r
u
que en forma matricial es de la forma A ui+1 = B Uj, i = 0,1,..., n - 1, donde 1+r -r/2 0 A= 0 0 0
y
0 0 0 0 -r/2 1+ry
1-r r/2 0 B 0 0
0 0 0 0 r/2
1-ry
Queda fuera de los contenidos del curso demostrar que este mtodo es convergente y de orden
76
M TODOS
O(h2 + k2). A modo de ejemplo, consideramos el problema anterior f = sy. t> 0. y e (0.1). u(0, y;> = y2 y, y e (0,1), u(t, 0) = u(t, 1) = 0, t > 0. Tomando el tiempo t e (0,1] y n = 10 y m = 10, tenemos las matrices 11 5 0 0 A= 0 0 0 0 0
y
EN DIFERENCIA S FINITAS
5 11 5 0 0 0 0 0 0 5 9 5 0 0 0 0 0 0
0 5 11 5 0 0 0 0 0 0 5 9 5 0 0 0 0 0
0 0 5 11 5 0 0 0 0 0 0 5 9 5 0 0 0 0
0 0 0 5 11 5 0 0 0 0 0 0 5 9 5 0 0 0
0 0 0 0 5 11 5 0 0 0 0 0 0 5 9 5 0 0
0 0 0 0 0 5 11 5 0 0 0 0 0 0 5 9 5 0
0 0 0 0 0 0 5 11 5 0 0 0 0 0 0 5 9 5
0 0 0 0 0 0 0 5
11
9 5 0 0 B 0 0 0 0 0
0\
0 0 0 0 0 0 5 9
obtenindose la aproximacin dada por la Figura 4.5. Observamos en la Figura 4.6 una aproximacin a la solucin donde hemos disminuido los tamaos de paso.
Observacin final. Los mtodos anteriores pueden aplicarse a ecuaciones parablicas arbitrarias. Para ello hemos de considerar las aproximaciones de las derivadas y construir el esquema numrico como en los casos anteriores.
4.3.3
Ecuacin de ondas
Mtodos explcitos Un tratamiento anlogo podemos hacer para la ecuacin de ondas de la forma
(0,
y)=
<y<
77
M TODOS
EN DIFERENCIA S FINITAS
78
M TODOS
EN DIFERENCIA S FINITAS
Elegimos tamaos de paso fijos h = 1/n, y k y tomamos la malla y = ik, i = 0,1,..., m, tj = jh, j = 0,1, ...,n. Discretizamos la ecuacin como u(*+i,y) - 2u(ti,yj) + u(ti-i,yj) u(,yj+i) - 2u(t,yj) + u(ti,y1) h2 que, cambiando u(,yj) por el valor aproximado ui;j queda de la forma
u
k2
2u
i,j + Ui,j 1
k2
para i = 0,1,..., n - 1 y j = 0,1,..., m - 1, donde r = h/k, que en forma matricial se escribe Ui+1 = A Ui
-u
i^
(4.4)
siendo
/ 2(1 - r2)
r2
0 ...
r2
2(1 - r2)
r2
0 0
. ..
0 0
r2 2
0 0 0
2
0 A= 0 0
0
0 0 0
) r
0 ... 0 ...
r2
) r -
r2
2(1- r2)
Adems, por las condiciones iniciales obtenemos en primer lugar uo,j = f(y), j = 1,...,m- 1, pero dado que el esquema (4.4) es de dos pasos, hemos de obtener u1 con una aproximacin de orden dos O(h2). Por las aproximaciones de las derivadas u(t1,yj) u(0,y,-) Bu. . h d2u, . ,/,2\ ( J ( jJ h = m<a> + 2ww)+O(h'2)' junto con la aproximacin de orden dos f //(yj) ' f (yj+1) - 2f (y) + f (yj1) j k2
79
M TODOS
EN DIFERENCIA S FINITAS
Dado que (0,y-) = |y2(0,yj) = f''(y-), aprovechamos la aproximacin anterior para calcular
u
(i>y) - u(0,y-) h
= g(y-
hf (
de donde
u
i,j = 2 yj-i +
f(
(1 - r2)f(
y- + yj+i + g y-^
f(
h (
j1
,m -1
22 r
que nos proporciona el valor ui para poner en marcha el mtodo iterativo. Puede demostrarse aunque queda fuera de lo exigible en este curso, que el mtodo anterior es estable si r < 1, esto es h < k. En este caso, el mtodo converge de la forma O(h2 + k2). Como ejemplo, consideramos el problema SU = 0, t> 0. 0 < y < 1, u(t, 0) = 0, u(t, 1) = 0, t > 0, u(o,y) = -y2 + y, f (0,y) = 2y, 0 <y< 1, y tomado el tiempo en (0, 5], n = 100 y k = 10, tenemos que la matriz 1.5 0.25 0 0 A= 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5 0.25 0 0 0 0 0 0 0 0.25 1.5
La figura 4.7 nos muestra la solucin aproximada para la malla que hemos elegido.
h
i
d2u (t y ) ^ 1 u+i,j+i - 2u+i,j + ui+i--i + u-i,j+i - 2u-i- + u-1,-dy2 (ti,y- ) - ^ donde si denotamos por s = k/h, podemos escribir
2s2(u
k2
k2
i+i,j 2u- + ui-i-) = u+i,j+i 2u+i,j + ui+i,j-i + ui-i,j+i 2u-i- + ^i-i--^ que agrupado convenientemente
80
M TODOS
EN DIFERENCIA S FINITAS
Figura 4.7: Aproximacin del problema de la ecuacin de ondas con la malla elegida.
donde
( 2(s2 + 1)
1 0 A= 0 0 0 y B = -A.
1 2(s2 + 1) 1 0 0 0
0 1 2(s + 1) 0 0 0
2
0 0 0 2(s2 + 1) 1
0 0 0
0 0 0 0
1 2(s2 + 1) 1 0 1 2(s2 + 1) )
Puede verse que este mtodo es incondicionalmente estable y convergente de orden O(h2 + k2). Consideramos de nuevo el problema
ftu = 0, t> 0. 0 < y < 1, u(t, 0) = 0, u(t, 1) = 0, t > 0, u(0,y) = y2 + y, (0,y) = 2 ,0 y <y< 1,
81
M TODOS
EN DIFERENCIA S FINITAS
Figura 4.8: Aproximacin del problema de la ecuacin de ondas con la malla elegida mediante un mtodo implcito con n = 100 y n = 10. y tomado el tiempo en (0,5], n = 100 y k = 10, tenemos que la matriz 10 -1 0 0 A= 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 -1 0 0 0 0 0 0 0 -1 10 )
La figura 4.8 nos muestra la solucin aproximada para la malla que hemos elegido.
4.3.4
Ecuacin de Laplace
Vamos a considerar la ecuacin de Laplace ^ = f(x y) ax2 + dy2 f ,x,w en un conjunto fi = [a, b] X [c, d], con condiciones de frontera tipo Dirichlet u(x,y) = g(x,y), (x,y) e Fr(fi). Un tratamiento similar puede hacerse para condiciones de contorno tipo Newmann
du
(x, )
dn
82
M TODOS
EN DIFERENCIA S FINITAS
donde denota la derivada de u a lo largo del vector normal n = (0, 0,1) o mixta du d(x,y) + ^u(x,y) = g(x,y), (x,y) Fr(f), a, 6 R.
Centrmonos en el problema S + 0 = f(x,y), (x,y) n, u(x,y)= g(x,y), (x,y) Fr(fi), e introducimos las aproximaciones de las derivadas en la ecuacin obteniendo u(xi+1 ,y) - 2u(xi,y)+ u(x1,y) + u(xi,y+1) - 2u(x,yj)+ u(x,yj1) = f( ) h2 + k2 = f (x*,yi), que se simplifica a k2u(xi+1,yj) + k2u(xi1,yj) - 2(k2 + h2)u(x,yj) + h2u(x,yj+1) + h2u(x,yj1) = h2k2f (x,y), para i = 1,..., n y j = 1,..., m. En la frontera tenemos que u(xo,yj) u(xn+1,yj) para j = 0,1,...,m + 1, y u(xi,yo) = g(x*,yo), u(xi,ym+1) = g(x,ym+1), para i = 0,1,..., n +1. Tenemos por tanto que resolver el siguiente sistema de nm ecuaciones lineales con nm incgnitas
u
= g(xo,yj), = g(xn+1,yj),
hf
con
u u
o,j = g(xo,yj),
i,m+1
g(x ,y
^ m+1),
para i = 0,1,..., n +1. Puede comprobarse que existe solucin nica y con las suficientes condiciones de regularidad de la solucin, proporciona un mtodo convergente de orden O(h2 + k2).
83
M TODOS
EN DIFERENCIA S FINITAS
4.4
Ejercicios
u(x + 2h) + 16 u(x + h) 30 u(x) + 16 u(x h) u(x 2h)
u (x)
= 12h +
h)
2. * Resuelve los siguientes problemas de contorno lineales mediante el mtodo en diferencias centrales (a) (b) (c) (d) y'' y = t, y(0) = 0, y(1) = 1 para h = 0.25. y'' y = 1, y(0) = y(3) = 1 para h = 0.5. y'' + y = e*, y(0) = y(1) = 0 para h = 0.25. y'' y = 2, y(0) = y(1) = 0 para h = 0.25. razona el motivo. (f) y'' + (t/2 3/2)y' y = 0, y(0) = y(6) = 11 para h = 1. Compara el resultado numrico con la solucin analtica y(t) = t2 6t + 11. 3. Se considera la ecuacin del calor en una dimensin u* = uxx junto con la condicin inicial u(x, 0) = e-x para x R. Aplica el mtodo explcito en diferencias finitas con h = 0.25, k = 0.01 para aproximar la solucin para x = 0.5, t = 0.02. 4. Se considera la ecuacin del calor en una dimensin u* = uxx junto con la condicin inicial u(x, 0) = cos2 x para x > 0 y la condicin frontera u(0,t) = 1. Aplica el mtodo explcito en diferencias finitas con h = 0.25, k = 0.01 para aproximar la solucin para x = 0.25, t = 0.02.
(e) y'' + y' y = t, y(0) = 1, y(1) = 2 para h = 0.25. Comprueba que la solucin numrica coincide con la exacta, y
5. * Se considera la ecuacin del calor u* = uxx con la condiciones iniciales u(x, 0) = x2/2 y las condiciones frontera u(0,t) = t, u(1,t) = t + 1/2 para 0 < x, t < 1. (a) (b) (c) Resuelve mediante el mtodo explcito en diferencias finitas con h = k = 1/2. Comprueba que la solucin exacta es u(x, t) = t + x2/2. Razona por qu el mtodo en diferencias finitas resulta exacto para este problema (aunque no se satisfaga la condicin r = k/h2 < 1/2).
6. * Se considera la ecuacin de ondas utt = uxx con las condiciones iniciales u(x, 0) = x2, u*(x, 0) = 0 y las condiciones frontera u(0,t) = t2, u(1,t) = t2 + 1 para 0 < x, t < 1. (a) (b) Resuelve mediante el mtodo explcito en diferencias finitas con h = k = 1/4. Comprueba que la solucin exacta es u(x, t) = t2 + x2. (c) Razona por qu el mtodo en diferencias finitas result exacto para este problema.
7. * Sea R el cuadrado cuyos vrtices son {(0, 0), (3/2, 0), (3/2, 3/2), (0, 3/2)}. Resuelve en el interior de R con el mtodo en diferencias finitas la EDP uxx + uyy yux xuy + u = 0 tomando h = k = 0.5 y la condicin de contorno u(x, y) = x + y en la frontera de R.
84
M TODOS
EN DIFERENCIA S FINITAS
8. * Sea R el rectngulo cuyos vrtices son {(0, 0), (4, 0), (4, 3), (0, 3)}. Resuelve en el interior de R con el mtodo en diferencias finitas la EDP uxx + uy y - yux - xuy - u = 0 tomando h = k = 1 y la condicin de contorno u(x, y) = 2x - 2y en la frontera de R. 9. * Sea R el rectngulo cuyos vrtices son {(0, 0), (2, 0), (2,1), (0,1)}. Resuelve en el interior de R con el mtodo en diferencias finitas la EDP uxx + uy y + xux + yuy - u = 0 tomando h = k = 0.5 y la condicin de contorno u(x, y) = 2x - y en la frontera de R. 10. * Sea R el rectngulo cuyos vrtices son {(0,0), (4, 0), (4, 2), (0, 2)}. Resuelve en el interior de R con el mtodo en diferencias finitas la EDP uxx + uyy + uy - 2x = 2 tomando h = k = 1 y la condicin de contorno u(x, y) = x2 + 2xy en la frontera de R. 11. * Sea R el rectngulo cuyos vrtices son {(0, 0), (2,0), (2,1), (0,1)}. Resuelve en el interior de R con el mtodo en diferencias finitas la EDP uxx + uyy - yux - xuy - u = 0 tomando h = k = 0.5 y la condicin de contorno u(x, y) = x - y en la frontera de R. 12. * Se considera el problema lineal y"(t) = t y0(t) + y(t) + e* con las condiciones de contorno y(0) = -1, y(0.3) = -0.5. Aproxima la solucin mediante el mtodo en diferencias finitas de segundo orden con h = 0.1. 13. * Sea la ecuacin del calor u* = uxx, con la condicin inicial u(x, 0) = sin(x(1 - x)) para
0 < x < 1 y las condiciones frontera u(0,t) = u(1,t) = 0. Aplica el mtodo explcito en diferencias finitas para aproximar la solucin en x = 0.9, t = 0.01 tomando las amplitudes de paso espacial h = 0.1 y temporal k = 0.005. 14. * Sea la ecuacin del calor u* = uxx, con la condicin
0 < x < 1 y las condiciones frontera u(0,t) = u(1,t) diferencias finitas para aproximar la solucin en x = 0.5 paso espacial h = 0.25 y temporal k = 0.025. 15. * Se considera la ecuacin en derivadas parciales
u
inicial u(x, 0) = (x - 1) sin x para = 0. Aplica el mtodo explcito en , t = 0.05 tomando las amplitudes de
xx + uy y + y ' ux u + e 0
en el rectngulo de lados 0 < x < 0.3 y 0 < y < 0.2. Usa amplitudes de paso h = k = 0.1 y aplica diferencias finitas de segundo orden para aproximar la solucin en los puntos interiores del rectngulo, tomando como condicin inicial u(x, y) = 0 en la frontera del rectngulo.
85
M TODOS
EN DIFERENCIA S FINITAS
86
Bibliografa
[BuFa] R. Burden y J. D. Faires, Mtodos numricos, Thomson. [Dor] J. R. Dormand, Numerical methods for differential equations, CRC Press. [Ela] S. N. Elaydi, An introduction to difference equations, Springer-Verlag. [Lam] J. D. Lambert, Numerical methods for ordinary differential equations, Wiley. [VJAP] L. Vzquez, S. Jimnez, C. Aguirre y P. J. Pascual, Mtodos numricos para la Fsica y la Ingeniera, McGraw-Hill.
87