56
Cap´ ıtulo 3 Ejemplos de m´ etodos num´ ericos Resumen del tema Introducimos notaci´on, algunos resultados y m´ ultiples ejemplos de m´ etodos num´ ericos. Especialmente vemos con detalle el m´ etodo de Euler expl´ ıcito y los conceptos de estabilidad num´ erica y orden de convergencia. 3.1. Introducci´on A veces, los m´ etodos anal´ ıticos pueden dar la soluci´on pero en la mayor´ ıa de los casos no son muy ´ utiles y no se pueden aplicar. Incluso cuando se aplican la soluci´on no es ´ util por ser complicada. Por otro lado, el uso de la iteraci´on de Picard tampoco nos sirve desde el punto de vista pr´actico puesto que las integrales no se pueden calcular en general. Recordemos que esta iteraci´on es y 0 (t) y 0 , y n (t)= y 0 + t t 0 f (s, y n1 (s)) ds, n 1 y tiene un uso m´as bien te´orico. La idea as usada es la de la discretizaci´on del intervalo de c´alculo. Vamos a introducir unos conceptos generales que ayuden: como no podemos calcular indefinidamente, se fija T> 0 y nuestro intervalo de c´alculo va a ser [t 0 ,t 0 + T ]. introducimos una partici´on de [t 0 ,t 0 + T ] que suponemos uniforme, para simplificar, t n = t 0 + nh para h = T /N con n =0, 1, 2, ..., N y la llamaremos Π h , esto es Π h = {t 0 <t 1 < ... < t N = t 0 + T, t n = t h n = t 0 + n h, h = T /N }. 71

Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

  • Upload
    others

  • View
    31

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

Capıtulo 3

Ejemplos de metodos numericos

Resumen del tema

Introducimos notacion, algunos resultados y multiples ejemplos de metodosnumericos. Especialmente vemos con detalle el metodo de Euler explıcito y losconceptos de estabilidad numerica y orden de convergencia.

3.1. Introduccion

A veces, los metodos analıticos pueden dar la solucion pero en la mayorıa de loscasos no son muy utiles y no se pueden aplicar. Incluso cuando se aplican la solucionno es util por ser complicada. Por otro lado, el uso de la iteracion de Picard tampoconos sirve desde el punto de vista practico puesto que las integrales no se puedencalcular en general. Recordemos que esta iteracion es

y0(t) ≡ y0, yn(t) = y0 +

∫ t

t0

f(s, yn−1(s)) ds, n ≥ 1

y tiene un uso mas bien teorico.

La idea mas usada es la de la discretizacion del intervalo de calculo. Vamosa introducir unos conceptos generales que ayuden:

como no podemos calcular indefinidamente, se fija T > 0 y nuestro intervalode calculo va a ser [t0, t0 + T ].

introducimos una particion de [t0, t0 + T ] que suponemos uniforme, parasimplificar, tn = t0 + nh para h = T/N con n = 0, 1, 2, ..., N y la llamaremosΠh, esto es

Πh = {t0 < t1 < ... < tN = t0 + T, tn = thn = t0 + nh, h = T/N}.

71

Page 2: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

72 Capıtulo 3 Ejemplos de metodos numericos

Vamos a comparar una funcion continua, la solucion, en los puntos y(thn) con unosvalores discretos calculados en los puntos de la discretizacion yhn. Buscamos que sea

yhn ≈ y(thn).

Luego podemos unir los puntos (tn, yn) para formar una poligonal que aproxime ala curva (t, y(t)).

Definicion 38 Dada una familia de particiones {Πh}h>0 en el intervalo [t0, t0+T ],un metodo numerico para la integracion del problema de Cauchy sera unprocedimiento para generar una serie de valores yhn que aproximen a y(thn).

Definicion 39 Convergencia: Diremos que el metodo es convergente cuando paracualquier solucion y(t) del problema de Cauchy se cumple

max0≤n≤Nh

|y(thn)− yhn| → 0, h → 0+, h = T/N (h)

siendo thn = t0 + hn.

Observacion 14 Los valores de h y de N (h) en el proceso al lımite cuando h → 0cumplen N h = T . Podrıamos escribir h = h(N) o bien N = N (h), pero no se suelehacer explıcito para simplificar la notacion. Por lo tanto,

h → 0+ ⇔ N → +∞,

cumpliendose N h = T .

Observacion 15 Los valores yn se pueden interpolar o extrapolar para aproximary(t) en puntos t que no estan en la particion.

Observacion 16 Los valores (tn, yn) generados dependen tambien de h, por lo tan-to serıa mas correcto poner algo como (thn, y

hn). Mantenemos la notacion original

(tn, yn) para simplificar y no sobrecargar, aunque no debemos olvidar esto.

Observacion 17 Tradicionalmente se usa el termino integracion para resolver elproblema de Cauchy y se usa el termino cuadratura para aproximar integrales.

Observacion 18 De momento usamos un paso constante, pero gran parte de lapotencia de los algoritmos modernos consiste en poder adaptar el paso conformese calcula la solucion. Esto lo veremos mas adelante.

Los metodos numericos producen los valores {yn}n de forma iterativa: El valor yn secalcula a partir de los valores y0, y1, ..., yn−1 obtenidos previamente. Es costumbredescribir el calculo de yn como dar un paso desde tn−1 a tn de longitud h = tn−tn−1.

Vamos a realizar una primera aproximacion a las ideas mas populares, efectivas yrazonables de construir estos procesos iterativos. Supondremos que f(t, y), y por lotanto cualquier solucion del problema de Cauchy, es tan regular como necesitemos.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 72

Page 3: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.2. Metodo de Euler progresivo o explıcito 73

3.2. Metodo de Euler progresivo o explıcito

Nuestros datos son (t0, y0) junto con la funcion f(t, y) que nos evalua la pen-diente. Por lo tanto, podemos construir el valor f(t0, y0) que es la pendiente inicialde la curva solucion en el punto (t0, y0); la recta tangente a la curva solucion en elpunto (t0, y0) es

z0(s) ≡ y0 + (s− t0) f(t0, y0)

y tiene sentido entonces reemplazar el valor exacto y(t1) por el valor z0(t1) si ladistancia t1 − t0 no es muy grande. Esto es

y(t1) ≈ y0 + (t1 − t0) f(t0, y0)

Pongamos y1 = y0 + (t1 − t0) f(t0, y0), hemos entonces avanzado al punto (t1, y1) yya tenemos dos puntos que son proximos a puntos de la curva

(t0, y0), (t1, y1).

Partimos ahora de (t1, y1), podemos repetir el proceso construyendo la pendientef(t1, y1) la nueva recta tangente

z1(s) ≡ y1 + (s− t1) f(t1, y1)

y volver a progresar en el calculo obteniendo una aproximacion a y(t2) para unpunto t2 no muy alejado de t1 dada por z1(t2), esto es

y(t2) ≈ y1 + (t2 − t1) f(t1, y1)

Pongamos y2 = y1 + (t2 − t1) f(t1, y1), hemos entonces avanzado al punto (t2, y3) yya hemos generado tres puntos que sirven para construir una poligonal que va, enprincipio, ajustandose a la solucion buscada

(t0, y0), (t1, y1), (t2, y2)

y ası podemos continuar generando puntos, ver Figuras 3.1, 3.2 y 3.3.Por lo tanto, el esquema es: Dado yn obtener

yn+1 = yn + h f(tn, yn), n = 0, 1, 2, ...N − 1.

Este proceso de calculo es muy facilmente programable y en forma de pseudo-codigo queda como:

Dados t0, T , N , y0, f(t, y)Calculamos h = T/NPara n = 0 hasta N − 1

calcular tn+1 = tn + hcalcular yn+1 = yn + h f(tn, yn)

FinDibujar puntos (tn, yn)

73 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 4: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

74 Capıtulo 3 Ejemplos de metodos numericos

Figura 3.1: Interpretacion grafica del metodo de Euler progresivo. Por defecto ypara visualizar mejor se unen los puntos calculados con un trazo continuo, pero elcomputo solo genera los puntos (tn, yn).

Figura 3.2: Metodo de Euler progresivo: normalmente terminamos en una trayec-toria distinta debido al proceso de calculo aproximado. El computo solo genera lospuntos (tn, yn), pero para visualizar mejor se unen los puntos calculados con untrazo continuo.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 74

Page 5: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.2. Metodo de Euler progresivo o explıcito 75

Figura 3.3: Distintas aproximaciones a la solucion exacta para distintos h.

75 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 6: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

76 Capıtulo 3 Ejemplos de metodos numericos

Observacion 19 El valor inicial yh0 no tiene porque coincidir con y(t0) = y0, puededarse el caso donde y(t0) provenga de un valor experimental, o por ejemplo y(t0) =√π o incluso y(t0) = 1/3.... En general, hay un error inicial que no podemos

despreciar.

Observacion 20 Debido a las imprecisiones o errores se puede terminar en unacurva vecina a la buscada, ver la Figura 3.2.

Observacion 21 Al cambiar h cambia la particion y se hacen calculos en puntosdistintos del intervalo, ver la Figura 3.3. Al hacer cada vez mas pequeno h vamostomando cada vez mas puntos del mismo.

Aparte de la derivacion geometrica que hemos hecho podemos tambien llegar aeste metodo por varias vıas:

Formula de Taylor:Hacemos desarrollo de Taylor en torno al punto tn.

Cuadratura numerica:Escribimos la edo entre tn y tn+1 en su forma integral y la aproximamos porla formula del punto izquierdo.

Diferenciacion numerica:Aproximamos y′(tn) por el cociente incremental.

3.3. Error global, convergencia y orden

Una primera clasificacion practica es comprobar el orden del error que se producesobre problemas donde la solucion es conocida.

3.3.1. Orden de convergencia a cero

Necesitamos el concepto de orden de aproximacion y usamos para ello lanotacion O (leer O grande).

Definicion 40 O grande Decimos que f(z) es una O grande de g(z) cuandoz → z0 y usamos la notacion

f(z) = O(g(z)), z → z0

cuando

lımz→z0

f(z)

g(z)= K = 0.

En particular, existe un entorno V (z0) del punto z0 y una constante K > 0 tal quepara z ∈ V (z0),

|f(z)| ≤ K |g(z)|.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 76

Page 7: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.3. Error global, convergencia y orden 77

Observacion 22 Es una definicion que habla de un comportamiento en unentorno de un punto. Por lo tanto, si se desea determinar la constante, siemprese debe acompanar con la indicacion de la region donde se verifica la relacion. Deacuerdo a la region en la que se este puede cambiar la constante.

Ejemplo 41 sin(3x) = O(x) cuando x → 0.

Suponemos que h > 0 es nuestra variable y tenemos una funcion f(h) en un intervalode la forma [0, h⋆) que converge a cero cuando h tiende a cero, esto es, lımh→0 f(h) =0. La pregunta es con que velocidad decae y el concepto fundamental aquı es el deorden de convergencia

Definicion 42 Diremos que una funcion F (h) converge a cero con orden pcon respecto a h si converge a cero como hp, esto es

|F (h)| = O(hp), h → 0+

o lo que es lo mismo,

lımh→0+

F (h)

hp= K = 0.

Tambien equivale a la existencia de un entorno V (0) = (0, h0) y una constanteK > 0 tal que

|F (h)| ≤ K hp, ∀h ∈ (0, h0).

Lo interesante de esta definicion es cuando se usa para controlar los resultadosnumericos que produce un calculo. En ese caso, la expresion analıtica de F (h) nose conoce y solo se tienen los valores que se pueden obtener para casos concretos deh.

Ejemplo 43 Supongamos que para valores distintos de h se ha obtenido con elcomputador la siguiente tabla de aproximaciones para las funciones f(h) y g(h):

h f(h) g(h)0.0625 0.0118053 0.08035330.03125 0.0058242 0.02129170.015625 0.0028929 0.00593690.0078125 0.0014417 0.0015428

Podemos entonces ver que al dividir por 2 el valor de h el valor de f(h) decae porun factor de 2 mientras que g(h) decae por un factor 4. Con esta informacion sepuede deducir, en principio, que

f(h) = O(h), g(h) = O(h2), h → 0.

77 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 8: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

78 Capıtulo 3 Ejemplos de metodos numericos

3.3.2. Definicion de convergencia

Suponemos que tenemos existencia y unicidad de una solucion continua a nuestroproblema y que los valores puntuales calculados son los que nos van a servir comoaproximacion. Podemos entonces concretar

Definicion 44 Convergencia: Diremos que el metodo es convergente cuando pa-ra cualquier solucion y(t) del problema Cauchy se cumple

max0≤n≤Nh

|y(thn)− yhn| → 0, h → 0+, h = T/N (h)

siendo thn = t0 + hn. Si ademas

max0≤n≤N(h)

|y(h)n − y(thn)| = O(hp), h → 0+, h = T/N (h)

se dice que tiene un orden p de convergencia.

Observacion 23 Tambien se pide que el error inicial |y(th0)− yh0 | tienda a cero.

Observacion 24 Este resultado usa h → 0+. No se tiene en cuenta la posibilidadde que el valor h sea tan pequeno que resulte impracticable.

Una cuenta sencilla nos permite descubrir que el metodo de Euler explıcito esde primer orden

Teorema 45 El metodo de Euler explıcito converge con orden 1.

Dem: Tomemos una curva concreta dentro del campo de velocidades, w = w(t),esto es,

w′(t) = f(t, w(t)), w(t0) dado

y sabemos que w ∈ C2([t0, t0 + T ]) ya que suponemos f ∈ C1 al menos. Queremosusar el metodo de Euler explıcito para obtener una aproximacion a los valorespuntuales w(tn) para una particion dada. De acuerdo al desarrollo de Taylor tenemos

w(tn+1) = w(tn) + hw′(tn) +1

2h2w′′(ξn), tn < ξn < tn+1,

es decir,

w(tn+1) = w(tn) + h f(tn, w(tn)) +1

2h2w′′(ξn), tn < ξn < tn+1.

El valor Rn = 12h

2w′′(ξn) es el residuo, o el error local, que surge cuando sepretende que la solucion continua cumpla el esquema numerico

w(tn+1) = w(tn) + h f(tn, w(tn)) +Rn.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 78

Page 9: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.3. Error global, convergencia y orden 79

En cada iteracion tenemos

en+1 := w(tn+1)− yn+1 = w(tn) + hf(tn, w(tn)) +1

2h2w′′(ξn)− yn − hf(tn, yn)

de dondeen+1 = en + h{f(tn, w(tn))− f(tn, yn)}+Rn

y usando, por ejemplo, la propiedad de Lipschitz sobre f

|en+1| ≤ (1 + hL) |en|+R

donde R = maxt0<tn<t0+T |Rn| ≤ maxt0<t<t0+T |w′′(t)|h2/2.Entonces

|e1| ≤ (1 + hL) |e0|+R

luego

|e2| ≤ (1 + hL) |e1|+R ≤ (1 + hL)2|e0|+ ((1 + hL) + 1)R

y recursivamente llegamos a

|en+1| ≤ (1 + hL)n+1|e0|+ (1 + (1 + hL) + (1 + hL)2 + ...+ (1 + hL)n)R.

de donde facilmente, usando la suma geometrica

|en+1| ≤ (1 + hL)n+1|e0|+(1 + hL)n+1 − 1

(1 + hL)− 1R,

es decir,

|en+1| ≤ (1 + hL)n+1|e0|+(1 + hL)n+1 − 1

2Lmax

t0<t<t0+T|w′′(t)| h,

que se puede terminar de acotar como

|en+1| ≤ eL(tn+1−t0)|e0|+eL(tn+1−t0) − 1

2Lmax

t0<t<t0+T|w′′(t)| h.

Tomando la mayor de las cotas posible, es decir, para tn+1 = t0+T nos encontramoscon para 0 ≤ n ≤ N − 1 con

|en+1| ≤ eLT |e0|+eLT − 1

2Lmax

t0<t<t0+T|w′′(t)| h.

Observar que hasta aquı no se ha planteado ninguna restriccion sobre h.

79 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 10: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

80 Capıtulo 3 Ejemplos de metodos numericos

Al considerar el primer termino tambien para tener convergencia necesitamosentonces |e0| → 0 para h → 0. Y si ademas |e0| = C0 h, generamos un error tambienproporcional a h. Ası podemos respetar la potencia h que sale del segundo terminoy concluir

|en| ≤ C h, 0 ≤ n ≤ N = T/h

luego el metodo es de orden uno. La constante C ∼ eTL sobreestima el error envarios ordenes de magnitud y no debe usarse en la practica ya que puede ser de-masiado pesimista. Pero desde el punto de vista teorico ayuda a indicar el orden deconvergencia. !

Al ser el error de la forma E(h) ≈ c h si, por ejemplo, dividimos h entre 2 yvolvemos a calcular el error tenemos

E(h

2) ≈ c

h

2≈ E(h)

2.

Por lo tanto, el error obtenido es el que teniamos antes pero dividido por 2.

3.4. Observaciones sobre la demostracion de con-vergencia

Varios puntos interesantes para la comprension del resultado se pueden destacar.

Observacion 25 Dos partes en la acotacion del error :

El primer sumando contiene el efecto del error inicial. Este error se amplifi-ca debido a que se hace un calculo iterativo

(1 + hL)n+1|w(t0)− yh0 | ≤ etn+1L|w(t0)− yh0 |.

El segundo termino contiene el efecto del residuo en cada paso. Estos residuosse acumulan y van apareciendo debido a que la solucion exacta buscada, w(t)no cumple con el esquema numerico planteado (le sobra el residuo)

(1 + hL)n+1 − 1

2Lmax

t0<t<t0+T|w′′(t)| h.

Se ve claramente que este termino no aparece si w′′ ≡ 0 y que si buscamosuna funcion z distinta a la w el valor constante delante de h cambia puestoque aparecera maxt0<t<t0+T |z′′(t)| en vez de maxt0<t<t0+T |w′′(t)|.

El equilibrio optimo en terminos de potencias de h se da cuando |w(t0)−yh0 | =O(h) puesto que el segundo sumando no se puede mejorar y es O(h).

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 80

Page 11: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.4. Observaciones sobre la demostracion de convergencia 81

Esto quiere decir que el esfuerzo en aproximar el error inicial es suficientecon que sea igual al del orden del metodo usado, en este caso O(h).

Observacion 26 Cuando w′′(t) ≡ 0 (w(t) = a+bt) entonces la solucion particularbuscada w(t) cumple el esquema de forma exacta, esto es,

w(tn+1) = w(tn) + h f(tn, w(tn)), ∀n ≥ 0.

Por lo tanto, si tomamos y0 = w(t0) entonces yn+1 = w(tn+1) para todo n ≥ 0. Encambio, si y0 = w(t0) solo nos queda la primera parte de la estimacion de error ytenemos la acotacion

|w(tn+1)− yn+1| ≤ (1 + hL)n+1|w(t0)− y0| ≤ etn+1L|w(t0)− y0|.

Esto equivale a lanzar el esquema desde dos puntos iniciales distintos w(t0) e y0 yestimar cuanto se alejan entre sı los valores obtenidos.

Podriamos exigir |w(0)−y0| muy pequeno en relacion con h (por ejemplo O(h2)),pero cuando aparezca el otro termino de error no podremos mejorar la potencia unosobre h y sera esta la que mande, ya que O(h2) +O(h) = O(h).

Observacion 27 Si el error inicial es cero |w(t0)− y0| = 0 tendremos

|en+1| ≤ Cn+1 h

donde

Cn+1 =(1 + hL)n+1 − 1

2Lmax

t0<t<t0+T|w′′(t)| ≤ etn+1L − 1

2Lmax

t0<t<t0+T|w′′(t)|

crece conforme se avanza en tiempo, puede tener un valor maximo dado por (usando1 + x ≤ ex)

Cn+1 = maxt0<t<t0+T

|w′′(t)| eLT − 1

2L

y depende de

del campo de velocidades presente a traves de L cota superior de ∂yf(t, y)

de la curva solucion buscada dentro de este campo mediante w′′(t)

de la longitud del intervalo de tiempo pedido T

y finalmente del esquema numerico usado que lo amalgama todo.

Resumiendo, cuando el error inicial es cero

|en| ≤ C h = O(h).

Si ademas, en el caso muy particular de tener w′′ = 0 tendremos en = 0 paracualquier n ya que el esquema sera exacto si partimos del dato incial exacto.

81 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 12: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

82 Capıtulo 3 Ejemplos de metodos numericos

Observacion 28 El error local o residuo: El error Rn = 12h

2y′′(ξn) que le queda ala solucion continua cuando se quiere cumplir con ella el esquema numerico

y(tn+1) = y(tn) + h f(tn, y(tn)) +Rn

es el que marca el orden del metodo: error local O(h2) implica error global O(h).Mas adelante buscaremos esquemas donde este residuo sea mas pequeno, esto

es, tenga una potencia de h mas grande. En general, el residuo tendra la forma

R ∼ Cte hp+1

donde Cte es una constante que dependera de derivadas de alto orden de la funcionsolucion exacta buscada y el exponente p + 1 marcara el orden p. La razon delp + 1 para quedarnos en p es que nos hara falta una potencia de h para controlarlas acumulaciones durante los N pasos de los errores que provienen del residuo, yrecordemos que N ∼ h−1. Por esto, si el residuo es O(hp+1) el error del metodosera O(hp).

Observacion 29 Acotar w′′(t) sin conocer w(t): Se puede acotar una funcion y susderivadas sin conocerla explıcitamente. Por ejemplo

y′(t) = sin(ey(t)), t ∈ [0, 1], y(0) = 0.

ya nos dice que |y′(t)| ≤ 1. Ademas, como

y(t) = 0 +

∫ t

0

y′(s)ds

entonces |y(t)| ≤ t ≤ 1. Ademas, al derivar la ecuacion

y′′ = cos(ey(t))ey(t)sin(ey(t))

de donde |y′′(t)| ≤ e.

Observacion 30 El uso exclusivo de la constante de Lipschitz tanto parael caso expansivo como contractivo es la forma mas usual de presentar elresultado de convergencia del metodo de Euler explıcito. En el caso de un problemaexpansivo esta ajustada a los calculos mientras que en un problema disipativo nodistingue el decaimiento, la constante de Lipschitz es insensible al signo. Porlo tanto, en esta demostracion de convergencia se pueden encontrar mejores cotassuperiores si cuando se usa el Teorema del Valor Medio y nos encontramos con∂yf < 0. Lo veremos mas adelante.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 82

Page 13: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.5. Ejemplos practicos 83

3.5. Ejemplos practicos

Ejemplo 46 Euler explıcito no es O(h2): Para ver que el error no es O(h2), esdecir, no hay convergencia como h2 a cero, tenemos el siguiente ejemplo quees muy facil. Aquı la segunda derivada es no nula y los calculos se hacen a manode forma simple:

w′(t) = t, w(0) = 0

con solucionw(t) = t2/2.

Si tomamos como valor de arranque y0 = 0 y con tn = nh entonces se tiene que

y1 = y0 + ht0 = 0,

y2 = y1 + ht1 = h2,

y3 = y2 + ht2 = h2(1 + 2),...

yn = h2(1 + 2 + ...+ (n− 1)),

es decir,

yn = t2n/2−tn2h

de donde

y(tn)− yn =tn2h.

Para ver entonces la convergencia en un punto, ponemos t = tn fijo y se realiza ellımite para h → 0 y n → +∞ tal que hn = t fijo. Esto se representa por lımhn=t,esto es, hacemos h → 0 y n → +∞ tal que hn = t fijo. Entonces resulta que

lımhn=t

(y(tn)− yhn) = lımhn=t

th

2=

t

2lımhn=t

h = 0.

pero evidentemente

lımhn=t

y(tn)− yhnh

=t

2= 0

luego y(tn)− yhn = O(h) pero y(tn)− yhn = O(h2).

Que un metodo sea convergente con orden p quiere decir que su error es O(hp)para una solucion regular cualquiera en general y esto no se puede mejorar. El errorque se comete es de ese orden y no mayor, entiendase O(hp+1). Esta regla solo seve alterada en el caso particular y raramente posible donde se busque la solucionque anula el residuo. En ese caso particular la solucion buscada satisface de formaexacta el esquema numerico y el error es de hecho cero. Exceptuando este caso,siempre tendremos O(hp).

83 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 14: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

84 Capıtulo 3 Ejemplos de metodos numericos

Ejemplo 47 Experimento numerico: Vamos a comprobar computacionalmente queel metodo de Euler es de primer orden con un par de problemas donde la segundaderivada no se anula. Consideremos

y′(t) = −y(t) + 1, y(0) = 0 (3.1)

con soluciony(t) = 1− e−t

y el problema

y′(t) = y(t), y(0) = 1 (3.2)

con soluciony(t) = et.

Podemos entonces realizar una tabla con los errores obtenidos

En = maxk≤n

|y(tk)− yk|

para n = 1/h con n = 16, 32, 64, .... (duplicandose) en el intervalo de tiempo [0, 1].Vemos que los errores decaen por un factor de 2 confirmando numericamente elorden 1 en h.

n = h−1 error en (3.1) p error en (3.2) p16 0.0118053 −−− 0.0803533 −−−32 0.0058242 1.019 0.0412917 0.960564 0.0028929 1.0095 0.0209369 0.97974128 0.0014417 1.0047 0.0105428 0.98978256 0.0007197 1.0023 0.0052902 0.9948512 0.0003595 1.0014 0.0026498 0.99741024 0.0001797 1.0004 0.0013261 0.9987

Un par de resultados auxiliares de tipo tecnico nos hacen falta:

Lema 1 Si para A,B > 0 constantes independientes de n los numeros ξn cumplen

|ξn+1| ≤ A |ξn|+B, n = 0, 1, 2, ...N − 1,

entonces comprobar que

|ξn| ≤ An |ξ0|+ En(A)B, n = 1, 2, ...N,

donde

En(A) =An − 1

A− 1, si A = 1, En(A) = n, si A = 1.

Cuando A = 1 + δ con δ > 0 comprobar que

|ξn| ≤ An |ξ0|+en δ − 1

δB, n = 1, 2, ...N.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 84

Page 15: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.5. Ejemplos practicos 85

Dem: Lo dejamos como ejercicio, pero ya lo hemos usado de hecho en la prueba deconvergencia de Euler. !

Lema 2 Para h → 0 y n → +∞ tal que hn = t fijo se cumple

(1− hL)n ∼ e−tL, es decir, lımhn=t(1− hL)n = e−tL

(1 + hL)n ∼ etL, es decir, lımhn=t(1 + hL)n = etL

donde lımhn=t representa h → 0 y n → +∞ tal que hn = t fijo.

Dem: Ejercicio. !

Ejemplo 48 Calculo explıcito: Para f(t, y) = 1000 (1− y) = −1000y + 1000 tene-mos

yn+1 = yn + h 1000(1− yn) = (1− h1000)yn + 1000h, n ≥ 1

Entonces si y0 = 1 se reproduce la solucion w(t) ≡ 1. ¿si y0 = 1 que ocurre?Aplicando el Lema 1

yn = (1− h1000)ny0 +(1− 1000h)n − 1

−1000h1000h

es decir

yn = (1− h1000)ny0 − (1− 1000h)n + 1 = (1− h1000)n(y0 − 1) + 1

luego la diferencia entre la solucion constante w ≡ 1 y la calculada es

yhn − 1 = (1− h1000)n(y0 − 1)

Entonces para cada t = nh tendremos en el lımite

lımhn=t

(yhn − 1) = e−1000t(y0 − 1).

Luego cuanto mayor sea t = hn mas rapido se aproxima el calculo hacia la solucionestacionaria en el lımite lımhn=t, esto es, cuando disminuimos h aumentando n talque t = nh esta fijo. Esto reproduce lo que el sistema continuo hace.

Una misma curva puede estar en campos de velocidades totalmente distintos:

Ejemplo 49 Calculo explıcito: Un caso muy sencillo es

w′(t) = 0, w(0) = 1

con solucionw(t) ≡ 1.

85 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 16: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

86 Capıtulo 3 Ejemplos de metodos numericos

Aquı se tiene que f(t, y) = 0 y en cada punto (t, y) hay una pendiente cero. Sitomamos como valor de arranque y0 = 1 entonces facilmente yn = 1 = w(tn) paracualquier n. En este caso la aplicacion de Euler explıcito es trivial

yn+1 = yn + h 0 = yn.

Por otro lado, los campos f(t, y) = ±1000 (1− y) poseen una solucion de equilibriow(t) = 1 y el campo de vectores es muy contractivo o expansivo dependiendo delsigno. En todo caso, al usar Euler explıcito con y0 = 1 se reproduce de forma exactala solucion w(t) ≡ 1.

Ejemplo 50 Calculo explıcito: Si aplicamos el metodo ahora a f(t, y) = −1000 (1−y) = 1000y − 1000 tenemos

yn+1 = yn + h (−1000(1− yn)) = (1 + h1000)yn − 1000h, n ≥ 1.

otra vez no hay problema si y0 = 1 pero si y0 = 1 tenemos

yn = (1 + h1000)ny0 −(1 + 1000h)n − 1

1000h1000h

es deciryn = (1 + h1000)n(y0 − 1) + 1

Entonces para cada t = nh tendremos en el lımite

lımhn=t

(yhn − 1) = e1000t(y0 − 1)

con lo que la solucion buscada que empieza en y0 = 1 se aleja bruscamente dela estacionaria conforme avanza el tiempo por muy cerca que este y0 de 1. Estoreproduce lo que el sistema continuo hace.

3.6. Ejemplos sobre la estimacion de error

Ejemplo 51 Un problema estable: Consideremos y′(t) = atan(y(t)), y(0) = y0,ver Figura 3.4, entonces f(t, y) = f(y) = atan(y) luego ∂yf(y) = (1 + y2)−1 ≤1 y Lf = 1. Podemos ademas estimar y′′(t) derivando la ecuacion y obtenemos∥y′′∥∞ ≤ π/2. La aproximacion de la solucion del problema mediante el metodo deEuler explıcito genera una estimacion de error en un intervalo de tiempo [0, T ] dadapor

|en| ≤ eT |e0|+π

4(eT − 1)h.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 86

Page 17: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.6. Ejemplos sobre la estimacion de error 87

Figura 3.4: Soluciones para dy/dt=atan(y). Se observa la apertura conica de lassoluciones.

Si T = 1 y queremos limitar el error a un valor 0.001 tendremos que tomar h y elerror inicial |e0| tales que

e1|e0|+π

4(e1 − 1)h ≤ 0.001.

por ejemplo, e0 = 0 nos da h < 0.00074. Si fijamos un intervalo de calculo masgrande, la restriccion sobre el parametro h empeorara sustancialmente. Pero nopodemos mejorar esta cota. Debemos buscar un metodo con un orden mayor.

Ejemplo 52 Un problema muy inestable: Consideremos

⎧⎨

d

dty(t) = 10 y + 11 t− 5 t2 − 1, 0 < t ≤ 3,

y(0) = 0,

que tiene por solucion y(t) = t2/2− t como se comprueba facilmente. Las soluciongeneral cuando y(0) = y0 es

y(t) = y0e10t + t2/2− t.

que incluye y(t) = t2/2− t si y0 = 0. En la Figura 3.5 se ven las soluciones y comola solucion para y0 = 0 queda oculta por la gran variacion que producen aquellas enlas que y0 = 0.

Aquı tenemos que f(t, y) = 10 y + 11 t − 5 t2 − 1 por lo que la constante deLipschitz para f(t, y) con respecto a la segunda variable es L = 10.

87 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 18: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

88 Capıtulo 3 Ejemplos de metodos numericos

Figura 3.5: Campo de soluciones para dy/dt=10 y + 11 t − 5 t2 − 1. Las solucionesson y(t) = y0e10t+t2/2−t. Incluye y(t) = t2/2−t pero no se ve por la gran variacionproducida en las otras soluciones.

Por otro, como y(t) = t2/2 − t resulta que y′′(t) = 1. Por ultimo, si tomamosy0 = 0 de tal forma que el error inicial es cero, tenemos la estimacion de error

|y(tn)− y(h)n | ≤ h

2

e30 − 1

10, n = 1, 2, ...N (h)

donde recordemos que hN (h) = T = 3 y tn = nh para n = 1, 2, ..., N (h). Entoncessi queremos que sea, por ejemplo,

|y(tn)− y(h)n | ≤ 0.01, n = 1, 2, ...N (h)

estamos forzados a plantear

h

2

e30 − 1

10≤ 0.01 ⇒ h <

1

5 (e30 − 1)≈ 1.87... · 10−14.

Pero esto genera una restriccion inabordable, practicamente h ≈ 0. Rebajar elintervalo de calculo tampoco ayuda mucho. Por ejemplo si T = 1, tenemos entonces

h

2

e10 − 1

10≤ 0.01 ⇒ h <

1

5 (e10 − 1)≈ 9.08... · 10−6.

Ahora resulta que esto plantea una restriccion h ≈ 10−5. Entonces tenemos quetomar entorno a 105 = 100.000 puntos en la particion del intervalo [0, 1] y esto estodavia muy costoso en terminos de memoria de computador.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 88

Page 19: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.6. Ejemplos sobre la estimacion de error 89

Pequenas variaciones en el dato inicial pueden ser tambien muy importantesen el calculo. Si aplicamos el metodo de Euler progresivo pero ahora hemos tomadoy(h)0 = ϵ > 0 para ϵ pequeno, quizas por accidente. Entonces tenemos la estimacionde error

|y(tn)− y(h)n | ≤ e30ϵ+h

2

e30 − 1

10, n = 1, 2, ...N (h)

donde recordemos que hN (h) = T = 3 y tn = nh para n = 1, 2, ..., N (h). Ahoratrabaja en nuestra contra tambien el termino

e30ϵ ≈ 1013ϵ.

Entonces, hacer pequeno este termino solo sera posible para una eleccion de ϵ practi-camente igual al cero de la maquina

1013ϵ ≤ 0.01 ⇔ ϵ ≤ 10−15.

Observacion 31 Una alternativa puede ser trabajar con un metodo de mayororden. En este caso el error local maximo y el error de convergencia son menores.Supongamos que tenemos un metodo de cuarto orden y que la estimacion de errores similar, entonces para T = 1 y si, por ejemplo, hemos obtenido un error localmaximo l(h) = h4+1 ocurre

h4 e10 − 1

10≤ 0.01 ⇒ h <

( 10

100 (e10 − 1)

)1/4

= 0.046...

luego tenemos un valor de h mas razonable gracias a la raiz cuarta. En cuanto alerror en el dato inicial, solo podremos mejorar si tenemos el mismo orden en elerror inicial.

Observacion 32 Observar que fijado n Taylor da

(1 + x)n = 1 +O(nx), x → 0

Tambien, fijado n

1 + x+x2

2!+ ...+

xn−1

(n− 1)!= ex −O(xn), x → 0

Pero hay que llevar cuidado con esto ya que n → +∞ y h → 0 luego es mejor usaresto

(1 + x)n = enlog(1+x) = exnlog(1+x)/x ≈ exn−x2n/2, x → 0

89 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 20: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

90 Capıtulo 3 Ejemplos de metodos numericos

Lema 3 Vamos a necesitar el siguiente resultado tecnico: Para la funcion

f(x) =log(1 + x)

x, x > −1

se cumple que f(0) = 1, f ′(0) = −1/2 y f ′′(0) = 2/3 donde

f ′′(x) =−1

x(1 + x)2+

−2

x2(1 + x)+

2 log(1 + x)

x3, x > −1.

Por lo tanto, como f ′′(0) = 2/3 se tiene que f ′′(x) esta acotada en cualquier subin-tervalo de (−1,+∞) ya que el unico punto donde podrıa dar singularidad, x = 0,el lımite existe y es f ′′(0) = 2/3.

Entonces, para x > −1 se tiene el siguiente desarrollo de Taylor en torno ax = 0

log(1 + x)

x= 1− x

2+

x2

2!f ′′(ξ), 0 < ξ < |x|

y tambienlog(1 + x)

x= 1− x

2+O(x2), x → 0.

Veamos ahora como podemos calcular de forma exacta el error

Ejemplo 53 Caso expansivo general: Sea f(t, y) = a y con a > 0. Entonces L =∂yf(tn, ξn) = a. La solucion exacta es y(t) = ea t si usamos y(0) = 1; el esquema deEuler explıcito en un intervalo [0, T ] usando N puntos y tomando h = T/N es

yn+1 = yn + h a yn

para n = 0, 1, 2, ..., N − 1, o lo que es lo mismo,

yn = (1 + h a)n, 0 ≤ n ≤ N.

Podemos calcular el error en t = nh

eat − (1 + h a)n = eat − en log(1+h a)

pero aplicando el desarrollo de Taylor anterior en el punto x = ah > 0 tenemospara algun valor P = 1

2f′′(ξ)

eat − (1 + h a)n = eat − enha log(1+ha)/(ha) = eat − eta log(1+ha)/(ha)

= eat − eta(1−ha/2+(ha)2P ) = eat − eta−tha2/2+(ha)2P

= eat(1− e−tha2/2+(ha)2P ).

Por otro lado, el desarrollo de Taylor de la exponencial nos dice tambien que

e−tha2/2+(ha)2P = 1 + (−tha2/2 + (ha)2P )/1! + (−tha2/2 + (ha)2P )2/2! + ....

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 90

Page 21: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.6. Ejemplos sobre la estimacion de error 91

de donde

1− e−tha2/2+(ha)2P = −(−tha2/2 + (ha)2P + (−tha2/2 + (ha)2P )2/2 + ....

Si t = nh fijo entonces evidentemente

lımnh=t

(eat − (1 + h a)n) = eat lımnh=t

(1− e−tha2/2+(ha)2P ) = lımh→0

(1− e−tha2/2+(ha)2P ) = 0

y ademas, tenemos que

eat − (1 + h a)n = eat(−(−tha2/2 + (ha)2P + (tha2/2 + (ha)2P )2/2 + ....)

= eat(tha2/2 +O(h2)).

Entonces, para h lo suficientemente pequeno, se cumple

eat − (1 + ha)n ≈ 1

2eat ta2 h ≤ C h, (C =

1

2eaT Ta2).

Luego en el caso f(t, y) = ay > 0 con a > 0 resulta que la estimacion de errores ajustada y la constante, ası como el error, ambos crecen de formaexponencial, siendo esto correcto.

En este caso, f(t, y) = ay con a > 0 para t = nh fijo necesitamos h exponen-cialmente pequeno y n exponencialmente grande si quiero tener un errorpequeno en eat − (1 + ha)n.

Ası que, incluso cuando la estimacion de error es correcta, puede ser inutildesde el punto de vista de implementacion en un computador ya quepuede necesitar muchos recursos computacionales. Necesitamos trabajar con unmetodo de orden mayor.

Veamos que ocurre en el caso contractivo f(t, y) = −ay con a > 0

Ejemplo 54 Caso contractivo general: Sea f(t, y) = −a y con a > 0 y pongamosy(0) = 1. Entonces Lf = a pero ∂yf = −a. La solucion exacta es y(t) = e−a t;el esquema de Euler explıcito en un intervalo [0, T ] usando N puntos y tomandoh = T/N es

yn+1 = yn − ha yn

para n = 0, 1, 2, ..., N − 1, o lo que es lo mismo,

yn = (1− ha)n, 0 ≤ n ≤ N.

Podemos calcular el error en t = nh (y0 = 1). Nos interesa ver el lımite cuandoh → 0 ası que podemos suponer h < 1/a y esto nos da 0 < 1− ha < 1. Entonces

e−at − (1− ha)n = eat − en log(1−ha) = e−at − e−nha log(1−ha)/(−ha)

= e−at − e−ta log(1−ha)/(−ha).

91 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 22: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

92 Capıtulo 3 Ejemplos de metodos numericos

de donde igual que antes, para h lo suficientemente pequeno, tenemos

e−at − (1− ha)n ≈ e−at − e−ta(1−ha/2) = e−at − e−ta+tha2/2

= e−at(1− etha2/2) ≈ e−at(−tha2/2)

es decir,

e−at − (1− ha)n ≈ −1

2e−at ta2 h, h → 0+

luego tenemos convergencia pero la constante de error es mucho menor que la queindica la prueba que hemos visto.

Vamos a terminar mejorando el resultado de convergencia visto para el caso deEuler explicito en este tipo de problemas:

3.6.1. Convergencia Euler explicito en el caso contractivo

Vamos a ver el resultado para el problema y′ = −ay con a > 0. Podemos usartambien y′ = −ay + b pero no cambia nada.

Teorema 55 Convergencia Euler explıcito en el caso contractivo y′ = −ay cona > 0.

Dem: Al igual que en la prueba normal, llegamos a

en+1 = en + h{f(tn, w(tn))− f(tn, yn)}+Rn

pero f(t, y) = −ay + b implica que ∂yf(t, y) = −a y esto mejora la constante deLipschitz que tomariamos como L = |∂yf(t, y)| = a. Por lo tanto,

en+1 = (1− ha) en + R

y si tomamos h < 1/a entonces 1− ha > 0 y tenemos

|en+1| = (1− ha) |en|+R

donde R = maxt0<tn<t0+T |Rn| ≤ maxt0<t<t0+T |w′′(t)|h2/2 y recursivamente llega-mos a

|en+1| ≤ (1− ha)n+1|e0|+(1− ha)n+1 − 1

(1− ha)− 1R,

es decir,

|en+1| ≤ (1− ha)n+1|e0|+1− (1− ha)n+1

amax

t0<t<t0+T|w′′(t)| h,

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 92

Page 23: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.7. Metodos de un paso 93

Entonces, como lımhn=t(1− ha)n = e−ta que se puede terminar de acotar como

|ehn| ≤ e−athn |eh0 |+1− e−athn

amax

t0<t<t0+T|w′′(t)| h.

En este caso, se tiene tambien orden uno en potencia de h pero se observa que todaslas constantes involucradas decaen exponencialmente.

|en| ≤ C h, 0 ≤ n ≤ N = T/h

luego el metodo es de orden uno pero en este caso la constante mayor que se en-cuentra no crece exponencialmente sino que esta acotada por 1. De hecho, en cadapaso la constante de error es mas pequena y ayuda a que el error global acumuladovaya decreciendo. Tenemos una demostracion matematica util y coherente conlos resultados. !

3.7. Metodos de un paso

Otros metodos de un paso que estudiaremos mas adelante pero que se puedenentender e implementar en el computador con facilidad

3.7.1. Metodo de Euler regresivo o implıcito

Seguimos la misma idea pero en vez de tomar f(tn, yn) como pendiente de salidapara avanzar de tn a tn+1 tomamos la pendiente en el punto de llegada f(tn+1, yn+1).Dado yn obtener

yn+1 = yn + h f(tn+1, yn+1), n = 0, 1, 2, ...N − 1.

Presenta la dificultad de resolver un problema implıcito en cada paso del procesoiterativo, a saber, para y0 dado yn+1 = z donde z es la solucion de

z = yn + h f(tn+1, z), n = 0, 1, 2, ..., N − 1.

La funcion de iteracion para z = G(z) es

G(z) = yn + h f(tn+1, z)

y por lo tantoG(z)−G(w) = h

[f(tn+1, z)− f(tn+1, w)

]

luego una primera aproximacion usando el problema del punto fijo nos da

|G(z)−G(w)| ≤ Lh |z − w|

93 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 24: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

94 Capıtulo 3 Ejemplos de metodos numericos

y tendremos que usar h < 1/L para que converja, lo que obliga a tener h muypequeno si L >> 1. Normalmente, resolveremos este tipo de problemas mediante elmetodo de Newton para obtener la solucion de F (z) = 0, donde

F (z) = z − yn − h f(tn+1, z).

Para problemas lineales en la variable y, esto es, cuando

f(t, y) = a(t)y + g(t)

no es preciso hacer esto ya que se resuelve con facilidad la ecuacion de punto fijo

z = yn + h f(tn+1, z) = yn + h (a(tn+1)z + g(tn+1) = yn + h (an+1z + gn+1)

(usando notacion obvia) de donde

z =1

1− h an+1(yn + hgn+1)

y solo hay que preocuparse de no dividir por cero, cosa que no pasara si an < 0.Este proceso de calculo tambien es muy facilmente programable y en forma de

pseudo-codigo queda como:

Dados t0, T , N , y0, f(t, y)Calculamos h = T/NPara n = 0 hasta N − 1

calcular tn+1 = tn + hcalcular yn+1 = (1− h an+1)−1(yn + hgn+1)

FinDibujar puntos (tn, yn)

Igual que con Euler explıcito, aparte de la derivacion geometrica que hemos hechopodemos tambien llegar a este metodo por varias vıas:

Formula de Taylor:Hacemos desarrollo de Taylor en torno al punto tn+1.

Cuadratura numerica:Escribimos la edo entre tn y tn+1 en su forma integral y la aproximamos porla formula del punto derecho.

Diferenciacion numerica:Aproximamos y′(tn+1) por el cociente incremental.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 94

Page 25: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.7. Metodos de un paso 95

3.7.2. Metodos de Taylor

La extension de la idea analıtica encontrada en el metodo de Euler en cuantoal desarrollo de Taylor es trivial y nos lleva a lo que se conoce como metodos deTaylor. La dificultad que encontramos es la necesidad de calcular derivadassucesivas de la funcion pendiente y esto hace que estos metodos no se usen enla practica. En todo caso, es pedagogico su comprension y por eso los mostramoslevemente.

El metodo de Euler explıcito se puede entender como una aproximacion al desa-rrollo de Taylor

y(tn+1) = y(tn) + hy′(tn) +1

2h2y′′(ξn), ξn ∈ (tn, tn+1)

donde se elimina el termino con la potencia h2 y se usa y′(tn) = f(tn, y(tn)) paraescribir el esquema

yn+1 = yn + hf(tn, yn).

De la misma forma, podemos tambien usar un desarrollo con mas terminos y escribir

y(tn+1) = y(tn) + hy′(tn) +1

2h2y′′(tn) +

1

3!h3y′′′(ξn), ξn ∈ (tn, tn+1).

Si ahora usamos la derivacion en cadena

y′(t) = f(t, y(t)) ⇒ y′′(t) = ft(t, y(t)) + f(t, y(t))fy(t, y(t))

generamos el esquema

yn+1 = yn + hf(tn, yn) +1

2h2{ft(tn, yn) + f(tn, yn)fy(tn, yn)}

eliminando la potencia h3.

Ejemplo 56 Tomemos,{

y′(t) = (1− 2t)y(t)y(0) = 1

con solucion y(t) = exp(0.25− (t− 0.5)2). Entonces

f(t, y) = (1− 2t)y

de donde

ft = −2y, fy = (1− 2t) ⇒ ft + ffy = −2yn + (1− 2tn)(1− 2tn)yn

y el esquema nos queda como

yn+1 = yn + h(1− 2tn)yn +1

2h2{−2 + (1− 2tn)

2}yn

con un error proporcional a h3.

95 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 26: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

96 Capıtulo 3 Ejemplos de metodos numericos

Observacion 33 Al igual que vimos que el metodo de Euler se puede interpretarcomo la construccion de una curva poligonal, uniendo cada dos puntos por un seg-mento recto, tambien ahora tenemos algo parecido pero uniendo cada dos puntospor una curva de segundo grado.

Siguiendo esta misma idea podemos desarrollar metodos de orden p cualquierausando el desarrollo de Taylor de orden p

y(tn+1) = y(tn) + hy′(tn) +1

2h2y′′(tn) + ...+

1

p!hpy(p(tn) +

1

(p+ 1)!hp+1y(p+1(ξn)

y donde ξn ∈ (tn, tn+1). Entonces el esquema queda, usando la notacion obvia, como

yn+1 = yn + hy′n +1

2h2y′′n + ...+

1

p!hpy(pn

con un error proporcional a hp+1, solo tenemos que obtener y(jn = y(j(tn).El metodo generado es eficaz en tanto en cuanto sea facil calcular las derivadas

de f pero esto no suele ser ası. Ademas, cuando lo es, hay que construir el metodode forma especıfica para cada problema. Esta es la razon por lo que no se usa confrecuencia.

3.7.3. Regla del trapecio

Si volvemos a observar la formula integral del PVI y ahora usamos la formuladel trapecio para aproximar la integral obtenemos la regla del trapecio o metodode Crank-Nicolson que viene dado por

dado y0,

yn+1 = yn +h

2

[f(tn, yn) + f(tn+1, yn+1)

], n = 0, 1, ..., N (h) − 1.

Se puede interpretar de varias formas:

antes de avanzar en una direccion, observar y promediar dos posibles, esto es,promedio de pendientes

Aplicar la formula de los trapecios a la expresion integral del problema deCauchy.

Otra vez encontramos la dificultad de resolver un problema implıcito en cada pasodel proceso iterativo, a saber, para y0 dado yn+1 = z donde z es la solucion de

z = yn +h

2

[f(tn, yn) + f(tn+1, z)

], n = 0, 1, 2, ..., N − 1.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 96

Page 27: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.7. Metodos de un paso 97

La funcion de iteracion para z = G(z) es

G(z) = yn +h

2

[f(tn, yn) + f(tn+1, z)

]

y por lo tanto

G(z)−G(w) =h

2

[f(tn+1, z)− f(tn+1, w)

]

luego una primera aproximacion usando el problema del punto fijo nos da

|G(z)−G(w)| ≤ Lh

2|z − w|

y tendremos que usar h < 2/L para que converja, lo que obliga a tener h muypequeno si L >> 1.

Como antes, resolveremos este tipo de problemas mediante el metodo de Newtonpara obtener la solucion de F (z) = 0 donde ahora

F (z) = z − yn −h

2

[f(tn, yn) + f(tn+1, z)

].

Como antes, para problemas lineales en la variable y, esto es, cuando

f(t, y) = a(t)y + g(t)

no es preciso hacer esto ya que se resuelve con facilidad la ecuacion de punto fijo

z = yn +h

2{f(tn, yn) + f(tn+1, z)} = yn +

h

2{anyn + gn + an+1z + gn+1}

de donde

z =1

1− h2 an+1

{yn +h

2(anyn + gn + gn+1)}

y solo hay que preocuparse de no dividir por cero, cosa que no pasara si an < 0.Otra vez el proceso de calculo tambien es muy facilmente programable y en

forma de pseudo-codigo queda como:

Dados t0, T , N , y0, f(t, y)Calculamos h = T/NPara n = 0 hasta N − 1

calcular tn+1 = tn + hcalcular yn+1 = (1− h

2 an+1)−1{yn + h2 (anyn + gn + gn+1)}

FinDibujar puntos (tn, yn)

97 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 28: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

98 Capıtulo 3 Ejemplos de metodos numericos

3.7.4. Metodos de Runge-Kutta

Se pueden interpretar geometricamente como una extension del metodo de Eulerprogresivo en la que se pretende ajustar mediante un promedio la mejor pendientepor la que avanzar en el computo. Tienen la caracterıstica de que se generan calculosno lineales puesto que se anidan evaluaciones de la funcion pendiente. Estos metodosfueron desarrollados en torno a 1900 por los matematicos alemanes Carl DavidTome Runge y Martin Wilhelm Kutta.

Ejemplos de metodos de tipo Runge-Kutta son:

1. Metodo de Euler mejorado: siguiendo la misma idea que en el metodode Crank-Nicolson, se evita la dificultad de resolver un problema implıcitomediante la aproximacion de yn+1 por la expresion

y⋆ = yn + hf(tn, yn)

para luego avanzar definitivamente con

yn+1 = yn +h

2{f(tn, yn) + f(tn+1, y⋆)}.

2. Metodo de Euler modificado: se quiere usar el punto medio del intervalo.Por lo tanto, lo aproximamos primero

y⋆ = yn +h

2f(tn, yn)

y escribimos

yn+1 = yn + hf(tn +h

2, y⋆).

3. El metodo de Heun: se avanza desde tn hasta tn + h/3 con la pendiente k1y se genera k2. Luego desde tn hasta tn+2h/3 con la pendiente k2 y se generak3. Finalmente se toma el promedio para avanzar definitivamente a tn + h

k1 = f(tn, yn) (primera pendiente)

k2 = f(tn +1

3h, yn +

1

3hk1) (segunda pendiente)

k3 = f(tn +2

3h, yn +

2

3hk2) (tercera pendiente)

yn+1 = yn + h(1

4k1 +

3

4k3) (pendiente promedio)

4. Finalmente el ejemplo mas popular es este metodo conocido como Runge-Kutta clasico: se avanza desde tn hasta tn+h/2 con la pendiente k1 y desdetn tambien hasta el mismo punto tn + h/2 pero ahora con la pendiente k2.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 98

Page 29: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.7. Metodos de un paso 99

Luego avanzamos hasta tn + h con k3 y finalmente se toma el promedio paraavanzar definitivamente a tn + h

yn+1 = yn +h

6(k1 + 2 k2 + 2 k3 + k4)

k1 = f(tn, yn)

k2 = f(tn +h

2, yn +

h

2k1)

k3 = f(tn +h

2, yn +

h

2k2)

k4 = f(tn + h, yn + h k3).

La popularidada de este ultimo metodo provienen de la era pre-computacional(antes de los anos 50) puesto que siendo preciso los coeficientes son sencillos.Esto fue decisivo para su extension como el mas usado ya que los calculos sehacıan a mano.

Como se puede ir viendo la forma mas general de un metodo de Runge-Kuttaconsiste en tomar S muestras de pendientes k1, k2, .., kS y promediarlas para avanzaren la direccion promedio obtenida. Esto es, dadas pendientes k1, k2, .., kS entonces

{y0 ≈ y(t0)yn+1 = yn + h

∑Si=1 bi ki, 0 ≤ n ≤ N − 1

siendo b1 + b2 + ...+ bS = 1. Al numero S se le llama el numero de etapas.

Observacion 34 Recordemos que la solucion buscada es simplemente una curvaentre las infinitas curvas solucion que tiene el sistema conforme se cambia el datoinicial. Debido a errores de truncatura, redondeo, etc... es normal entender quecualquier solucion numerica se va a mover por las curvas vecinas a la que estamosbuscando, luego estas curvas vecinas son importantes y tiene sentido promediarpendientes extrayendo informacion de ellas.

Puesto que no se conoce la curva exacta que estamos buscando, el comporta-miento de las curvas vecinas, y no solo el de la curva que buscamos, nos puedeayudar.

Conceptualmente, esta es una mejora muy notable puesto que tiene en cuentael campo de soluciones y la nolinealidad es una propiedad intrınseca, o natural, delproblema, por lo que es muy razonable que aparezca en el metodo numerico.

Observacion 35 Desde el punto de vista de la programacion en el computadorsiguen un pseudo codigo similar al metodo de Euler explıcito. Resultan ser unaiteracion a partir de un valor previo, o iteracion de un paso. En el caso explıcitotenemos algo como

yn+1 = Φh(yn), n = 0, 1, 2, ...

99 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 30: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

100 Capıtulo 3 Ejemplos de metodos numericos

mientras que en el implicito sera

yn+1 = Φh(yn, yn+1), n = 0, 1, 2, ...

lo que produce un problema de punto fijo en cada paso

z = Φh(yn, z), n = 0, 1, 2, ...

3.8. Metodos Multipaso

Esta familia de metodos tambien se estudiara con detalle mas adelante, pero sepueden entender e implementar en el computador con facilidad.

A veces es util retener y usar informacion anterior, aunque se tiene que hacercon cuidado puesto que va contra la naturaleza del problema continuo quees un problema de valor inicial:

para cada tiempo t⋆ solo y unicamente con el valor de y(t⋆) ya esta de-terminada de manera unica la solucion para tiempo futuro t > t⋆.

Existen varias formas de proceder, pero todas se basan en la idea de cons-truir un polinomio de interpolacion con los valores previos ya obtenidos(calculo explıcito) o tambien incluyendo el que se busca (calculo implıci-to), y derivar o integrar este polinomio para generar la secuencia de valores.

Vamos a introducir superficialmente algunas de ellas

Una vez conocidos k valores iniciales y0, y1, ..., yk−1 en los pasos de tiempot0, t1, ..., tk−1 y buscamos yk podemos hacer lo siguiente:

3.8.1. Interpolando pendientes fj = f(tj, yj) previas

Metodos de Adams explıcitos

Consideramos P (s) un polinomio de grado k−1 que interpole las k pendientescalculadas, esto es,

P (tj) = f(tj, yj) = fj, j = 0, 1, 2, ..., k − 1

TendremosP (s) =

j

fj Lj(s) ∈ Pk−1

para las funciones de base de Lagrange correspondientes. Obtenemos entonces elvalor yk mediante la expresion

yk = yk−1 +

∫ tk

tk−1

P (s) ds

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 100

Page 31: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.8. Metodos Multipaso 101

que da

yk = yk−1 +k−1∑

j=0

cjf(tj, yj)

donde

cj =

∫ tk

tk−1

Lj(s) ds.

Se puede ver que los coeficientes cj no dependen del intervalo [tk−1, tk], tienen laforma cj = h cj (cambio en la variable de integracion al [0, 1]) y una vez computadossirven para cualquier otro intervalo. A continuacion se traslada el proceso un ındicepara ası obtener yk+1, luego yk+2, etc... En este caso se genera lo que se conoce comometodos de Adams explıcitos de k pasos y se describen por:

Dados y0, y1, ..., yk−1 obtener

yk+n = yk+n−1 + hk−1∑

j=0

cjf(tj+n, yj+n), n ≥ 0.

Metodos de Adams implıcitos

Cuando para k ≥ 1 usamos los valores y0, y1, ..., yk−1, yk, incluyendo el propiovalor que buscamos y usamos un polinomio P (t) ∈ Pk que interpole en los puntostj los valores fj para j = 0, 1, 2, ..., k, esto es

P (tj) = f(tj, yj), j = 0, 1, 2, ..., k − 1, k

se genera lo que se conoce como metodos de Adams implıcito de k + 1 pasos.

yk = yk−1 +k∑

j=0

djf(tj, yj)

para otros coeficientes distintos

dj =

∫ tk

tk−1

Lj(s) ds.

Tambien aquı se puede ver que los coeficientes dj no dependen del intervalo [tk−1, tk],tienen la forma dj = h dj (cambio en la variable de integracion al [0, 1]) y unavez computados sirven para cualquier otro intervalo. A continuacion se traslada elproceso un ındice para ası obtener yk+1, luego yk+2, etc...se describen por:

Dados y0, y1, ..., yk−1 obtener

yk+n = yk+n−1 + hk∑

j=0

cjf(tj+n, yj+n), n ≥ 0.

101 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 32: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

102 Capıtulo 3 Ejemplos de metodos numericos

Figura 3.6: Interpretacion geometrica en los metodos de Adams explıcito e implıcito.

Observacion 36 En el primer caso integramos P (t) fuera de su intervalo deinterpolacion; de forma natural se entiende que la aproximacion no sera muyprecisa al realizar una extrapolacion. En el segundo caso, este defecto secorrige a cambio de ser implıcito, esto es, de introducir el valor de yk en ambosmiembros de la igualdad.

Observacion 37 Tambien sabemos que la interpolacion global cuando se hace conrespecto a muchos puntos (k grande) puede generar oscilaciones del polinomio nodeseadas (recordemos el fenomeno de Runge). Por consiguiente no es habitualtener valores de k muy altos.

Notacion:

Los metodos de tipo explıcito se denominan de Adams-Bashforth (ABk)

Los metodos implıcitos de Adams-Moulton (AMk).

Donde k indica el numero de puntos que se usan para construir elpolinomio de interpolacion o bien el orden del metodo segun el autor.

Observacion 38 Los metodos de tipo explıcito de Adams-Bashforth fueron desa-rrollados por John Couch Adams para resolver un problema sobre movimientode fluido en contra de la gravedad estudiado por Francis Bashforth, este trabajofue publicado en 1883. Por otro lado, los metodos implıcitos de Adams-Moultonfueron desarrollados tambien por Adams pero fue Forest Ray Moulton quien losuso de forma mas extensa en torno a 1926 al observar que se podıan combinarcon los explıcitos. Estos ultimos predicen un valor y los implıcitos lo corrigen. Lasaplicaciones principales de Moulton fueron los estudios de balıstica.

Algunos ejemplos clasicos son (usamos solo tres puntos como mucho por simplificar)

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 102

Page 33: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.8. Metodos Multipaso 103

Adams-Bashforth explıcito (AB1), o Euler explıcito:Dado y0 calcular para n ≥ 0

yn+1 = yn + h f(tn, yn)

aquı P (s) ≡ f(tn, yn) = fn.

Adams-Bashforth explıcito (AB2):Dados y0, y1 calcular para n ≥ 1

yn+1 = yn + h{32f(tn, yn)−

1

2f(tn−1, yn−1)}

aquı P (s) interpola a fn y a fn−1.

Adams-Bashforth explıcito (AB3):Dados y0, y1, y2 calcular para n ≥ 2

yn+1 = yn + h {2312

f(tn, yn)−16

12f(tn−1, yn−1) +

5

12f(tn−2, yn−2)}

aquı P (s) interpola a fn, fn−1 y a fn−2 .

Adams-Moulton implıcito (AM1), o metodo de Euler implıcito:Dados y0 calcular para n ≥ 0

yn+1 = yn + hf(tn+1, yn+1)

aquı P (s) ≡ f(tn+1, yn+1) = fn+1.

Adams-Moulton implıcito (AM2), tambien conocidos como Crank-Nicolsono regla del trapecio:Dado y0 calcular para n ≥ 0

yn+1 = yn + h{12f(tn, yn) +

1

2f(tn+1, yn+1)}

aquı P (s) interpola a fn+1 y a fn.

Adams-Moulton implıcito (AM3):Dados y0, y1 calcular para n ≥ 1

yn+1 = yn + h{ 5

12f(tn+1, yn+1) +

8

12f(tn, yn)−

1

12f(tn−1, yn−1)}

aquı P (s) interpola a fn+1, fn y fn−1.

103 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 34: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

104 Capıtulo 3 Ejemplos de metodos numericos

3.8.2. Interpolando las aproximaciones yj previas

Tambien podemos tomar Q(s) un polinomio de grado k que interpole los kvalores previos calculados junto con el buscado yk, esto es,

Q(tj) = yj, j = 0, 1, 2, ..., k,

entonces

Q(s) =k∑

j=0

yj Lj(s) ∈ Pk

para las funciones de base de Lagrange correspondientes. Podemos entonces apro-ximar

y′(s) ∼ Q′(s)

y obtener el valor yk mediante la expresion

Q′(tk−1) = f(tk−1, yk−1) o bien Q′(tk) = f(tk, yk).

Esto da un metodo explıcito si usamos

k∑

j=0

yj L′j(tk−1) = f(tk−1, yk−1)

o uno implıcito si usamos

k∑

j=0

yj L′j(tk) = f(tk, yk).

Igual que antes, tenemos

k∑

j=0

yj rj = f(tk, yk) ok∑

j=0

yj rj = f(tk−1, yk−1)

para algunos coeficientes rj que se puede comprobar son de la forma rj = rj h−1

para rj independiente del intervalo [tk−1, tk], para llegar a

k∑

j=0

yj rj = h f(tk, yk) ok∑

j=0

yj rj = hf(tk−1, yk−1).

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 104

Page 35: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.8. Metodos Multipaso 105

3.8.3. Interpolando las aproximaciones yj y fj previas

Finalmente, se pueden combinar los polinomios P y Q para obtener algo como

k∑

j=0

yj aj = hk∑

j=0

bjf(tj, yj).

Veamos algunos ejemplos:

Ejemplo 57 Supongamos que Q(s) cumple

Q(tn+1) = yn+1, Q(tn) = yn.

La ecuacion para Q(s) se deduce usando la interpolacion de Lagrange y es

Q(s) = yns− tn+1

tn − tn+1+ yn+1

s− tntn+1 − tn

o bien, como tn+1 − tn = h tambien

Q(s) = yns− tn+1

−h+ yn+1

s− tnh

Derivando, tenemos

Q′(s) = yn1

−h+ yn+1

1

h

Entonces Q′(tn+1) = f(tn+1, yn+1) genera

yn+1 = yn + h f(tn+1, yn+1)

que coincide con Euler implıcito.

Ejemplo 58 Si ahora queremos usar yn−1, yn, yn+1 tenemos

Q(s) = yn−1(s− tn)(s− tn+1)

(tn−1 − tn)(tn−1 − tn+1)+ yn

(s− tn−1)(s− tn+1)

(tn − tn−1)(tn − tn+1)

+ yn+1(s− tn)(s− tn−1)

(tn+1 − tn)(tn+1 − tn−1)

o bien

Q(s) = yn−1(s− tn)(s− tn+1)

2h2+ yn

(s− tn−1)(t− tn+1)

−h2+ yn+1

(s− tn)(s− tn−1)

2h2

de donde, por ejemplo, la derivada es

Q′(s) = yn−12s− (tn + tn+1)

2h2+ yn

2s− (tn−1 + tn+1)

−h2+ yn−1

2s− (tn + tn−1)

2h2.

105 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 36: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

106 Capıtulo 3 Ejemplos de metodos numericos

Con Q′(tn) = f(tn, yn) tenemos el metodo

yn+1 − yn−1 = 2h fn.

Con Q′(tn+1) = f(tn+1, yn+1) (normalizando a uno el coeficiente de yn+1)

yn+1 −4

3yn +

1

3yn−1 =

2

3h fn+1

Observacion 39 Desde el punto de vista de la programacion en el computadorresultan ser una iteracion a partir de varios valores previos, o iteracion de variospasos. En el caso explıcito tenemos algo como

zn+k = Φh(zn, zn+1, zn+2, ...., zn+k−1), n = 0, 1, 2, ...

mientras que en el implicito sera

zn+k = Φh(zn, zn+1, zn+2, ...., zn+k−1, zn+k), n = 0, 1, 2, ...

Se suele decir que los metodos multipaso tienen memoria puesto que usaninformacion de tiempos pasados, en contraposicion con aquellos metodos que solousan informacion del paso previo, como por ejemplo los Runge-Kutta. Por estarazon se dice que los metodos de un paso no tienen memoria.

3.9. Forma general

Denotaremos por yn a una aproximacion a la solucion y(tn)

yn ≈ y(tn)

y similarmente podemos denotar fn a una aproximacion a f(tn, y(tn)) en general dela forma:

fn = f(tn, yn).

Nuestro objetivo es conseguir yh1 , yh2 , ..., y

hN tal que para cada t⋆ ∈ [0, T ] fijo, con

t⋆ = tn = t0 + nh,|yhn − y(t⋆)| → 0

cuando h → 0, n → +∞ tal que t0 + nh = t⋆.La expresion general de un metodo numerico para una ecuacion diferencial or-

dinaria es la siguiente:Dados y0, y1, ..., yk−1 calcular yk+n con n ≥ 0 donde

yn+k +∑k−1

j=0 ajyn+j = hΦf (tn, yn, yn+1, ..., yn+k;h), n ≥ 0.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 106

Page 37: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.9. Forma general 107

Evidentemente, tambien se reescribe como

yn+k = −∑k−1

j=0 ajyn+j + hΦf (tn, yn, yn+1, ..., yn+k;h), n ≥ 0.

La funcion Φf se denomina funcion de incremento y el subındice f indica quela dependencia de Φf con respecto a los valores yn+j es a traves de f . La funcionΦf es una funcion continua que depende de sus argumentos a traves de la funcionf(t, y) y vamos a suponer que mantiene la regularidad de f , esto es,

f ∈ Cp ⇒ Φ ∈ Cp,

ademas sabemos que f ∈ Cp ⇒ y ∈ Cp+1.

Podemos observar entonces las dos grandes familias de los ejemplos previoscomo casos particulares en esta forma general:

Metodos de un paso

Dado y0 calcular

yn+1 = −a0yn + hΦf (tn, yn, yn+1;h), n ≥ 0.

Por ejemplo para el metodo de Heun

yn+1 = yn + h(1

4k1 +

3

4k3)

k1 = f(tn, yn)

k2 = f(tn +1

3h, yn +

1

3hk1)

k3 = f(tn +2

3h, yn +

2

3hk2)

luego a0 = −1 y Φf (tn, yn, yn+1;h) = Φf (tn, yn;h) viene dada por

Φf (tn, yn;h) =1

4k1 +

3

4k3

para los valores k1, k2 y k3 antes descritos o mas explıcitamente

Φf (tn, yn;h) =1

4f(tn, yn) +

3

4f(tn +

2

3h, yn +

2

3hf(tn +

1

3h, yn +

1

3hf(tn, yn)))

107 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 38: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

108 Capıtulo 3 Ejemplos de metodos numericos

Metodos de paso multiple lineales

Se llaman ası porque la funcion Φf es una combinacion lineal de los valoresf(tn+j, yn+j):

Dados y0, y1, ..., yk−1, calcular

yn+k +∑k−1

j=0 ajyn+j = h∑k

j=0 bjf(tn+j, yn+j), n ≥ 0.

Entonces aquı se tiene que

Φf (tn, yn, yn+1, ..., yn+k;h) =k∑

j=0

bjf(tn+j, yn+j) =k∑

j=0

bjfn+j

y pedimos a20 + b20 = 0 para no estar en la situacion de un metodo de k − 1 pasos.En el caso en el que se tenga bk = 0 entonces yn+k se obtiene de forma expıcita

de los valores yn+j para j = 0, 1, 2, .., k − 1 y por lo tanto el metodo lineal de kpasos es explıcito. Si bk = 0 entonces es implıcito.

Ejemplo 59 Por ejemplo AM3 queda como: Dados y0, y1 calcular para n ≥ 0

yn+2 = yn+1 + h{ 5

12f(tn+2, yn+2) +

8

12f(tn+1, yn+1)−

1

12f(tn, yn)}

entonces a1 = −1 y a0 = 0 mientras que

Φf (tn, yn, yn+1, yn+2;h) = − 1

12f(tn, yn) +

8

12f(tn+1, yn+1) +

5

12f(tn+2, yn+2).

Observacion 40 Recordemos que tn+j = tn + j h para j ∈ Z por lo que la depen-dencia de Φf en los argumentos (tn, yn, yn+1, yn+2, yn+3, h) a traves de f esta bienjustificada, es decir, no es necesario explicitar los argumentos tn+1, tn+2 y tn+3.

3.9.1. Observaciones

Es claro que hemos reemplazado y′(t) = f(t, y(t)) por la expresion

yn+k +∑k−1

j=0 ajyn+j

h= Φf (tn, yn, yn+1, ..., yn+k;h), n ≥ 0.

construida a base de valores puntuales (tj, yj) y evaluaciones fj = f(tj, yj), que enel fondo es de lo unico que disponemos. Luego queremos

yn+k +∑k−1

j=0 ajyn+j

h≈ y′(t⋆) (3.3)

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 108

Page 39: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.10. Error global, convergencia y orden 109

y tambien

Φf (tn, yn, yn+1, ..., yn+k;h) ≈ f(t⋆, y(t⋆)) (3.4)

para algun valor t⋆ que dependera de como hemos desarrollado el esquema.

Observacion 41 La coleccion de metodos vistos hasta ahora proveen de una grancantidad de ejemplos que caen dentro de este marco general.

Es evidente que la incognita en cada paso del proceso es yn+k. Por lo tanto,queda justificada la definicion siguiente:

Definicion 60 Un metodo se dice explıcito si Φf no depende de yn+k e implıcitosi Φf depende de yn+k.

Observacion 42 Cuando f(t, y) no es lineal con respecto a y, esto es, si no secumple f(t, y) = a(t)y + g(t), entonces si el metodo es implıcito se genera unaecuacion no lineal para calcular el valor buscado yn+k. Esto se resuelve usandopreferentemente el metodo de Newton al ofrecer convergencia cuadratica. Sepuede ver que bajo condiciones razonables sobre Φf y h los problemas no linealesson resolubles.

3.10. Error global, convergencia y orden

Una primera clasificacion practica para todos estos metodos introducidos escomprobar el error que se produce al aplicarlo a un campo de velocidades en dondese conoce una curva solucion exacta.

Nos interesa estudiar el error total cometido

max0≤n≤Nh

|y(thn)− yhn|, h → 0+

y ver como se comporta conforme aumentamos el numero de puntos, o lo que es lomismo, reducimos el valor de h.

3.10.1. Definicion de convergencia

Suponemos que tenemos existencia y unicidad de una solucion continua a nuestroproblema y que los valores puntuales calculados son los que nos van a servir comoaproximacion. Podemos entonces concretar

109 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 40: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

110 Capıtulo 3 Ejemplos de metodos numericos

Definicion 61 Convergencia: Diremos que el metodo es convergente cuando paracualquier solucion y(t) del problema Cauchy se cumple

max0≤n≤Nh

|y(thn)− yhn| → 0, h → 0+, h = T/N (h)

siendo thn = t0 + hn. Si ademas

max0≤n≤N(h)

|y(h)n − y(thn)| ≈ C hp, h → 0+, h = T/N (h)

se dice que tiene un orden p de convergencia.

Observacion 43 Hay que tener en cuenta que se pide que el error inicial tienda acero tambien.

En el caso de los metodos de un paso es simplemente que |y(th0) − yh0 |tienda a cero.

En el caso de los metodos de k de pasos Puesto que k, el numero depasos, esta fijo y no depende de h, esto equivale a que se cumpla

max0≤j≤k

|y(thj )− yhj | → 0, h → 0+.

pero thj = t0 + j h para j = 0, 1, 2..., k por lo que el rango es fijo cuando semueve h. Luego

lımh→0

thj = t0, j = 0, 1, 2, ..., k.

de donde lo que relmente se esta pidiendo es

lımh→0

yhj = y(t0), j = 0, 1, 2, ..., k.

Es decir, los valores de arranque yh0 , yh1 , ..., y

hk deben aproximar el dato inicial

y(t0).

Observacion 44 Este resultado usa h → 0+. No se tiene en cuenta la posibilidadde que el valor h sea tan pequeno que resulte impracticable.

3.11. Estimacion del orden

3.11.1. Uso de tablas

¿Como obtener el orden de convergencia? se puede hacer de dos formas, gene-rando una tabla de numeros o generando la recta de pendiente:

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 110

Page 41: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.11. Estimacion del orden 111

Ejemplo 62 Supongamos que para valores distintos de h se ha obtenido la siguientetabla de aproximaciones para las funciones f(h) y g(h) con el computador:

h f(h) g(h)0.0625 0.0118053 0.08035330.03125 0.0058242 0.02129170.015625 0.0028929 0.00593690.0078125 0.0014417 0.0015428

Podemos entonces ver que al dividir por 2 el valor de h el valor de f(h) decae porun factor de 2 mientras que g(h) decae por un factor 4. Con esta informacion sepuede deducir, en principio, que

f(h) = O(h), g(h) = O(h2), h → 0.

En general, si el metodo es convergente de orden p > 0, el error es de la formaE(h) ≈ c hp y entonces si dividimos h entre un factor arbitrario Q (normalmenteQ = 2) y volvemos a calcular el error tenemos

E(h/Q) ≈ c (h/Q)p = c hp/Qp ≈ E(h)/Qp.

Por lo tanto, el error obtenido es el que teniamos antes pero dividido por Qp; estonos permite calcular p tomando logaritmos. La idea es combinar valores distintosde h y estimar los parametros del error c y p. Por ejemplo, fijando Q = 2, debe ser

E(h)

E(h/2)≈ 2p ⇒ p ≈ loge

( E(h)

E(h/2)

)/ loge(2).

Observacion 45 Cuando los valores de los errores esten cerca del cero del compu-tador, ∼ 10−16, estos estudios dejan de funcionar debido a los errores de redondeoo truncatura que realiza la maquina.

3.11.2. Uso de graficas

Ejemplo 63 Supongamos que usamos desarrollos de Taylor para realizar unas apro-ximaciones a la derivada de sin(x) en x = 1 que sabemos que vale cos(1). Entoncestenemos

sin(1 + h)− sin(1)

h− cos(1) = O(h), h → 0+

sin(1 + h)− sin(1− h)

2h− cos(1) = O(h2), h → 0+

Pongamos Error = C hp y calculemos para distintos h > 0 varios pares de valores

{(Error(h), h)}h>0.

111 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 42: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

112 Capıtulo 3 Ejemplos de metodos numericos

Entonces podemos ver claramente el efecto de cada uno de los terminos de este errorsi tomamos logaritmos. Efectivamente, supongamos que Error = C hp entonces

log(Error) = p log(h) + log(C)

donde normalmente tendremos log(Error) < 0 y log(h) < 0. Por lo tanto,

visualizar en el eje OX (negativo) los valores de log(h) y en el OY losde log(Error) genera una recta con pendiente p, nuestro orden de con-vergencia.

Otra posibilidad es escribir h = 1/N para N entero y usar Error = C N−p. Enton-ces

log(Error) = −p log(N) + log(C).

Ahora podemos visualizar en el eje OX, parte positiva, los valores de log(N) y en elOY los de log(Error) tendriamos que ver una recta con pendiente −p. O tambien,usar

− log(Error) = p log(N)− log(C)

y podemos visualizar en el eje OX, parte positiva, los valores de log(N) y en elOY, tambien parte positiva, los de − log(Error). Tendriamos que ver una recta conpendiente p.

En la Figura 3.7 se representan rectas de pendientes obtenidas al usar las dosformulas arriba escritas para aproximar cos(1). Se observa la pendiente p = 1 y lapendiente p = 2.

Evidentemente, hace falta conocer la solucion exacta para determinar E(h), aunqueexisten otras formas de trabajar cuando no se conoce.

Observacion 46 Usamos siempre h → 0. Por lo tanto simplificaremos escribiendoO(hp) simplemente y sobre entendiendo que h → 0.

Ejemplo 64 Listamos aquı algunos metodos con su orden:

El ejemplo clasico de Runge-Kutta tiene orden cuatro

yn+1 = yn +h

6(k1 + 2 k2 + 2 k3 + k4)

k1 = f(tn, yn)

k2 = f(tn +1

2h, yn +

1

2hk1)

k3 = f(tn +1

2h, yn +

1

2hk2)

k4 = f(tn + h, yn + h k3)

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 112

Page 43: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.11. Estimacion del orden 113

−12 −11 −10 −9 −8 −7 −6 −5 −4−12

−10

−8

−6

−4

−12 −11 −10 −9 −8 −7 −6 −5 −4−25

−20

−15

−10

−5

0

−12 −11 −10 −9 −8 −7 −6 −5 −4−25

−20

−15

−10

−5

0

orden1pendiente 1

orden2pendiente 2

orden1orden2

Figura 3.7: Diferencia de comportamiento de los errores en una aproximacion deorden uno y otra de orden 2 para el calculo del numero cos(1). Se ve como el ordense deteriora cuando se llega a errores cercanos a la precision del computador.

113 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 44: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

114 Capıtulo 3 Ejemplos de metodos numericos

Figura 3.8: Rectas de pendientes para metodos de orden 1,2,3 y 4 visualizadas sobreOX positivo o negativo. En la tercera grafica se ve el efecto de trabajar con errorespor debajo de la precision del computador. Se ve como las rectas para orden 3 y 4pierden la pendiente antes que las de orden 1 y 2.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 114

Page 45: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.11. Estimacion del orden 115

El metodo de Euler mejorado (tambien es de tipo Runge-Kutta)

dado y0yn+1 = yn + h f(tn, yn),

yn+1 = yn +h

2

(f(tn, yn) + f(tn+1, yn+1)

), n = 0, 1, ..., N − 1,

tiene orden dos.

Este metodo de la familia Runge-Kutta tiene orden tres

yn+1 = yn + h(1

4k1 +

3

4k3)

k1 = f(tn, yn)

k2 = f(tn +1

3h, yn +

1

3hk1)

k3 = f(tn +2

3h, yn +

2

3hk2)

Dados y0, y1 calcular para n ≥ 1

yn+1 = yn + h{32f(tn, yn)−

1

2f(tn−1, yn−1)}

este es un metodo de Adams-Bashforth explıcito (AB2) y tiene ordendos.

Dados y0, y1 calcular para n ≥ 1

yn+1 = yn−1 + 2h f(tn, yn)

se conoce como metodo leap frog y tiene orden dos.

Dados y0 calcular para n ≥ 0

yn+1 = yn + h{12f(tn, yn) +

1

2f(tn+1, yn+1)}

es el metodo de Adams-Moulton implıcito (AM2), Crank-Nicolson o regladel trapecio y tiene orden 2.

Dados y0, y1, y2 calcular para n ≥ 2

yn+1 = yn+h { 9

24f(tn+1, yn+1)+

19

24f(tn, yn)−

5

24f(tn−1, yn−1)+

1

24f(tn−2, yn−2)}

es un metodo de Adams-Moulton implıcito (AM4) y tiene orden 4.

115 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 46: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

116 Capıtulo 3 Ejemplos de metodos numericos

Observacion 47 Que un metodo sea convergente con orden p significa que paratodos los problemas con soluciones regulares el error que se comete es de ese orden.

Puede suceder que para algun caso concreto este orden se mejore pero esto soloocurre cuando el termino del error en el residuo, se anula. Recordar el casodel metodo de Euler explıcito donde se conoce la forma del residuo y el orden semejora si y′′(t) ≡ 0, pero solo en este caso.

3.12. Estabilidad numerica y precision. Ajustar h

Sobre un mismo problema distintos metodos numericos necesitan una restricciondistinta sobre h para funcionar. Si no se hace se produce lo que se llama una

inestabilidad numerica: los valores calculados oscilan y se alejan cadavez mas de la solucion.

Esto se llama una restriccion de h por motivos de estabilidad.Por otro lado, esto no basta. Una vez se arregla esta cuestion...¿Como debe ser hpara satisfacer el error global que buscamos?

Esto se llama una restriccion de h por motivos de precision.

3.12.1. Estabilidad numerica

Un campo continuo tiene comportamientos localmente distintos. Para simplifi-car, y de acuerdo a la Subseccion 2.2.1, hacemos un estudio local del problemacontinuo y para ello linealizamos un campo cualquiera usando desarrollos deTaylor.Ademas, los puntos interesantes a estudiar son los puntos de equilibrio.

Entonces reemplazamos nuestro campo original por el aproximado y observamoscomo se comporta el esquema numerico en el problema aproximado. Esto nos sirvepara clasificar la estabilidad del esquema. Este analisis solo se puede hacer conrelativa facilidad para ecuaciones lineales, pero es suficiente para empezar a ver laspropiedades de estabilidad numerica de un esquema de calculo.

Supongamos tenemos el campo autonomo dado por f(y) usando desarrollo deTaylor cerca de un punto de equilibrio z⋆ = 0 (para simplificar)

f(y) ∼ −a y

donde a = −fy(0) . Entonces, localmente, podemos trabajar con los problemaslineales

y′(t) = −a y(t), t > 0

El concepto de estabilidad numerica es importante solo en el caso donde hay decai-miento de la solucion o de parte de ella. Y principalmente cuando este decaimiento

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 116

Page 47: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.12. Estabilidad numerica y precision. Ajustar h 117

es brusco (problemas rıgidos). Por lo tanto, nos vamos a fijar en el caso a > 0.Aquı sabemos que la solucion exacta es y(t) = e−at y decae exponencialmente pa-ra a > 0: se dice que es una edo estable. En el caso a < 0 la solucion creceexponencialmente: se dice que es una edo inestable.

Cualquier metodo numerico para aproximar las soluciones deun campo de vectores debe comportarse de forma similar.

Al igual que hemos visto que Euler explıcito es de primer orden se puede verque Euler implıcito tambien lo es. Para ecuaciones no lineales el metodo de Euleres facil de aplicar pero no ası el metodo de Euler implıcito. ¿Cual es su ventajaentonces? Lo vamos a ver ahora:

Consideremos para a > 0 (esto es, ∂yf < 0)

y′(t) = −a y(t) t ∈ [0, T ]

y(0) = 1.

La solucion exacta es y(t) = e−at y usamos un valor de T cualquiera. Entoncesh = T/N , tenemos tn = hn para n = 0, 1, 2, .., N y usando el metodo de Eulerexplıcito tenemos

yn = (1− a h)n, n ≥ 0.

En el caso a > 0 los valores calculados solo reproducen el comportamiento cuanti-tativamente si

0 < h < 2/a

puesto que entonces|1− h a| < 1

y

yn = (1− h a)n → 0, n ≥ 0

aunque se pueden producir oscilaciones decrecientes que no es lo que hace la solucionexacta. Si pedimos ademas que sea 0 < h < 1/a sı que obtenemos el comportamientocuantitativo y cualitativo de decaimiento sin oscilaciones puesto que

0 < 1− h a < 1

y se garantiza un decaimiento uniforme de un valor inicial positivo, tal y como haceel problema continuo, ver Figura 3.9. Evidentemente, en el caso h > 2/a los valorescalculados divergen de los buscados. Resumiendo, tenemos tres situaciones

1. h > 2/a los valores calculados divergen oscilando. Esto es la inestabilidadnumerica

117 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 48: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

118 Capıtulo 3 Ejemplos de metodos numericos

2. 1/a < h < 2/a los valores calculados reproducen el comportamiento cuanti-tativamente pero no cualitativamente. Hay oscilaciones que sobrepasanlos valores buscados pero decaen. Esto no es inestablidad numerica perotampoco es fısicamente aceptable, ası que es mejor evitarlo.

3. 0 < h < 1/a los valores calculados reproducen el comportamiento cuantitativay cualitativamente, aunque falta por fijar el nivel de error.

Se dice en este caso que Euler explıcito es condicionalmente estable.Por otro lado, si usamos el metodo de Euler implıcito entonces

yn =1

(1 + h a)n, n ≥ 0

y los valores calculados siempre reproducen el comportamiento (recordemos quesuponemos a > 0) cuantitativamente independientemente del valor de h usado,aunque no sean lo suficientemente precisos. Se dice en este caso que Euler implıcitoes incondicionalmente estable.

Observacion 48 Factor de amplificacion: Hemos visto que la solucion de estosdos esquemas y para este problema lineal se puede expresar como

yn+1 = Ryn.

A R se lama el factor de amplificacion y la solucion en el paso final sera

yN = RN y0.

Por lo tanto, para tener un comportamiento de los valores yn que decaigan comohace la solucion continua e−at necesitamos

|R| < 1

y esta es la condicion para tener estabilidad numerica: queremos tener un factorde amplificacion tal que se reproduzca la dinamica del campo de soluciones, estoes, si las soluciones decaen se debe tener un factor de amplificacion menor que unoen modulo.

Si cumplimos esto para cualquier valor de h el metodo es incondicionamenteestable

si hace falta restringir h, esto es, h < h⋆ para algun valor h⋆ finito, entoncesel metodo es condicionalmente estable

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 118

Page 49: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.12. Estabilidad numerica y precision. Ajustar h 119

En el caso−1 < R < 0

se admiten oscilaciones que decaen y en el caso

0 < R < 1

la solucion numerica decae sin oscilar, que es lo que debe ocurrir.Para el problema test en el caso de Euler explıcito tenemos

R = 1− ha, (h⋆ = 2/a)

mientras que para Euler implıcito

R =1

1 + ha, (h⋆ = +∞).

Facilmente se ve que para Crank-Nicolson es

R =1− ha/2

1 + ha/2, (h⋆ = +∞)

mientras que para el Runge-Kutta clasico de cuarto orden es

R = 1− ah+a2h2

2!− a3h3

3!+

a4h4

4!, (h⋆ ∼ 2.785/a)

aquı h⋆ se calcula con el computador. Por lo tanto, el analisis de estabilidad numeri-ca reside en calcular este valor R y ver las condiciones para tener |R| < 1.

Observar que en todos los casos, se obtiene una aproximacion a e−ah = e−a(tn+1−tn)

que es la solucion exacta cuando vamos de tn a tn+1.

Resumiendo, en general, para un campo y′ = f(t, y) dado y un esquema numericoque podemos representar por yn+1 = Ryn. El analisis de estabilidad numerica delesquema sigue los pasos:

Determinar R

Determinar condiciones para que |R| < 1.

Esto solo se puede hacer para problemas lineales por lo complicado que resulta enlos no lineales. Entonces, se linealizan los problemas no lineales y ya hemos vistocomo hacerlo en el caso de ecuaciones autonomas.

En el caso general, supongamos tenemos el campo

y′(t) = f(t, y(t))

119 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 50: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

120 Capıtulo 3 Ejemplos de metodos numericos

y queremos estudiarlo en torno a un punto (t0, y0). Usando desarrollo de Taylor setiene que

f(t, y) = f(t0, y0) + ft(t0, y0)(t− t0) + fy(t0, y0)(y − y0) + .....

entonces, olvidandonos de terminos de orden mayor que uno tenemos

f(t, y) ∼ −a y + b(t)

donde a = −fy(t0, y0) y b(t) = f(t0, y0) + ft(t0, y0)(t− t0)− fy(t0, y0)y0 es el resto.Entonces, localmente, podemos trabajar con el problema lineal

y′(t) = −a y(t) + b(t).

Usando el factor integrante eat la solucion exacta de este problema continuo es

y(t) = e−aty0 + e−at

∫ t

0

easb(s) ds = e−aty0 +

∫ t

0

e−a(t−s)b(s) ds.

Se puede aproximar aun mas si suponemos que b es constante y entonces tenemosque la solucion se calcula con facilidad y es

y(t) = e−aty0 +b

a(1− e−at).

entonces nos fijamos que en el caso estable a > 0, esto es fy(t0, y0) < 0, repetimosla dinamica del caso y′ = −a y solo que trasladada a la linea solucion establey(t) ≡ b/a. Esta es la razon por la que el termino importante es el primero y esdonde el esquema numerico debe tener el comportamiento estable.

Entonces, el analisis de estabilidad numerica es como sigue:

Se aplica el esquema al problema modelo y′ = −a y con a > 0 donde a =−∂yf(t0, y0)

Se determina R en este caso

Se determinan condiciones para que |R| < 1.

Ejemplo 65 En la ecuacion de Dahlquist-Bjorck es{

y′(t) = 100 (sin(t)− y(t)), 0 < t < 3,y(0) = 0

se cumple f(t, y) = 100 (sin(t)− y) luego ∂yf(t0, y0) = −100 y el analisis de estabi-lidad para Euler explıcito nos pide h < 2/100, y como T = 3 y h = T/N entoncesdebe ser N > 150. Valores menores generan oscilaciones en el calculo discreto.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 120

Page 51: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.12. Estabilidad numerica y precision. Ajustar h 121

Igual ocurre con el ejemplo de Prothero-Robinson donde f(t, y) = L (ϕ(t)− y)+ϕ′(t) y ∂yf(t0, y0) = −L o en el ejemplo f(t, y) = −3y+3t donde ∂yf(t0, y0) = −3.

Observar que si fijamos la longitud del intervalo T , entonces tambien podemoshacer que el numero de puntos de la particion intervenga. Como h = T/N y pedimosh < 2/a entonces debemos tener N > a/(2T ) para estabilidad numerica en el casode Euler explıcito. En todo caso, es la razon h = T/N la que debe cumplir larestriccion de estabilidad numerica.

Observacion 49 Solo interesa hacer este estudio en los problema rıgidos, es decir,en donde hay decaimientos exponenciales en la solucion o parte de ella. El estu-dio de la estabilidad numerica no es importante si la edo ya es de porsı inestable.

Ejemplo 66 El campo f(t, y) = 1000 (1−y) posee una solucion de equilibrio w(t) =1 y el campo de vectores es muy contractivo. Al usar Euler explıcito con y0 =1 se reproduce de forma exacta la solucion w(t) ≡ 1. Si aplicamos el metodo af(t, y) = 1000 (1 − y) = −1000y + 1000 tenemos que el punto crıtico es y⋆ = 1 yque ∂yf(1) = −1000 la linealizacion nos da

z′(t) = −1000 z(t)

y necesitamos h < 2/1000 para que el esquema sea numericamente estable. Esto esimportante cuando y0 = 1.

Se puede ver de forma explıcita en los calculos manuales ya que tenemos

yn+1 = yn + h 1000(1− yn) = (1− h1000)yn + 1000h, n ≥ 1

y la diferencia entre la solucion constante w ≡ 1 y la calculada es

yhn − 1 = (1− h1000)n(y0 − 1)

con lo que tenemos un factor de amplificacion R = 1 − h1000 y |R| < 1 solo sih < 2/1000.

3.12.2. Precision numerica

Observemos ahora el error global cometido usando Euler explıcito en nuestroproblema modelo

y(tn+1) = y(tn) + h y′(tn) +1

2y′′(ξn)h

2 = y(tn)− h a y(tn) +Rn

donde Rn = 12y

′′(ξn)h2, mientras que el esquema es

yn+1 = yn − h a yn.

121 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 52: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

122 Capıtulo 3 Ejemplos de metodos numericos

Figura 3.9:Restriccion de estabilidad: Euler explıcito para y′ = −a y con a = 32.Aproximaciones generadas de acuerdo a h > 2/a, 0 < h < 2/a o 0 < h < 1/a. Pordefecto y para visualizar mejor se unen los puntos calculados con un trazo continuo,pero el computo solo genera los puntos.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 122

Page 53: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.12. Estabilidad numerica y precision. Ajustar h 123

Entonces si consideramos el error global en = y(tn)− yn resulta que

en+1 = (1− h a) en +Rn, n ≥ 0.

Luego el error global en el paso n+ 1 es la suma de dos terminos:

la amplificacion del error global en el paso n por el factor R = 1− h a

el residuo Rn ∼ Cte h2 del esquema numerico en el paso n

Esto se repite en todos los pasos, podemos observar claramente que si |1− h a| > 1tendremos un incremento de los errores previos. En el caso a < 0 esto no se puedeevitar y es coherente con la dinamica expansiva del campo de soluciones mientrasque si a > 0 nos encontramos con la restriccion de estabilidad que hemos visto antessobre h.

Por otro lado, como conocemos la solucion exacta w(t) = e−at, el residuo Rn =12w

′′(ξn)h2 viene dado por

Rn =1

2a2e−a ξnh2

y esta naturalmente acotado si a > 0 por (e−at ≤ 1)

Rn ≤ 1

2a2h2

y si a < 0 por (e−at = e|a|t ≤ e|a|T )

Rn ≤ 1

2a2e|a|Th2,

por lo que tener un residuo pequeno equivale a controlar este valor. En el primercaso puede ser facil mientras que en el segundo hay que controlar el crecimientoexponencial a2e|a|T .

Como consecuencia, obervamos que si el sistema es inestable (a < 0) ten-dremos que bajar mas el valor de h para controlar el residuo que si esestable (a > 0).

Nos hemos encontramos entonces con la necesidad de restringir h por un doblemotivo en general y finalmente, tendremos que conseguir un error global pequenoque es lo que buscamos.:

restriccion por estabilidad para conseguir factor de amplificacion menorque uno cuando la dinamica sea contractiva, podemos escribir esta restriccioncomo h ≤ he

restriccion por precision para conseguir un residuo Rn pequeno. Estodepende del metodo numerico. El residuo tiene la forma Rn ≤ Cte hp+1 parap ≥ 1 donde Cte depende de la solucion buscada y sus derivadas, del campode velocidades, del intervalo temporal etc...Por lo tanto, cuanto mas grandep mejor sera el control sobre Rn. Podemos describir esta restriccion comoh ≤ hp.

123 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 54: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

124 Capıtulo 3 Ejemplos de metodos numericos

Si queremos que el error global se mantenga pequeno necesitamos entonces ambascosas y tendremos que imponer

h < mın{he, hp}.

A nosotros nos interesa que el metodo sea preciso. Entonces si he << hp no estamoshaciendo un buen negocio ya que predomina la restriccion por estabilidad sobre lade precision. Por ejemplo, si usamos Euler implıcito en el campo y′ = −a y paraa > 0 solo debemos preocuparnos de la precision y esto es bueno.

Observacion 50 Los metodos numericos son herramientas ajustables me-diante algunos parametros (en nuestro caso, solo hay un parametro que es el h, oel N). Dado un campo de vectores, elegimos un metodo para determinar una curvabuscada dentro de este campo de vectores y ajustamos el paso h para tener el errordeseado. La facilidad del proceso dependera del metodo elegido.

3.13. Estabilidad vs Precision

La restriccion por estabilidad lleva a que el metodo numerico funcione y empiecea ser util. Pero ahora falta la precision ya los resultados no tienen por que serprecisos. Al usuario le interesa que la restriccion predominante sea la producida porla precision antes que por la estabilidad. Luego lo mejor serıa que no tuviesemosque preocuparnos por la estabilidad y solo por la precision, pero conseguir esto noes facil.

1. ¿De que depende la restriccion de precision? Principalmente de

El metodo numerico usado determina la forma del error local.

La regularidad de la solucion buscada determina el tamano de la derivadaque aparece en el error local, pero esto suele ser desconocido.

La precision buscada por el usuario.

2. ¿De que depende la restriccion de estabilidad? Principalmente de

el problema de valor inicial al que le aplicamos el metodo numerico pe-ro las propiedades de rigidez suelen ser desconocidas aunquesospechadas.

el metodo numerico usado.

3. ¿Que restriccion es mas fuerte? ¿La impuesta por la precision o la impuestapor la estabilidad?

Depende del metodo usado y del problema de valor inicial al que leaplicamos el metodo numerico.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 124

Page 55: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

3.13. Estabilidad vs Precision 125

4. ¿Que hacer en la practica?

Buscar un equilibrio entre usar un metodo numerico con buenas propie-dades de estabilidad y lo suficientemente preciso. Esto nos defendera decampos de soluciones con rigideces y comportamientos bruscos. Normal-mente los metodos de cuarto orden ofrecen un buen balance.

Ejemplo 67 Supongamos que tenemos el problema

y′(t) = L (ϕ(t)− y(t)) + ϕ′(t), y(0) = y0.

La solucion exacta esy(t) = e−L t(y0 − ϕ(0)) + ϕ(t)

Si L << 0 dos soluciones continuas cualesquiera se separan muy rapidamentedebido al factor

e−L t(y0 − ϕ(0))

y el problema de valor inicial es muy inestable.

Entonces cualquier metodo numerico propagara errores con mucha rapidez ynecesitaremos una restriccion de he bastante fuerte. Tan pequena debe ser laeleccion de he que puede hacer el metodo inservible desde el punto de vistapractico. En particular Euler explıcito tiene un factor R = 1 − hL = 1 +h|L| >> 1 luego siempre amplifica los errores. Por otro lado, para Eulerimplıcito R = (1 + hL)−1 y solo se tiene que garantizar que 1 + hL = 0.

Pero el problema principal esta en la precision para el error local o de trun-catura puesto que la segunda derivada es

y′′(t) = L2 e|L| t(y0 − ϕ(0)) + ϕ′′(t) ≈ L2 e|L| t.

Por lo tanto, si los valores de ϕ′′(t) son moderados lo que manda es

y′′(t) ≈ L2 e|L| t

y no se puede controlar con valores moderados de h.

Si L >> 0 dos soluciones continuas cualesquiera se unen muy rapidamenteen la trayectoria ϕ(t) debido al factor

e−L t(y0 − ϕ(0))

y el problema de valor inicial es muy estable.

Para Euler explıcito necesitamos h < 2/L inviable practicamente. Mientrasque Euler implıcito no tiene ninguna restriccion. Incluso lo hara mejor cuantomayor sea L.

125 Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia

Page 56: Cap´ıtulo 3 Ejemplos de m´etodos num´ericos · 72 Cap´ıtulo 3 Ejemplos de m´etodos num´ericos Vamos a comparar una funcio´n continua, la solucio´n, en los puntos y(th n)conunos

126 Capıtulo 3 Ejemplos de metodos numericos

Por otro lado, la segunda derivada es

y′′(t) = L2 e−L t(y0 − ϕ(0)) + ϕ′′(t) ≈ L2 (y0 − ϕ(0)) + ϕ′′(t)

y como L > 0 entonces

y′′(t) ≈ L2 (y0 − ϕ(0)) + ϕ′′(t)

y el error local se puede controlar con valores moderados de h siempre y cuandoϕ′′(t) sea moderada. Ası que la restriccion por precision depende sobre todode la solucion buscada, lo que es razonable.

Si L ≈ 1 entonces las curvas solucion son mas o menos paralelas en inter-valos de tiempo moderados y ambas restricciones seran lo exigente que sea lasolucion buscada, ahora L no es importante.

Eliseo Chacon Vera, Dpto. Matematicas, Universidad de Murcia 126