métodos numéricos para ecuaciones diferenciales ordinarias

70
Índice general 1. Métodos numéricos para ecuaciones diferenciales ordinarias 3 1.1. Método en diferencias finitas ...................... 5 1.2. Método de Euler .............................. 7 1.2.1. Análisis del error ......................... 8 1.2.2. Ejemplos de sistemas ...................... 18 1.3. El método de Heun y el método del punto medio .......... 24 1.4. Métodos explícitos de Runge-Kutta ................... 40 2. Métodos numéricos para ecuaciones en derivadas parciales (EDPs) 49 2.1. Clasificación de EDPs de segundo orden ................ 49 2.2. Métodos numéricos para problemas parabólicos ........... 50 2.2.1. Método explícito ......................... 51 2.2.2. Método implícito ......................... 55 2.2.3. Método de Crank-Nicholson .................. 59 2.3. Estabilidad, consistencia y convergencia ................ 61 A. Analisis numérico matricial 65 A.1. Normas vectoriales ............................. 65 A.2. Normas matriciales ............................ 67 1

Upload: jaime-martinez-verdu

Post on 18-Dec-2014

14.142 views

Category:

Education


3 download

DESCRIPTION

Índice general 1. Métodos numéricos para ecuaciones diferenciales ordinarias 3 1.1. Método en diferencias finitas . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1. Análisis del error . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.2. Ejemplos de sistemas . . . . . . . . . . . . . . . . . . . . . . 18 1.3. El método de Heun y el método del punto medio . . . . . . . . . . 24 1.4. Métodos explícitos de Runge-Kutta . . . . . . . . . . . . . . . . . . . 40 2. Métodos numéricos para ecuaciones en derivadas parciales (EDPs) 49 2.1. Clasificación de EDPs de segundo orden . . . . . . . . . . . . . . . . 49 2.2. Métodos numéricos para problemas parabólicos . . . . . . . . . . . 50 2.2.1. Método explícito . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.2.2. Método implícito . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.2.3. Método de Crank-Nicholson . . . . . . . . . . . . . . . . . . 59 2.3. Estabilidad, consistencia y convergencia . . . . . . . . . . . . . . . . 61 A. Analisis numérico matricial 65 A.1. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 A.2. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

TRANSCRIPT

Page 1: Métodos numéricos para ecuaciones diferenciales ordinarias

Índice general

1. Métodos numéricos para ecuaciones diferenciales ordinarias 3

1.1. Método en diferencias finitas . . . . . . . . . . . . . . . . . . . . . . 5

1.2. Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.1. Análisis del error . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.2. Ejemplos de sistemas . . . . . . . . . . . . . . . . . . . . . . 18

1.3. El método de Heun y el método del punto medio . . . . . . . . . . 24

1.4. Métodos explícitos de Runge-Kutta . . . . . . . . . . . . . . . . . . . 40

2. Métodos numéricos para ecuaciones en derivadas parciales (EDPs) 49

2.1. Clasificación de EDPs de segundo orden . . . . . . . . . . . . . . . . 49

2.2. Métodos numéricos para problemas parabólicos . . . . . . . . . . . 50

2.2.1. Método explícito . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.2.2. Método implícito . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.2.3. Método de Crank-Nicholson . . . . . . . . . . . . . . . . . . 59

2.3. Estabilidad, consistencia y convergencia . . . . . . . . . . . . . . . . 61

A. Analisis numérico matricial 65

A.1. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

A.2. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

1

Page 2: Métodos numéricos para ecuaciones diferenciales ordinarias

2

Page 3: Métodos numéricos para ecuaciones diferenciales ordinarias

Capítulo 1

Métodos numéricos paraecuaciones diferencialesordinarias

La inmensa mayoría de las ecuaciones diferenciales no se pueden resolverde forma analítica explícita, por lo que resulta esencial diseñar algoritmosnuméricos que permitan hallar una aproximación numérica precisa. Losesfuerzos de investigación en este sentido han proporcionado un vastoabanico de esquemas numéricos que permiten hallar soluciones aproximadaspara una gran variedad de ecuaciones diferenciales. Además, hoy en díauno puede elegir entre una amplia despensa de software que proporcionanresultados precisos y fiables en periodos de tiempo moderadamente cortos.No obstante, todos esos paquetes y los métodos que subyacen tienen suslimitaciones, y quienes los utilizan deben ser capaces de reconocer cuandoel software trabaja correctamente y cuando genera resultados espurios.

En este capítulo nos ocuparemos de presentar los métodos numéricosbásicos para resolver problemas de valores iniciales (PVI). Lo cierto es quelos métodos esenciales que vamos a considerar raramente se utilizan enla práctica, incluso para ecuaciones diferenciales relativamente sencillas,puesto que existen métodos más sofisticados, especializados y versátiles.Pero cualquier desarrollo avanzado se construye sobre esquemas básicos ylas ideas que subyacen de éstos.

Los problemas representativos con los que se enfrenta un analista numéricode ecuaciones diferenciales ordinarias aparecen ya en las ecuaciones deprimer orden más simples. Nuestro objetivo es calcular una aproximación a

3

Page 4: Métodos numéricos para ecuaciones diferenciales ordinarias

4

la solución para el problema de Cauchy:

y′(t) = f(t, y(t)), y(t0) = y0, (1.1)

donde y(t) es una función real definida en un intervalo I, y f(t, y) es unafunción definida en I × R.

Por el bien de la simplicidad, centraremos nuestra atención en el casoescalar; sin embargo, todas las fórmulas y resultados se pueden adaptar asistemas de primer orden solo con reemplazar las funciones escalares y(t) yf(t, y) por funciones vectoriales. Por otra parte, sabemos que las ecuacionesdiferenciales de orden superior se reducen a sistemas equivalentes de primerorden.

Por no ser objeto de este tema, no entraremos a estudiar en profundidadlos diferentes resultados teóricos que aseguran, bajo ciertas hipótesis, laexistencia, unicidad o regularidad de las soluciones de los problemas deCauchy. No obstante recordamos a continuación uno de los teoremas clásicosde existencia y unicidad.

Teorema 1.1 (de Cauchy-Lipschitz) Sea f(t, x) una funcióncontinua sobre I × R y lipschitciana respecto a la segunda de susvariables, esto es,

∃ L > 0 / |f(t, x) − f(t, y)| ≤ L|x − y|, ∀t ∈ I, ∀x, y ∈ R,

entonces el problema de Cauchy (1.1) admite una única solución.

Observación 1.2 La condición de Lipschitz es relativamente suave sobrela función. Obsérvese que si la derivada parcial de f(t, x) respecto de lasegunda variable es una función continua, la condición de Lipschitz setraduce en que dicha derivada permanezca acotada.

En numerosos problemas físicos la variable t representa el tiempo y elintervalo I se suele considerar desde [t0, t0 + α]. Por ello el instante t0 sedenomina instante inicial y la condición impuesta en ese instante y(t0) = y0

se denomina condición inicial.

Page 5: Métodos numéricos para ecuaciones diferenciales ordinarias

5

1.1. Método en diferencias finitas

Uno de los métodos más versátiles para resolver ecuaciones diferencialesordinarias es el método de diferencias finitas, que consiste, básicamente,en aproximar las derivadas de una función en un punto mediante unacombinación de las imágenes de la función en puntos del entorno (lospuntos de la malla). La herramienta que nos proporciona tales fórmulas,denominadas de “diferencias finitas", es el desarrollo de Taylor de unafunción en un punto. En primer lugar hallemos la fórmula de aproximaciónde la primera derivada:

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

2y′′(ξ)h2, ξ ∈ [t, t + h],

donde hemos utilizado la fórmula del resto de Cauchy. Despejando y′(t) dela ecuación anterior podemos hallar su valor

y′(t) =y(t + h) − y(t)

h− 1

2y′′(ξ)h,

de donde obtenemos la aproximación

y′(t) ≈ y(t + h) − y(t)

h.

La fórmula anterior se denomina diferencia progresiva de la primeraderivada. Obsérvese que el error de la aproximación es proporcional a h,que lo expresaremos diciendo que es una aproximación de primer orden.Cuando interese poner de manifiesto el orden de aproximación omitiremosel resto de Cauchy escribiendo simplemente

y′(t) =y(t + h) − y(t)

h+ O(h),

donde el término O(h) se refiere a que el término proporcional a h estáacotado por un múltiplo constante de h cuando h tiende a cero. Realizandoel desarrollo de Taylor de y(t−h) y procediendo de forma similar se obtieneuna nueva fórmula de aproximación para y′(t), pero esta vez en función delos valores de u en el nodo t y t − h,

y′(t) =y(t) − y(t − h)

h+ O(h).

En este caso, la fórmula aproximación obtenida se denomina diferenciaregresiva de la primera derivada. Las diferencias progresivas y regresivasson aproximaciones de primer orden a la primera derivada en t. Pero no son

Page 6: Métodos numéricos para ecuaciones diferenciales ordinarias

6

éstas las únicas posibilidades para aproximar la primera derivada. Consideremoslos siguientes desarrollos de Taylor:

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

2y′′(t)h2 + O

(h3),

y(t − h) = y(t) − y′(t)h +1

2y′′(t)h2 + O

(h3),

donde el resto de Taylor es proporcional a h3. Si restamos las formulasanteriores obtenemos

y(t + h) − y(t − h) = 2y′(t)h + O(h3),

de donde se obtiene fácilmente

y′(t) =y(t + h) − y(t − h)

2h+ O(h2).

Luego he aquí otra fórmula de aproximación a la primera derivada en t,pero en este caso de segundo orden, denominada diferencia central dela primera derivada.

Tratemos de hallar ahora una aproximación a la segunda derivada en unpunto t. Tengamos en cuenta los siguientes desarrollos de Taylor:

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

2y′′(t)h2 +

1

6y(3)(t)h3 + O

(h4),

y(t − h) = u(t) − y′(t)h +1

2y′′(t)h2 − 1

6y(3)(t)h3 + O

(h4).

(1.2)

Si en lugar de restar, los sumamos deducimos la identidad

y(t + h) + y(t − h) = 2y(t) + y′′(t)h2 + O(h4),

de donde podemos despejar sin dificultad y′′(t),

y′′(t) =y(t + h) − 2y(t) + y(t − h)

h2+ O(h2).

Despreciando el término O(h2) hemos obtenido una aproximación de orden2 para la segunda derivada de la función y en el punto t. Tal aproximaciónse denomina diferencia central de la segunda derivada. Para obteneraproximaciones de derivadas de orden superior tendríamos que procederde forma análoga, y necesitaríamos evaluar la función en más puntosdel entorno. Observemos que para aproximar la primera derivada hemosnecesitado evaluar la función en dos puntos; para aproximar la segundaderivada hemos evaluado la función en tres puntos. En general, aproximarla derivada n-ésima necesitaríamos evaluar la función en al menos n + 1

puntos distintos.

Page 7: Métodos numéricos para ecuaciones diferenciales ordinarias

7

1.2. Método de Euler

Nuestra meta consiste en calcular una aproximación a la única soluciónpara el problema de valor inicial (1.1). En primer lugar, introducimos unamalla de puntos (puntos nodales) comenzando en el instante inicial t0 yacabando en el tiempo final tN = t0 + α de la forma

t0 < t1 < t2 < · · · < tk < · · · < tN

donde la distancia entre un nodo y otro hk = tk+1 − tk esté suficientementecerca. Por comodidad, utilizaremos una separación uniforme entre los puntosdel mallado, esto es, hk = h fijo para todo k. Este requisito simplifica elanálisis sin afectar significativamente al estudio general para pasos nouniformes. En este caso, el punto k-ésimo de la malla está dado portk = t0+kh. El propósito es construir un algoritmo recursivo que proporcioneaproximaciones uk ≈ y(tk) de la solución real en los puntos nodales k =

0, 1, 2, . . . elegidos. Los valores de y(t) en los puntos internodales se puedencalcular mediante cualquier procedimiento de interpolación, por ejemplo, lossplines cúbicos. El polinomio de Taylor de primer orden permite aproximarel valor de la función y(t) alrededor de cualquier nodo tk:

y(t) ≈ y(tk) + (t − tk)y′(tk) = y(tk) + (t − tk)f(tk, y(tk)),

donde hemos reemplazado la derivada y′(t) por el término que aparece enla ecuación (1.1) objeto de estudio. En particular, si tomamos t = tk+1,podemos aproximar el valor del siguiente punto nodal de la malla

y(tk+1) ≈ y(tk) + (tk+1 − tk)f(tk, y(tk)). (1.3)

En la práctica solamente sabemos la aproximación uk al valor y(tk), luegoestamos obligados a reemplazar uk por y(tk) en la fórmula (1.3), por lo tantoobtenemos el esquema iterativo:

uk+1 = uk + hf(tk, uk). (1.4)

Esta simple idea es el punto de partida del método de Euler. Este métodoes el esquema numérico unipaso más simple para integrar una ecuacióndiferencial ordinaria. Con el fin de comprender mejor el método de Euleren la práctica, es conveniente testearlo con algún problema sencillo quesepamos resolver, lo que permite estudiar el error de nuestra aproximacióncon la solución real.

Page 8: Métodos numéricos para ecuaciones diferenciales ordinarias

8

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20.6

0.8

1

1.2

1.4

1.6

1.8

2Método de Euler

sol aproxsol exacta

Figura 1.1: y′ + u = 2 cos t, u(0) = 2

1.2.1. Análisis del error

Antes de continuar, examinaremos algunos aspectos relacionados con elerror en un esquema numérico. Un método numérico unipaso general sepuede escribir como

uk+1 = uk + hg(h, tk, uk), (1.5)

donde g es una función conocida que, mediante iteraciones, proporcionala solución aproximada uk ≈ y(tk) en el instante tk, siendo el tamaño delpaso h = tk+1 − tk (que por propósitos didácticos lo consideramos fijo). Encualquier esquema de integración numérica hay distintos de errores queclasificaremos en tres tipos:

Error local: Es aquel cometido en el paso actual del algoritmo. Inclusocuando somos capaces de hallar el valor exacto de la solución uk =

y(tk) en el instante tk, la aproximación numérica en el instante tk+1 esciertamente no exacta, y se introduce un error en el valor calculadouk+1 ≈ y(tk+1). Esencialmente, hay dos subtipos de errores locales: elerror de truncamiento (o error de consistencia) y el error deredondeo. El error de redondeo es consecuencia de la falta de precisiónde la aritmética computacional y, en ocasiones, puede ocasionar gravesalteraciones en la aproximación. El error de truncamiento se debe ala aproximación que realizamos en el instante tk+1 a partir de su valor,

Page 9: Métodos numéricos para ecuaciones diferenciales ordinarias

9

aún cuando sea exacto, en el instante tk. Debido a su relevancia, elerror de truncamiento será analizado cuidadosamente más adelante.

Error inicial: Se manifiesta cuando la condición inicial u0 ≈ y(t0) no sepuede calcular con exactitud debido, fundamentalmente, a las limitacionesen la aritmética computacional. Por ejemplo, si y(t0) = π, necesariamentetenemos que tomar una aproximación de π y, en consecuencia, introducimosalgún error inicial que dependerá del número de decimales exactos quetomemos en π.

Error global: Es la diferencia entre el valor aproximado uk y el valor exactoy(tk) en el nodo tk. Los errores locales tienden a acumularlo, puesto que,en general, no partimos del valor exacto en el instante tk−1. De hecho,ni siquiera podemos garantizar el valor exacto en la condición inicialu0 ≈ y(t0) el el caso de que haya error inicial.

Resumiendo, conforme iteramos nuestro esquema numérico el error sepropaga en cada paso. Por simplicidad, pongámosnos en una situaciónfavorable y supongamos que la condición inicial es exacta u0 = y(t0), y quelos errores de redondeo no juegan un papel significativo (aunque uno debesiempre tenerlos en cuenta en la computación). En ese caso el error localjuega un papel fundamental hasta tal punto que, bajo ciertas hipótesis, sitenemos dominado el error local, podemos dominar también la propagacióndel error global. Así pues, analizaremos el error local en detalle. Para medirel error local que va de tk a tk+1 basta con comparar la solución exactay(tk+1) con su aproximación numérica bajo la hipótesis de que uk = y(tk).Naturalmente, en la práctica, este caso nunca se da, por lo que el errorlocal es una cantidad artificial que, por sí sola, no ilustra correctamente elfuncionamiento del método.

Definición 1.3 Se denomina error local de discretización de unmétodo numérico de la forma (1.5) al valor:

Ek+1 = (yk+1 − yk) − hg(h, tk, yk), k = 0, 1, 2, . . .

El valor τk+1 = 1hEk+1 se denomina error de truncación o error de

consistencia

Page 10: Métodos numéricos para ecuaciones diferenciales ordinarias

10

Obsérvese que el error de discretización en el instante tk+1 nos proporcionala diferencia entre el valor exacto de la solución en dicho punto yk+1 = y(tk+1)

y el valor que se obtendría al aproximar este valor mediante el esquemanumérico (1.5) si se partiese de la solución exacta en el instante tk.

Es fácil deducir la ecuaciónyk+1 − yk

h− g(h, tk, yk) =

1

hEk+1 = τk+1,

así pues, el error de truncación (consistencia) es la cantidad por la cualel método de discretización aplicado sobre el valor exacto en los puntosnodales no satisface la ecuación diferencial (1.1).

Definición 1.4 Se dice que un esquema numérico de la forma (1.5)es consistente con la ecuación diferencial ordinaria (1.1) si severifica que

lımh→0

N∑k=1

|Ek| = 0.

Además, diremos que el método es consistente de orden p si paracualquier valor de h positivo e inferior a un cierto paso máximo h∗,se cumple que

N∑k=1

|Ek| ≤ C · hp,

donde C es una constante.

Observación 1.5 Observemos que si |Ek| ≤ M ·hp+1 para todo k, entoncesel método es consistente de orden p. En efecto,

N∑k=1

|Ek| ≤ NMhp+1 =α

hMhp+1 = αMhp.

En la práctica, y siempre y cuando tengamos un orden de derivaciónconveniente, podemos calcular el orden de consistencia de un esquemanumérico desarrollando en Taylor (respecto de h) la solución exacta, estoes,

y(tk+1) = y(tk) + hy′(tk) +h2

2y′′(tk) +

h3

6y′′′(tk) + · · ·

= yk + hf(tk, yk) +h2

2f (1)(tk, yk) +

h3

6f (2)(tk, yk) + · · ·

(1.6)

Page 11: Métodos numéricos para ecuaciones diferenciales ordinarias

11

donde hemos denotado

f (k)(t, y) =d

dt[f (k−1)(t, y)], f (0)(t, y) = f(t, y).

Por ejemplo, los primeros términos son

f (1)(t, y) =d

dt[f(t, y)] =

∂f

∂t(t, y) + f(t, y)

∂f

∂y(t, y),

f (2)(t, y) =d

dt[f (1)(t, y)] =

∂2f

∂t2(t, y) +

∂f

∂t(t, y)

∂f

∂y(t, y)

+ f(t, y)

((∂f

∂y(t, y)

)2

+ 2∂2f

∂t ∂y(t, y)

)+ f(t, y)2∂2f

∂y2(t, y),

f (3)(t, y) =∂3f

∂t3(t, y) + 3

∂f

∂t(t, y)

∂2f

∂t ∂y(t, y) +

∂f

∂y(t, y)

∂2f

∂t2(t, y) +

∂f

∂t(t, y)

(∂f

∂y(t, y)

)2

f(t, y)

((∂f

∂y(t, y)

)3

+ 5∂2f

∂t ∂y(t, y)

∂f

∂y(t, y) + 3

(∂f

∂t(t, y)

∂2f

∂y2(t, y) +

∂3f

∂t2 ∂y(t, y)

))

f(t, y)2

(4∂f

∂y(t, y)

∂2f

∂y2(t, y) + 3

∂3f

∂t ∂y2(t, y)

)+ f(t, y)3∂3f

∂y3(t, y)

Por otra parte, desarrollamos en Taylor la función g(h, t, y) respecto dela variable h alrededor del punto 0

g(h, t, y) = g(0, t, y) + h∂g

∂h(0, t, y) +

h2

2

∂2g

∂h2(0, t, y) + · · · (1.7)

Finalmente, utilizando (1.6) y (1.7) obtenemos:

Ek+1 = (yk+1 − yk) − hg(h, tk, yk)

= h (f(tk, yk) − g(0, tk, yk)) +h2

2

(f (1)(tk, yk) − 2

∂g

∂h(0, tk, yk)

)h3

6

(f (2)(tk, yk) − 3

∂2g

∂h2(0, tk, yk)

)+

h4

24

(f (3)(tk, yk) − 4

∂3g

∂h3(0, tk, yk)

)+ . . .

(1.8)Así pues, bajo condiciones de regularidad convenientes sobre las derivadas,el orden de consistencia del esquema numérico será de orden p siempre ycuando

f (m)(tk, yk) = (m + 1)∂(m)g

∂h(m)(0, tk, yk), m < p, f p(tk, yk) 6= (p + 1)

∂pg

∂hp(0, tk, yk),

ya que, en ese caso, el error de discretización tiene orden p + 1.

Ejemplo 1.1 En el método de Euler uk+1 = uk + hf(tk, uk) se verifica que g(h, tk, yk) =

f(tk, yk), de donde g(0, tk, yk) = f(tk, yk) y ∂g∂h

(0, tk, yk) = 0. Entonces el método de Euleres de orden de consistencia 1 (a menos que f (1)(t, y) = 0).

Page 12: Métodos numéricos para ecuaciones diferenciales ordinarias

12

Definición 1.6 Dado un método numérico de la forma (1.5), sedenomina error del método la diferencia ek = yk −uk (k=0,1,. . . ,N).Se dice que el método es convergente cuando

lımh→0

(sup

0≤k≤N|ek|

)= 0.

Diremos que el método es convergente de orden p si se verifica:

sup0≤k≤N

|ek| ≤ K · hp.

En principio, el error de consistencia y el error del método son conceptosindependientes. De hecho la propiedad de consistencia, por lo general, sueleser más fácil de constatar que la convergencia. Mostraremos que, bajohipótesis adecuadas, la consistencia de orden p implica la convergencia deorden p. Consideremos un método genérico unipaso uk+1 = uk + hg(h, tk, uk)

que trata de aproximar la solución de la ecuación (1.1). Si conocemos elvalor exacto yk en el instante tk, entonces el valor exacto en el intante tk+1

esyk+1 = yk + hg(h, tk, yk) + Ek+1,

siendo Ek+1 el error de discretización. Restando esta última expresión alesquema numérico que aproxima a la ecuación obtenemos:

yk+1 − uk+1︸ ︷︷ ︸ek+1

= yk − uk︸ ︷︷ ︸ek

+h (g(h, tk, yk) − g(h, tk, uk)) + Ek+1.

Ahora tomamos valor absoluto

|ek+1| ≤ |ek| + h · |g(h, tk, yk) − g(h, tk, uk)| + |Ek+1|.

Asumamos que g(h, t, y) es continua en t y h, y lipschitziana en la variabley con constante de Lipschitz L, que generalmente se relaciona con laconstante de Lipschitz para f . Entonces

|ek+1| ≤ |ek| + hL|yk − uk| + |Ek+1| = (1 + Lh)|ek| + |Ek+1|. (1.9)

Necesitamos el siguiente lema técnico para continuar acotando el error.

Page 13: Métodos numéricos para ecuaciones diferenciales ordinarias

13

Lema 1.7 Sea L > 0 una constante y sean akNk=0 y bkN

k=1

sucesiones no-negativas satisfaciendo

ak+1 ≤ (1 + Lh)ak + bk+1, k = 0, 1, . . . , N − 1, h > 0.

Entonces se verifica la desigualdad:

ak+1 ≤ eL(tk+1−t0)a0 +k∑

i=0

eL(tk+1−ti+1)bi+1,

donde tk = t0 + kh, k = 0, 1, . . . , N .

Aplicamos el Lema 1.7 a nuestro caso particular; A = L, ak = |ek| ybk = |Ek|, entonces:

|ek+1| ≤ eL(tk+1−t0) · |e0| +k∑

i=0

≤L(tk+1−t0)︷ ︸︸ ︷eL(tk+1−ti+1) |Ei+1|

≤ eL(tk+1−t0)

(|e0| +

N∑k=1

|Ek|

).

Si asumimos que el error inicial e0 = 0 y que el método es consistente deorden p, concluimos que

|ek+1| ≤ eL(tk+1−t0)Chp = K · hp.

Así pues, bajo hipótesis convenientes, hemos probado que si el esquemanumérico tiene orden p como medida de error local, entonces el error globalestá acotado por un múltiplo de hp. En otras palabras, si suponemos queno hay errores de redondeo ni error inicial, el valor calculado uk y la soluciónreal y(tk) en el instante tk se puede acotar por:

|y(tk) − uk| ≤ K · hp,

donde la constante K > 0 puede depender del tiempo tk y la soluciónparticular y(t). En resumen, cuanto más alto es el orden, más preciso seránuestro esquema numérico, y el paso se puede elegir más grande paraconseguir la precisión deseada a la solución real. Sin embargo, a mayor

Page 14: Métodos numéricos para ecuaciones diferenciales ordinarias

14

orden, se requieren mayores esfuerzos computacionales en cada paso. Luegose debe tratar de equilibrar el orden del método con la elección del paso deforma que el balance total sea óptimo.

Como consecuencia, el siguiente resultado nos proporciona una cotapara el error en el método de Euler en el caso de que no hayan erroresde redondeo, esto es, si suponemos que podemos realizar los cálculos conprecisión infinita.

Teorema 1.8 Sea F una función continua lipschitziana respectode la segunda variable, esto es, f(t, x)−f(t, y) ≤ L|x−y| , con t ∈ [t0, t0+

α], x, y ∈ R y donde L es una constante real positiva. Supongamosademás que la solución y es de clase C2 en [t0, t0 +α] y que existe unaconstante M > 0 tal que |y′′(t)| < M . Entonces

|y(tk) − uk| ≤hM

2L

(eL(tk−t0) − 1

).

No obstante, sabedores de que la influencia del error de redondeo puedellegar a ser notable bajo ciertas circunstancias, sería interesante saber comoafectan los errores de redondeo al error global. En la práctica el análisisde la repercusión del error de redondeo es bastante complicado, pero en elcaso del método de Euler y simulando la misma técnica que se utiliza enla demostración del Teorema 1.8 se demuestra la siguinte acotación.

Page 15: Métodos numéricos para ecuaciones diferenciales ordinarias

15

Teorema 1.9 Sea f una función continua lipschitziana respectode la segunda variable, esto es, f(t, x)−f(t, y) ≤ L|x−y| , con t ∈ [t0, t0+

α], x, y ∈ R y donde L es una constante real positiva. Supongamosademás que existe una constante M > 0 tal que |y′′(t)| < M , y que encada paso el error de redondeo al evaluar el método de Euler es εk.Entonces

|y(tk) − uk| ≤(

hM

2L+

ε

hL

)(eL(tk−t0) − 1

)+ ε0e

L(tk−t0),

donde ε es una cota superior de εk y ε0 es el error de redondeo deldato inicial.

La lectura esencial de este resultado es que el error no está acotadocuando h tiende a cero debido al factor ε

hL. Por tanto los resultados obtenidos

son poco fiables para pasos cuya longitud es menor que un cierto umbral.El umbral viene dado por el valor de h que minimiza la expresión

hM

2L+

ε

hL,

que tomando la primera derivada e igualando a cero obtenemos el valoróptimo h ≈

√2εM

. En cualquier caso debe tenerse en cuenta que los erroresde redondeo afectan solamente cuando los pasos son muy pequeños.

Sistemas de ecuaciones

Consideremos ahora el sistema de ecuaciones bidimensional

dx

dt= f (t, x, y) ,

dy

dt= g (t, x, y) ,

x (t0) = x0, y (t0) = y0

. (1.10)

Tanto la definición de solución como los resultados de existencia yunicidad de soluciones son similares al caso de una ecuación, por lo quepasaremos directamente al estudio de los métodos numéricos.

Page 16: Métodos numéricos para ecuaciones diferenciales ordinarias

16

Usando, al igual que antes

dx

dt(t) ≈ x (t + h) − x (t)

h,

dy

dt(t) ≈ y (t + h) − y (t)

h

obtenemos el método de Euler:

uk+1 = uk + hf (tk, uk, vk) ,

vk+1 = vk + hg (tk, uk, vk) ,

k = 0, 1, 2, ..., N − 1,

donde uk ≈ x (tk) , vk ≈ y (tk) .

En el caso general de un sistema de n ecuacionesdy1

dt= f1 (t, y1, y2, ..., yn) ,

...dyn

dt= fn (t, y1, y2, ..., yn) ,

y1 (t0) = y0, y2 (t0) = y2, ..., yn (t0) = yn,

. (1.11)

el esquema resultante sería el siguiente:

u1,k+1 = u1,k + hf1 (tk, u1,k, ..., un,k) ,

...un,k+1 = un,k + hfn (tk, u1,k, ..., un,k) ,

k = 0, 1, 2, ..., N − 1.

Ejemplo 1.2 Resolvamos el sistema

x′ = x + 2y,

y′ = 3x + 2y

x (0) = 6, y (0) = 4,

en el intervalo [0, 0,04] con h = 0,02.

Solución.-

u1 = 6 + 0,02 ∗ (6 + 2 ∗ 4) = 6. 28,

v1 = 4 + 0,02 ∗ (3 ∗ 6 + 2 ∗ 4) = 4. 52,

Page 17: Métodos numéricos para ecuaciones diferenciales ordinarias

17

u2 = 6,28 + 0,02 ∗ (6,28 + 2 ∗ 4,52) = 6. 586 4,

v2 = 4,52 + 0,02 ∗ (3 ∗ 6,28 + 2 ∗ 4,52) = 5. 077 6.

Como la solución exacta de este problema es x (t) = 2e−t + 4e4t, y (t) =

−2e−t + 6e4t obtenemos que

x (0,04) = 2e−0,04 + 4e4∗0,04 = 6. 615 622 362 ,

y (0,04) = −2e−0,04 + 6e4∗0,04 = 5. 119 486 348.

Por tanto, el error cometido es:

Error =

√(6. 586 4 − 6. 615 622 )2 + (5. 077 6 − 5. 119 486)2 = 5. 107 × 10−2.

En lo que respecta a las ecuaciones de orden dos

x′′ = f (t, x, x′)

estas se convierten en un sistema bidimensional mediante el cambio devariable y = x′ :

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

x′ = y.

A partir de aquí empleamos los métodos vistos para sistemas. En general,podemos tranformar una ecuación de orden n

y(n) = f(t, y, y′, ..., y(n−1)

)en un sistema mediante los cambios de variable y1 = y, y2 = y′, y3 = y′′, ..., yn =

y(n−1) :

y′1 = y2,

y′2 = y3,

...y′

n = f (t, y1, y2, ..., yn) .

Page 18: Métodos numéricos para ecuaciones diferenciales ordinarias

18

Ejemplo 1.3 Dado el problema

x′′ + 4x′ + 5x = 0, x (0) = 3, x′ (0) = −5

lo transformamos en

x′ = y,

y′ = −4y + 5x,

x (0) = 3, y (0) = −5.

1.2.2. Ejemplos de sistemas

El péndulo

Consideramos una bola de masa m atada de una varilla rígida de longitudl y masa despreciable que pende del techo. Las varilla puede oscilar conlibertad sobre el plano vertical, pero sometida a la fuerza de la gravedad (verla figura 1.2). Consideraremos primero por simplicidad que la resistenciadel aire se puede despreciar.

La variable x es el ángulo entre la varilla y el eje vertical. La ecuacióndiferencial se puede obtener a partir del principio de la cantidad de movimientoangular: la razón de cambio de la cantidad de movimiento angular es igualal momento de la fuerza. Como

Cantidad de movimiento angular=ml2dx

dt,

Momento de la fuerza=lF = −lmg sin (x) ,

tenemos la ecuación

ml2d2x

dt2= −lmg sin (x) ,

d2x

dt2= −g

lsin (x) .

Si lo transformamos en un sistema poniendo y = x′ tendremosdx

dt= y,

dy

dt= −g

lsin (x) .

Los puntos fijos son

y = 0, sin (x) = 0

(0, 0) , (±π, 0) , (±2π, 0) , ..., (±nπ, 0) , ...

Page 19: Métodos numéricos para ecuaciones diferenciales ordinarias

19

El punto (0, 0) es estable (se producen pequeñas oscilaciones alrededor delpunto), mientras que (π, 0) es inestable. Todos los demás son réplicas deestos dos: (±2nπ, 0) son estables y (± (2n + 1) π, 0) son inestables.

El diagrama de fases de este sistema, calculado usando el método deEuler (con g = 10, l = 50), se puede ver en la figura 1.3. Vemos quealrededor de los puntos fijos (±2nπ, 0) existen soluciones periódicas. Éstascorresponden al movimiento oscilatorio del péndulo, que aparecen cuandola velociad inicial no es demasiado grande. En cambio, si la velocidad iniciales grande, entonces el péndulo da vueltas completas, y el valor de la variablex ya no está acotado.

Si tenemos en cuenta el rozamiento, entonces la ecuación es la siguiente:

d2x

dt2= −g

lsin (x) − c

dx

dt.

Transformada en sistema quedaría

dx

dt= y,

dy

dt= −g

lsin (x) − cy.

Ahora las soluciones se comportan de manera bastante diferente. Alhaber disipación de la energía (casi) todas las soluciones convergen enespiral a uno de los puntos fijos (±2nπ, 0). Dependiendo de la velocidadinicial (es decir, de la fuerza a la que hemos impulsado el péndulo) puededar varias vueltas antes de estabilizarse y comenzar a oscilar en torno a laposición de equilibrio.

Usando los parámetros g = 10, l = 50, c = 1 hemos calculado variassoluciones por el método de Euler.

En la figura 1.4 podemos ver la solución correspondiente a las condicionesiniciales x0 = −2, y0 = 2. En este caso vemos que el péndulo oscila perdiendoenergía alrededor del punto (0, 0).

En la figura 1.5 tenemos la solución con condiciones iniciales x0 = 0,y0 = 15. Al ser la velocidad inicial grande el péndulo da dos vueltas enterasy después comienza a oscilar perdiendo energía alrededor del punto deequilibrio (4π, 0) .

Finalmente, en la figura 1.6 las condiciones iniciales son x0 = 0, y0 = 40.La velocidad inicial es tan grande que el péndulo da seis vueltas completas

Page 20: Métodos numéricos para ecuaciones diferenciales ordinarias

20

antes de perder suficiente energía y estabilizarse oscilando alrededor delpunto de equilibrio (12π, 0) .

El sistema de Lorenz

El sistema de Lorenz es un modelo, bastante simplificado, del tiempoatmosférico, que fue desarrollado por el meteorólogo Edwar N. Lorenz.

El sistema es el siguiente:dx

dt= σ (y − x) ,

dy

dt= ρx − y − xz,

dz

dt= −βz + xy,

donde σ, ρ, β son parámetros.

Se puede calcular sin dificultad que este sistema tiene tres puntos fijosdados por:

(0, 0, 0) ,(√

β (ρ − 1),√

β (ρ − 1), ρ − 1)

,(−√

β (ρ − 1),−√

β (ρ − 1), ρ − 1)

.

Este sistema tan simplificado no nos sirve para una predicción real dela temperatura atmosférica. Sin embargo, se ha hecho famoso por otrarazón: dio pie a un nuevo campo de las matemáticas llamada caos. Paradeterminados parámetros del sistema, las soluciones de no parecen seguirningún patrón fijo, formando curvas que giran alrededor de los puntos fijosdel sistema. Éstas permanecen en una zona acotada alrededor de los puntosfijos, pero no permanecen mucho tiempo cerca de ninguno de ellos. Portanto, existe una región del espacio que atrae todas las soluciones, pero ladinámica dentro de esta región no sigue una pauta fija, ni ningún patrónreconocible. A ésta se le ha llamado Atractor Extraño.

La característica fundamental de los sistemas caóticos es la sensibilidada las condiciones iniciales. Dicho sin mucha precisión, esto significa que,dada cualquier condición inicial, siempre existirá otra condición inicial, tancerca de ella como queramos, cuya solución diverge de la primera.

Ejemplos de tales sistemas incluyen la atmósfera terrestre, las placastectónicas, los fluidos en régimen turbulento y los crecimientos de población.

Usando el método de Euler vamos a obtener algunas soluciones de estesistema para estudiar su comportamiento.

Page 21: Métodos numéricos para ecuaciones diferenciales ordinarias

21

Vamos a ver primero algunas soluciones correspondientes a los siguientesparámetros:

σ = 10, ρ = 10, β =8

3.

Para estos parámetros no hay caos. Las soluciones numéricas muestranque las soluciones convergen a uno de los puntos fijos a medida que eltiempo avanza. En este caso los puntos fijos son

(0, 0, 0) ,(√

24,√

24, 9)

,(−√

24,−√

24, 9)

.

Por, ejemplo, si las condiciones iniciales son x0 = 1, y0 = 0, z0 = 2

obtenemos las soluciones que se ven en las gráficas ?? y ??. Vemos que lasolución converge al punto fijo

(√24,

√24, 9

).

Si probamos con una condición inicial más alejada, por ejemplo x0 =

1, y0 = 0, z0 = 50 la solución converge al mismo punto, como se ve en lagráfica 1.7.

Si elegimos las condiciones iniciales x0 = −10, y0 = −1, z0 = 3 la soluciónconverge al punto fijo

(−√

24,−√

24, 9), como se ve en la figura 1.8.

El comportamiento que hemos visto en este ejemplo se mantiene mientrasel parámetro ρ se eencuentra entre los siguientes valores

1 < ρ < 24,74...

Si ρ < 1, entonces todas las soluciones convergen al punto fijo (0, 0, 0). Encambio, si ρ > 24,74..., entonces aparecen las trayectorias caóticas.

Veamos las soluciones correspondientes a los siguientes parámetros:

σ = 10, ρ = 28, β =8

3.

Las proyecciones de la solución correspondiente a las condiciones inicialesx0 = 1, y0 = 0, z0 = 1 se puede ver en las gráficas 1.9, 1.10, 1.11.

En tres dimensiones la gráfica se puede ver en la figura 1.12.

Las soluciones presentan el mismo comportamiento aunque las condicionesiniciales sean muy diferentes. Por ejemplo, si x0 = 1, y0 = −8, z0 = 90 lasolución en el plano XZ se ve en la figura 1.13. Se ve que la solución finalforma una figura parecida, que se encuentra en la misma zona.

Page 22: Métodos numéricos para ecuaciones diferenciales ordinarias

22

Finalmente veremos algún ejemplo de la dependencia sensible a lascondiciones iniciales.

Vamos a coger la condición inicial x0 = 1, y0 = 0,0001, z0 = 1, que sediferencia muy poco de la condición x0 = 1, y0 = 0, z0 = 1. En la figuras 1.14,1.15 podemos observar que las soluciones en ambos casos son distintas,aunque se comportan de forma parecida en lo que respecta a la forma deldibujo. Esto se ve mucho más claro si comparamos una de las variablesen distintos momentos del tiempo. En la figura 1.16 podemos ver cómoal principio las dos soluciones son muy parecidas, pero a partir de undeterminado momento las soluciones divergen y se comportan de formamuy distinta. Podemos comparar los valores de las dos soluciones en lasiguiente tabla:

t x0 (t) x1 (t) Diferencia: x0 (t) − x1 (t)

0,1 1,1475 1,1475 0

1 −3,7134 −3,7135 0,0001

5 −8,2256 −8,2239 −0,0017

10 7,8278 7,8793 −0,0514

12 3,2356 3,8000 −0,5644

12,05 2,9522 3,7479 −0,7957

12,2 4,9132 6,5235 −1,6103

14 5,3422 −8,4479 13,7901

20 2,9567 −11,0626 14,0193

30 4,1114 3,0029 1,1085

35 −1,3976 4,5331 −5,9307

Page 23: Métodos numéricos para ecuaciones diferenciales ordinarias

23

Figuras

Figura 1.2: Péndulo

Page 24: Métodos numéricos para ecuaciones diferenciales ordinarias

24

−2 0 2 4 6 8 10−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

dx/d

t

Figura 1.3: Diagrama de fases del péndulo

1.3. El método de Heun y el método del punto medio

El método de Euler funciona, pero tiene varios inconvenientes: es unmétodo de baja precisión que necesita de pasos temporales muy pequeñospara alcanzar resultados aceptables, además converge lentamente hacia lasolución. Conocidas las limitaciones del método de Euler vamos a presentaruna batería de esquemas numéricos, comenzando por el método de Heun,que mejorarán gradualmente su eficiencia. Una de las claves para diseñaralgoritmos más sofisticados es replantear el principio teórico sobre el que

Page 25: Métodos numéricos para ecuaciones diferenciales ordinarias

25

−2 −1.5 −1 −0.5 0 0.5 1 1.5−3

−2

−1

0

1

2

3

4

5

x

dx/d

t

Figura 1.4: Péndulo con rozamiento, x0 = −2, y0 = 2

se sustenta el método de Euler (que consistía en la aproximación de lasderivadas por diferencias finitas) por otro (equivalente) que intercambie laderivación por integración. La prueba de la existencia y unicidad para unaecuación diferencial de primer orden se basa en su reformulación como unaecuación integral, concretamente obtenemos el siguiente resultado.

Page 26: Métodos numéricos para ecuaciones diferenciales ordinarias

26

0 2 4 6 8 10 12 14−4

−2

0

2

4

6

8

10

12

14

16

x

dx/d

t

Figura 1.5: Péndulo con rozamiento, x0 = 0, y0 = 15

Proposición 1.10 La solución y(t) del problema de valor inicial

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

coincide con la solución de la ecuación integral

y(t) = y(t0) +

∫ t

t0

f(s, y(s))ds. (1.12)

Page 27: Métodos numéricos para ecuaciones diferenciales ordinarias

27

0 5 10 15 20 25 30 35 40−5

0

5

10

15

20

25

30

35

40

x

dx/d

t

Figura 1.6: Péndulo con rozamiento, x0 = 0, y0 = 40

La prueba de este resultado es una aplicación inmediata del TeoremaFundamental del Cálculo, que se obtiene integrando ambos términos de laecuación diferencial:

y(t) − y(t0) =

∫ t

t0

y′(s)ds =

∫ t

t0

f(s, y(s))ds.

Este resultado sugiere reconsiderar métodos numéricos que se centrenen la resolución de la ecuación integral. Hay numerosas razones por las quese prefiere considerar la ecuación integral (1.12) en lugar de la ecuacióndiferencial. En general, la derivación tiene un comportamiento peor quela integración; en muchas ocasiones, la derivada de funciones con buenaspropiedades pueden tener un mal carácter, en cambio, las integrales de

Page 28: Métodos numéricos para ecuaciones diferenciales ordinarias

28

−1 0 1 2 3 4 5 6 7 8 90

5

10

15

20

25

30

35

40

45

50

x

z

Figura 1.7: Sistema de Lorenz, Proyección XZ, x0 = 1, y0 = 0, z0 = 50, σ = 10, ρ =10, β = 8

3

funciones que poseen un mal comportamiento se suavizan. Por otra parte,observemos que la ecuación integral no requiere de ninguna condición inicialadicional.

Partiremos de la ecuación integral (1.12) en cada subintervalo [tk, tk+1]

y(tk+1) = y(tk) +

∫ tk+1

tk

f(s, y(s))ds,

de tal forma que podemos calcular el valor de la solución en el punto tk+1 apartir del valor en tk, más la integral a lor largo del subintervalo. Obsérveseque, en particular, si aproximamos la integral en cada subintervalo por laregla del punto inicial∫ tk+1

tk

f(s, u(s))ds ≈ (tk+1 − tk)f(tk, y(tk)) = hf(tk, y(tk)),

Page 29: Métodos numéricos para ecuaciones diferenciales ordinarias

29

−10 −9 −8 −7 −6 −5 −4 −3 −23

4

5

6

7

8

9

10

11

12

13

x

z

Figura 1.8: Proyección XZ, x0 = −10, y0 = −1, z0 = 3, σ = 10, ρ = 10, β = 83

obtenemos de nuevo la aproximación numérica del método de Euler

y(tk+1) ≈ y(tk) + hf(tk, y(tk)),

lo que arroja una reinterpretación equivalente. Este punto de vista poneen evidencia la tosquedad del método de Euler, puesto que se utiliza unaaproximación de la integral que geométricamente representa el área delrectángulo de anchura h y altura f(tk, y(tk)), lejos ésta de ser una estimaciónprecisa de la integral. Es sabido por el lector que existen métodos muchomás sofisticados de integración numérica que aplicados a este enfoque sinduda proporcionarán algoritmos por lo menos más precisos, estaría por versi además serían más eficientes computacionalmente. Por el momentocomenzaremos por la aproximación numérica que proporciona el métododel trapecio, que aproxima la integral mediante el área del trapecio quese obtiene al unir los puntos f(tk, y(tk)) y f(tk+1, y(tk+1)),∫ tk+1

tk

f(s, y(s))ds ≈ 1

2h (f(tk, y(tk)) + f(tk+1, y(tk+1))) .

Page 30: Métodos numéricos para ecuaciones diferenciales ordinarias

30

−20 −15 −10 −5 0 5 10 15 20 25−30

−20

−10

0

10

20

30

x

y

Figura 1.9: Sistema de Lorenz, Proyección XY, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ =28, β = 8

3

La aproximación del valor actualizado que obtenemos en este caso es:

y(tk+1) ≈ y(tk) +1

2h (f(tk, y(tk)) + f(tk+1, y(tk+1))) , (1.13)

lo que da lugar a un esquema implícito, puesto que el valor actualizadoy(tk+1) aparece en los dos términos de la ecuación. El principal problemaque encontramos con este algoritmo es que si la función f es complicadapuede quedar una ecuación implícita compleja no lineal donde no seaposible despejar explícitamente el valor y(tk+1). En ese caso debemos recurrira metodos numéricos de resolución de ecuaciones no lineales como elmétodo de Newton, etc. Otra alternativa (que se conoce como métodospredictor-corrector) consiste en sustituir, en el lado derecho de la ecuación (1.13),el valor y(tk+1) por una aproximación obtenida por otro método explícito,por ejemplo el de Euler,

y(tk+1) ≈ pk+1 = y(tk) + hf(tk, y(tk)),

Page 31: Métodos numéricos para ecuaciones diferenciales ordinarias

31

−30 −20 −10 0 10 20 300

10

20

30

40

50

60

y

z

Figura 1.10: Sistema de Lorenz, Proyección YZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ =28, β = 8

3

y obtenemos finalmente la aproximación

y(tk+1) ≈ uk+1 = yk +1

2h[f(tk, yk) + f(tk + h, pk+1)]

= yk +1

2h[f(tk, yk) + f(tk + h, yk + hf(tk, yk))]

El esquema numérico resultante es

uk+1 = uk +1

2h[f(tk, uk) + f(tk + h, uk + hf(tk, uk))],

que lo podemos desglosar es dos etapas:

pk+1 = uk + hf(tk, uk),

uk+1 = uk +h

2(f(tk, uk) + f(tk+1, pk+1)) .

Este esquema se conoce como el método de Heun o método de Eulermejorado. Mediante este planteamiento hemos ganado que el método sea

Page 32: Métodos numéricos para ecuaciones diferenciales ordinarias

32

−20 −15 −10 −5 0 5 10 15 20 250

10

20

30

40

50

60

x

z

Figura 1.11: Proyección XZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 83

explícito, pero ¿realmente mejoramos el orden de consistencia respecto almétodo de Euler?

Ejercicio 1.1 Probar que el método de Heun es de segundo orden.

Notemos que si analizamos el error global nos aparecerá, al igual que enel método de Euler, el sumando adicional ε

h, donde ε es el error máximo de

redondeo en cada paso, por lo que para mantener el orden de convergencianecesitamos que ε ≤ ch3. El valor de h óptimo será de la forma h = Cte ∗ ε

13 .

Mediante la técnica utilizada para obtener el método de Heun es posibleelaborar innumerables esquemas numéricos de acuerdo a dos formas deactuación:

Cambiando el método numérico de aproximación de la integral.

Empleando métodos explícitos diferentes para la estimación intermediade pk+1.

Page 33: Métodos numéricos para ecuaciones diferenciales ordinarias

33

−20 −15 −10 −5 0 5 10 15 20 25−40

−20

0

20

40

0

10

20

30

40

50

60

Figura 1.12: Sistema de Lorenz, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 83

Por ejemplo, consideremos ahora la regla del punto medio, que aproximala integral mediante el área del rectángulo cuya altura es la imagen en elpunto medio tk + h

2del intervalo [tk, tk+1]∫ tk+1

tk

f(s, y(s))ds ≈ hf(tk +h

2, y(tk +

h

2)).

De nuevo, estimamos el valor de y(tk + h2) mediante el método de Euler

y(tk +h

2) ≈ pk+ 1

2= y(tk) +

1

2hf(tk, y(tk)).

El esquema numérico resultante adopta la expresión

uk+1 = uk + hf(tk +h

2, uk +

1

2hf(tk, uk)),

que se conoce como método del punto medio y es un esquema desegundo orden (compruébese).

Page 34: Métodos numéricos para ecuaciones diferenciales ordinarias

34

−20 −15 −10 −5 0 5 10 15 200

10

20

30

40

50

60

70

80

90

x

z

Figura 1.13: Sistema de Lorenz, Proyección XZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ =28, β = 8

3

Ejemplo 1.4 Resolvamos

y′ =t − y

2

y (0) = 1

en el intervalo [0, 2] con h = 1 y h = 12.

Solución.- La solución exacta de este problema es y (t) = t − 2 + 3e−t2 .

Vamos a compararla con la aproximación por el método de Heun.

Solución aproximada

1) h = 1 :

Page 35: Métodos numéricos para ecuaciones diferenciales ordinarias

35

−30 −20 −10 0 10 20 300

10

20

30

40

50

60

y

z

−30 −20 −10 0 10 20 300

10

20

30

40

50

60

y

z

Figura 1.14: Sistema de Lorenz, Proyección YZ, σ = 10, ρ = 28, β = 83 ,

x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1

p1 = 1 + 0−12

= 12,

u1 = 1 + 12

(0−12

+1− 1

2

2

)= 7

8= 0,875,

p2 = 0,875 + 1−0,8752

= 0,937 5,

u2 = 0,875 + 12

(1−0,875

2+ 2−0,937 5

2

)= 1. 171 875.

y (2) = 3e−1 = 1. 103 638,

Error = |1. 103 638 − 1. 171 875| = 0,068 237.

2)h = 0,5 :

p1 = 1 + 0,5 ∗ 0−12

= 0,75,

Page 36: Métodos numéricos para ecuaciones diferenciales ordinarias

36

−20 −15 −10 −5 0 5 10 15 20 250

10

20

30

40

50

60

x

z

−25 −20 −15 −10 −5 0 5 10 15 20 250

10

20

30

40

50

60

x

z

Figura 1.15: Sistema de Lorenz, Proyección XZ, σ = 10, ρ = 28, β = 83 ,

x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1

u1 = 1 + 0,52∗(

0−12

+ 0,5−0,752

)= 0,843 75,

p2 = 0,843 75 + 0,5 ∗ 0,5−0,843 752

= 0,757 812 5,

u2 = 0,843 75 + 0,52∗(

0,5−0,843 752

+ 1−0,757 812 52

)= 0,831 054 687 5,

p3 = 0,831 054 687 5 + 0,5 ∗ 1−0,831 054 687 52

= 0,873 291 015 6,

u3 = 0,831 054 687 5 + 0,52∗(

1−0,831 054 687 52

+ 1,5−0,873 291 015 62

)= 0,930 511 474 6,

p4 = 0,930 511 474 6 + 0,5 ∗ 1,5−0,930 511 474 62

= 1. 072 883 606,

u4 = 0,930 511 474 6 + 0,52∗(

1,5−0,930 511 474 62

+ 2−1. 072 883 6062

)= 1. 117 587 09.

Error=|1. 117 587 − 1. 103 638 | = 0,013 949.

Page 37: Métodos numéricos para ecuaciones diferenciales ordinarias

37

0 5 10 15 20 25 30 35−25

−20

−15

−10

−5

0

5

10

15

20

25

t

x

Figura 1.16: Sistema de Lorenz, σ = 10, ρ = 28, β = 83 ,

x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1

Comparación de los errores:

Error (h = 1)

Error (h = 0,5)=

0,068 237

0,013 949= 4. 9.

Consideremos ahora el sistema de ecuaciones bidimensional

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

y′(t) = g (t, x, y) ,

x (t0) = x0, y (t0) = y0.

.

Page 38: Métodos numéricos para ecuaciones diferenciales ordinarias

38

El método de Heun para a este sistema quedaría de la siguiente forma:

qk+1 = xk + hf (tk, xk, yk) ,

pk+1 = yk + hg (tk, xk, yk) ,

xk+1 = xk +h

2(f (tk, xk, yk) + f (tk+1, qk+1, pk+1)) ,

yk+1 = yk +h

2(g (tk, xk, yk) + g (tk+1, qk+1, pk+1)) ,

k = 0, 1, 2, ..., N − 1,

donde xk ' x (tk) , yk ' y (tk) .

En el caso general de un sistema de n ecuaciones

y1(t) = f1 (t, y1, y2, ..., yn) ,...

yn(t) = fn (t, y1, y2, ..., yn) ,

y1 (t0) = y0, y2 (t0) = y2, ..., yn (t0) = yn,

.

el esquema resultante sería el siguiente:

p1,k+1 = y1,k + hf1 (tk, y1,k, ..., yn,k) ,

...pn,k+1 = yn,k + hfn (tk, y1,k, ..., yn,k) ,

y1,k+1 = y1,k +h

2(f1 (tk, y1,k, ..., yn,k) + f1 (tk+1, p1,k+1, ..., pn,k+1)) ,

...

yn,k+1 = yn,k +h

2(fn (tk, y1,k, ..., yn,k) + fn (tk+1, p1,k+1, ..., pn,k+1)) ,

k = 0, 1, 2, ..., N − 1.

Ejemplo 1.5 Resolvamos el sistema

x′ = x + 2y,

y′ = 3x + 2y

x (0) = 6, y (0) = 4,

en el intervalo [0, 0,04] con h = 0,02.

Solución.-

q1 = 6 + 0,02 ∗ (6 + 2 ∗ 4) = 6. 28,

p1 = 4 + 0,02 ∗ (3 ∗ 6 + 2 ∗ 4) = 4. 52,

Page 39: Métodos numéricos para ecuaciones diferenciales ordinarias

39

x1 = 6 +0,02

2∗ (6 + 2 ∗ 4 + 6,28 + 2 ∗ 4,52) = 6. 293 2,

y1 = 4 +0,02

2∗ (3 ∗ 6 + 2 ∗ 4 + 3 ∗ 6,28 + 2 ∗ 4,52) = 4. 538 8,

q2 = 6. 293 2 + 0,02 ∗ (6. 293 2 + 2 ∗ 4. 538 8) = 6. 600 616,

p2 = 4. 538 8 + 0,02 ∗ (3 ∗ 6. 293 2 + 2 ∗ 4. 538 8) = 5. 097 944,

x2 = 6. 293 2 +0,02

2∗ (6,293 2 + 2 ∗ 4,538 8 + 6,600 616 + 2 ∗ 5. 097 944) = 6. 614 873 04,

y2 = 4. 538 8 +0,02

2∗ (3 ∗ 6. 293 2 + 2 ∗ 4. 538 8 + 3 ∗ 6. 600 616 + 2 ∗ 5. 097 944) = 5. 118 349 36.

Como la solución exacta de este problema es x (t) = 2e−t + 4e4t, y (t) =

−2e−t + 6e4t obtenemos que

x (0,04) = 2e−0,04 + 4e4∗0,04 = 6. 615 622 362 ,

y (0,04) = −2e−0,04 + 6e4∗0,04 = 5. 119 486 348.

El error sería:

Error =

√(6. 614 873 04 − 6. 615 622 )2 + (5. 118 349 36 − 5. 119 486)2 = 1. 361 × 10−3.

Ejercicio 1.2 Resolver la siguiente ecuación diferencial por el método deHeun:

y′ = t2 − y, y(0) = 1,

Realizar los siguientes pasos:

1. Tomar h = 0,2 y realizar dos pasos. Luego tomar h = 0,1 y realizarcuatro pasos.

2. Comparar la solución exacta y(t) = −e−t+t2−2t+2 con las dos aproximacionesen t = 0,4.

3. ¿Se comporta el error global de las aproximaciones como se esperacuando h se divide entre dos?

(Sol: a) h = 0,2, y (0,4) ' 0,69488; h = 0,1, y (0,4) ' 0,69094; b) Error(h =

0,2)=0.0052; Error(h = 0,1)=0.00126; c) Sí)

Page 40: Métodos numéricos para ecuaciones diferenciales ordinarias

40

Ejercicio 1.3 El modelo matemático de cierto circuito (condensador einductancia) es

Q′′ + Q = sen (t) ,

Q (0) = 0, Q′ (0) = 0,

donde Q (t) representa la carga en el momento t.

1. Usar el método de Heun con h = 0,1 para determinar el valor de Q (0,2).

2. Calcular el error cometido sabiendo que la solución exacta es:

Q (t) = sin (t) − 1

2t cos (t) .

(Sol: Q (0,2) ' 0,000998335, Q (0,2) = 0,001328, Error = 0,000 329 665 )

1.4. Métodos explícitos de Runge-Kutta

El método de Heun y el método del punto medio son casos particularesde una familia general de métodos conocidos con el nombre de Runge-Kutta,en honor a sus creadores Carle Runge y Martin Kutta a finales del sigloXIX. La idea es generalizar los métodos que hemos presentado de acuerdoal siguiente esquema numérico general:

uk+1 = uk + hm∑

i=1

aif(tk,i, uk,i), (1.14)

donde cada tk,i denota un punto en el k-ésimo subintervalo [tk, tk+1] y uk,i ≈y(tk,i) se interpreta como una aproximación en el punto tk,i que se suelecalcular por una fórmula similar más simple del mismo tipo. Los parámetrosai así como los parámetros que intervienen para calcular cada aproximaciónintermedia uk,i se elige de modo que el método alcance el orden de consistenciadeseado.

Desarrollemos los principios teóricos que fundamentan el método.

Supongamos que tenemos la partición t0 < t1 < · · · < tN = t0 + α, ydeseamos calcular el valor actualizado de y en el punto tk+1 basándonosen la ecuación integral

y(tk+1) = y(tk) +

∫ tk+1

tk

f(s, y(s))ds. (1.15)

Page 41: Métodos numéricos para ecuaciones diferenciales ordinarias

41

Consideremos una sucesión de puntos nodales en el subintervalo [tk, tk+1]

tk ≤ tk,1 ≤ tk,2 ≤ · · · ≤ tk,r ≤ tk+1,

donde cada tk,i = tk + cih con 0 ≤ ci ≤ 1, que actuarán como soporte paralas fórmulas de integración que utilicemos a lo largo del procedimiento.Estimaremos la integral mediante una fórmula de integración sobre lapartición anterior. De acuerdo con la ecuación integral (1.15), obtenemosuna aproximación de la forma

yk+1 ≈ yk + h

r∑i=1

aif(tk,i, yk,i),

donde ωi = hai son los pesos de la fórmula de cuadratura, y yk,i son losvalores de y en el punto tk,i. Para estimar el paso intermedio yk,i tendremosen cuenta, de nuevo, alguna otra fórmula de integración sobre los puntosnodales que quedan a la izquierda,

yk,i = yk +

∫ tk,i

tk

f(s, y(s))ds ≈ uk,i = yk + hi−1∑j=1

bijf(tk,j, yk,j).

donde hbi,j son los nuevos pesos ortorgados a los puntos tk,j con 2 ≤ j ≤ i−1.

Una vez elegidas las constantes ai, bij y ci, obtenemos el esquema explícitorecursivo:

uk,1 = uk,

uk,2 = uk + hb21f(tk,1, uk,1),

uk,3 = uk + hb31f(tk,1, uk,1) + hb32f(tk,2, uk,2),... ...

uk,r = uk + h∑r−1

j=1 brjf(tk,j, uk,j),

uk+1 = uk + h∑r

i=1 aif(tk,i, uk,i), tk,i = tk + cih, 0 ≤ ci ≤ 1.

(1.16)

Cuando queremos implementarlo en la computadora, conviene reescribir elesquema (1.16) del siguiente modo:

k1 = f(tk,1, uk,1) = f(tk + c1h, uk),

k2 = f(tk,2, uk,2) = f(tk + c2h, uk + hb21k1),

k3 = f(tk,3, uk,3) = f(tk + c3h, uk + h(b31k1 + b32k2)),... ...

kr = f(tk,r, uk,r) = f(tk + crh, uk + h∑r−1

j=1 brjkj),

uk+1 = uk + h (a1k1 + a2k2 + · · · + arkr) .

(1.17)

Page 42: Métodos numéricos para ecuaciones diferenciales ordinarias

42

Utilizaremos la siguiente representación matricial para las constantesc1 0 0 · · · 0

c2 b21 0 · · · 0... ... . . . . . . ...cr br1 br2 · · · 0

a1 a2 · · · ar

Definición 1.11 El número r se denomina número de etapas delmétodo.

Observación 1.12

Habitualmente la constante c1 suele ser 0, y en ese caso k1 = f(tk, uk).

La función g(h, tk, uk) del término general (1.5) para el esquema deRunge-Kutta es:

g(h, tk, uk) = a1k1 + a2k2 + · · · + arkr.

Debido a la facilidad, flexibilidad y diversidad en cuanto en el diseño delos esquemas numéricos de Runge-Kutta según los parámetros fijados, estostienen un vasto alcance en una gran variedad de ecuaciones diferencialesordinarias, y son los más populares y extendidos en el software computacional.El objetivo cuando se diseña un método de Runge-Kutta es elegir lasconstantes ai, bij y ci adecuadas con el mínimo número de etapas posiblespara conseguir el orden de consistencia deseado. Si queremos conseguirorden de consistencia 2 se necesitan al menos dos etapas, mientras quesi deseamos orden 4 necesitamos elaborar un método de cuatro etapas.Se puede probar que no existen métodos de Runge-Kutta para los que elnúmero de etapas sea igual al orden del método cuando el método tieneorden de consistencia mayor que 4. Así, para un método de orden 5 senecesitan al menos r = 6 estapas; y para orden 7 al menos 10 etapas.Como curiosidad, el método de orden 10 con menos etapas es para r = 17.

A continuación estudiamos los más conocidos según el número de etapasy el orden de consistencia.

Page 43: Métodos numéricos para ecuaciones diferenciales ordinarias

43

Métodos de una etapa

La matriz general del método de una etapa es(

c1 0

a1

). El esquema

numérico general es

k1 = f(tk + c1h, uk),

uk+1 = uk + ha1k1 = uk + ha1f(tk + c1h, uk),

de donde g(h, tk, yk) = a1k1 = a1f(tk + c1h, yk). Calculamos la derivada deg(h, tk, yk) respecto de h:

∂g

∂h(h, tk, yk) = c1

∂f

∂t(tk, yk).

Entonces f (0)(tk, yk) = g(0, tk, yk) cuando a1 = 1. Además f (1)(tk, yk) = 2 ∂g∂h

(0, tk, yk)

cuando c1 = 1/2. En definitiva, cuando a1 = 1 y c1 = 0 obtenemos el métodode Euler. Además, el esquema tiene orden de consistencia 2 si ∂f

∂y= 0 (la

función f solo depende del tiempo) y c1 = 1/2.

Métodos de dos etapas

La matriz general del método esc1 0 0

c2 b21 0

a1 a2

.

El esquema numérico general es

k1 = f(tk + c1h, uk),

k2 = f(tk + c2h, uk + hb21k1)

= hf(tk + c2h, uk + hb21f(tk + c1h, uk),

uk+1 = uk + h(a1k1 + a2k2) = uk + a1hf(tk + c1h, uk)

+ a2hf(tk + c2h, uk + hb21f(tk + hc1, uk)).

Por tanto,

g(h, tk, yk) = a1k1 + a2k2 = a1f(tk + c1h, yk) + a2f(tk + c2h, yk + hb2,1f(tk + hc1, yk)),

Para obtener métodos de orden de consistencia 2 debemos igualar loscoeficientes de los desarrollos de Taylor, obteniendo las identidades

a1 + a2 = 1, a1c1 + a2c2 =1

2, a2b21 =

1

2.

Page 44: Métodos numéricos para ecuaciones diferenciales ordinarias

44

Este sistema tiene 5 incógnitas y tan solo 3 ecuaciones, por lo que admiteinfinitas soluciones. Las soluciones particulares más conocidas son:

Método de Heun:

0 0 0

1 1 0

1/2 1/2

de donde resulta

k1 = f(tk, uk), k2 = f(tk + h, uk + hk1),

uk+1 = uk + h(1

2k1 +

1

2k2) = uk +

h

2(f(tk, uk) + f(tk + h, uk + hf(tk, uk))) .

Método del punto medio:

0 0 0

1/2 1/2 0

0 1

, que sustituyendo en el esquema

general se obtiene

k1 = f(tk, uk), k2 = f(tk +h

2, uk +

h

2k1),

uk+1 = uk + hk2 = uk + hf(tk +h

2, uk +

h

2f(tk, uk)).

Se puede probar que no existen constantes tales que el orden del métodosea mayor que 2.

Métodos de más etapas

Podemos proseguir elaborando métodos y escogiendo constantes adecuadaspara obtener la consistencia de mayor orden para un mismo número deetapas. En la práctica, los métodos de orden demasiado alto son bastantescostosos computacionalmente debido a que hay que evaluar la funcióndemasiadas veces. Los métodos de Runge-Kutta de orden cuarto son unosde los integradores de paso fijo más utilizados en Ingeniería para obtenerresultados precisos en problemas sin demasiada complejidad. Sin duda, elmétodo más popular cuando todavía se computaban los métodos numéricosa mano viene dado en forma matricial por la matriz

M =

0 0 0 0 0

1/2 1/2 0 0 0

1/2 0 1/2 0 0

1 0 0 1 0

1/6 2/6 2/6 1/6

.

Page 45: Métodos numéricos para ecuaciones diferenciales ordinarias

45

El método desarrollado queda,

k1 = f(tk, uk),

k2 = f(tk +h

2, uk +

h

2k1),

k3 = f(tk +h

2, uk +

h

2k2),

k4 = f(tk + h, uk + hk3)

uk+1 = uk +h

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

Ejemplo 1.6 Estimar el valor de la solución de la ecuación diferencial

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

en el punto t = 0,2 mediante el método de Heun de orden 2 y el método de Runge-Kuttade orden 4 utilizando un paso igual a h = 0,2.

Finalmente, si tenemos un sistema de ecuaciones diferenciales de laforma

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

x(0) = x0, y(0) = y0,

no resulta complicado adaptar el método de Runge-Kutta:

k1 = f(tk + c1h, uk, vk),

l1 = g(tk + c1h, uk, vk),

k2 = f(tk + c2h, uk + hb21k1, vk + hb21l1),

l2 = g(tk + c2h, uk + hb21k1, vk + hb21l1),

k3 = f(tk + c3h, uk + h(b31k1 + b32k2), vk + h(b31l1 + b32l2)),

l3 = g(tk + c3h, uk + h(b31k1 + b32k2), vk + h(b31l1 + b32l2)),... ...

kr = f(tk + crh, uk + h∑r−1

i=1 briki, vk + h∑r−1

i=1 brili),

lr = g(tk + crh, uk + h∑r−1

i=1 briki, vk + h∑r−1

i=1 brili),

uk+1 = uk + h(a1k1 + a2k2 + · · · + akkk),

vk+1 = vk + h(a1l1 + a2l2 + · · · + aklk).

(1.18)

La generalización a un sistema de m ecuaciones diferenciales es tediosa,pero inmediata.

Page 46: Métodos numéricos para ecuaciones diferenciales ordinarias

46

Ejercicio 1.4 Calcular la solución en t = 0,5 de la ecuación diferencial

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

mediante el método de Runge-Kutta de cuarto orden usando h = 0,5 yh = 0,25. Comparar los resultados obtenidos entre sí y con la solución exactay(t) = cos2 t.

Ejercicio 1.5 Encontrar una solución de un método de tres etapas quedé lugar a un método explícito de orden 3, con c1 = 0, c2 = c3 y a2 = a3.

Ejercicio 1.6 Realizar en MatLab una rutina tal que dada una funciónf(t, y), un paso h, una condición inicial y0 y un método de Runge-Kutta enla forma matricial que lo caracteriza, ejecute el algoritmo de Runge-KuttaN pasos.

Ejercicio 1.7 (Circuito de Chua)dx

dt= α

(y − x + bx +

1

2(a − b) (|x + 1| − |x − 1|)

),

dy

dt= x − y + z,

dz

dt= −βy.

Estudiar numéricamente (mediante el método de Runge-Kutta con h =

0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.Ver cuándo se produce un comportamiento caótico.

Por ejemplo, el caos aparece con los siguientes parámetros:

α = 9, β =100

7, a =

8

7, b =

5

7,

x0 = 0, y0 = 0, z0 = 0,6.

En cambio, si

α = 3, β =100

7, a =

8

7, b =

5

7,

x0 = 0, y0 = 0, z0 = 0,6,

entonces las soluciones convergen a un punto fijo en espiral.

Si

α = 11, β =100

7, a =

8

7, b =

5

7,

x0 = 0, y0 = 0, z0 = 0,6,

entonces las soluciones son espirales que se van alejando del origen cadavez más (el módulo tiende a infinito).

Page 47: Métodos numéricos para ecuaciones diferenciales ordinarias

47

Ejercicio 1.8 (Ecuación de Duffing)

x′′ + cx′ − x + x3 = A cos (ωt) .

En forma de sistema nos queda:x′ = y,

y′ = x − x3 − cy + A cos (ωt) .

Estudiar numéricamente (mediante el método de Runge-Kutta con h =

0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.Ver cuándo se produce un comportamiento caótico.

Por ejemplo, ver los siguientes casos:

1. c = A = 0. Las órbitas son trayectorias periódicas.

2. c = 0,2, A = 0. Las órbitas convergen en espiral a los puntos fijos.

3. c = 0,2, A > 0, ω = 1.

Probar con distintos valores de A : 0,2, 2, 20, 100, 300. Ver cómo el caosaparece. Primero hay trayectorias periódicas simples, luego se hacenmás complicadas y después aparecen trayectorias caóticas.

Ejercicio 1.9 (Oscilador de Ueda)

x′′ + cx′ + x3 = Asen (t) .

En forma de sistema nos queda:x′ = y,

y′ = −x3 − cy + Asen (t) .

Estudiar numéricamente (mediante el método de Runge-Kutta con h =

0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.Ver cuándo se produce un comportamiento caótico.

Por ejemplo, ver los siguientes casos:

1. c = A = 0. Las órbitas son trayectorias periódicas.

2. c = 1, A = 0. Las órbitas convergen en espiral al punto fijo (0, 0).

Page 48: Métodos numéricos para ecuaciones diferenciales ordinarias

48

3. c = 0,05, A > 0.

Probar con distintos valores de A : 0,05, 0,4, 7,5, 20. Ver cómo el caosaparece. Primero hay trayectorias periódicas simples, luego se hacenmás complicadas y después aparecen trayectorias caóticas.

Ejercicio 1.10 (Atractor de Rossler)x′ = − (y + z) ,

y′ = x + 0,2y,

z′ = 0,2 + xz − cz.

Estudiar numéricamente (mediante el método de Runge-Kutta con h =

0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.Ver cuándo se produce un comportamiento caótico.

Por ejemplo, ver los siguientes casos:

1. c = 2,5. Las órbitas convergen a una trayectoria periódica.

2. c = 5, c = 5,7, c = 8, c = 100. Hay trayectorias caóticas.

Page 49: Métodos numéricos para ecuaciones diferenciales ordinarias

Capítulo 2

Métodos numéricos paraecuaciones en derivadasparciales (EDPs)

En este capítulo se desarrollan los métodos numéricos de resolución dela ecuaciones en derivadas parciales. En particular, se estudian los métodosexplícito, implícito y de Crank-Nicholson, analizando el orden de precisiónen cada uno de ellos según el tamaño de los pasos espacial y temporal, asícomo las condiciones de estabilidad que se requieren en cada caso.

2.1. Clasificación de EDPs de segundo orden

Los modelos más importantes de ecuaciones en derivadas parciales desegundo orden que aparecen en las aplicaciones a la Física y a la Ingenieríase clasifican en tres tipos: elípticas, parábolicas e hiperbólicas. Dada unaEDPs de segundo orden

avxx + bvxy + cvyy + dvx + evy + fv = g, (2.1)

diremos que (2.1) es:

Elíptica: si b2−4ac < 0. El ejemplo clásico de ecuación elíptica es el problemade Poisson

∇2v(x, y) = g(x, y), (x, y) ∈ Ω, v|∂Ω = h,

donde ∇2 = ∂xx + ∂yy representa el operador laplaciano.

49

Page 50: Métodos numéricos para ecuaciones diferenciales ordinarias

50

Parabólica: si b2 − 4ac = 0. El ejemplo clásico de ecuación parabólica es laecuación del calor

vt(x, t) = Dvxx(x, t), D > 0,

Hiperbólica: si b2 − 4ac > 0. El ejemplo clásico de ecuación hiperbólica esla ecuación de ondas

vtt(x, t) = c2vxx(x, t).

2.2. Métodos numéricos para problemas parabólicos

El ejemplo clásico de una ecuación parabólica sencilla y con mayor campode aplicación en una dimensión es la ecuación del calor o ecuación dedifusión. El problema es encontrar la función v(x, t) (que puede representaruna temperatura, concentración de una sustancia, etc.) que satisface elproblema

∂tv(x, t) = D∂xxv(x, t), 0 < x < L, t > 0,

v(x, 0) = f(x), 0 ≤ x ≤ L, (Condiciones iniciales)v(0, t) = α(t), v(L, t) = β(t), t ≥ 0 (Condiciones de frontera),

(2.2)

donde D es la constante de difusión y f(0) = α(0) y f(L) = β(0). Laecuación del calor aparece en los modelos matemáticos relacionados conproblemas de difusión y Mecánica de Fluidos, y muchas de las propiedadesy comentarios que estudiaremos para ella se pueden trasladar a otrasecuaciones parabólicas.

Esta ecuación modeliza la conducción del calor en una barra cilíndrica delongitud L cuya sección transvesal es uniforme, pequeña y de un materialhomogéneo. La función v (x, t) mide la temperatura de la barra en cadamomento del tiempo t > 0 y en cada punto del espacio x ∈ [0, L]. D > 0

es una constante que depende de las características físicas de la barra.La solución de esta EDPs se expresa en forma de serie para ciertos tiposde condiciones iniciales f (x). Nuestro objetivo en este tema es desarrollarmétodos numéricos que permitan obtener la solución del problema de formaaproximada.

Page 51: Métodos numéricos para ecuaciones diferenciales ordinarias

51

2.2.1. Método explícito

Aplicaremos las fórmulas de las diferencias finitas sobre los puntos deuna malla uniforme rectangular (xj, tn) con

xj = jh, j = 0, 1, 2, . . . , J + 1, tn = nk, n = 0, 1, 2, . . .

donde h = ∆x es el tamaño del salto en la variable x y k = ∆t es el tamañodel paso temporal. Utilizaremos la notación vn

j = v(xj, tn) y unj ≈ v(xj, tn)

para el valor exacto y la aproximación numérica en el punto nodal (xj, tn),respectivamente.

Puesto que la ecuación del calor es una ecuación de evolución, unaprimera aproximación es plantearla como un esquema explícito de formaprogresiva en el tiempo, de modo que podamos calcular, para todo j, losvalores un+1

j a partir de los valores en el instante de tiempo anterior unj .

Calculemos las fórmulas en diferencias que utilizaremos para aproximar∂tv(x, t) y ∂2

xx(x, t).

vn+1j = v(xj, tn + k) = v(xj, tn) + k∂tv(xj, tn) +

k2

2∂2

ttv(xj, ξn)

= vnj + k(vt)

nj +

k2

2vtt(xj, ξn),

donde ξn ∈ (tn, tn+1). Por tanto:

∂tv(xj, tn) = (vt)nj =

vn+1j − vn

j

k+

k

2vtt(xj, ξn). (2.3)

Por otra parte tenemos

vnj+1 = vn

j + h(vx)nj +

h2

2(vxx)

nj +

h3

6(vxxx)

nj +

h4

24vxxxx(ξ

1j , tn),

vnj−1 = vn

j − h(vx)nj +

h2

2(vxx)

nj − h3

6(vxxx)

nj +

h4

24vxxxx(ξ

2j , tn).

Sumando las dos identidades precedentes y despejando (vxx)nj obtenemos la

fórmula en diferencias centrada

(vxx)nj =

vnj−1 − 2vn

j + vnj+1

h2+

h2

12vxxxx(ξj, tn). (2.4)

En virtud de las ecuaciones (2.3) y (2.4) llegamos a la identidad

(vt − D vxx)nj =

vn+1j − vn

j

k− D

vnj−1 − 2vn

j + vnj+1

h2+ Rn

j , (2.5)

dondeRn

j =k2

2vtt(xj, ξn) − h2

12vxxxx(ξj, tn) = O(k) + O(h2).

Page 52: Métodos numéricos para ecuaciones diferenciales ordinarias

52

Teniendo en cuenta que v satisface la ecuacion (2.2) y despreciando lostérminos O(h2) y O(k), la fórmula anterior sugiere el esquema en diferenciasfinitas:

un+1j − un

j

k=

D(un

j−1 − 2unj + un

j+1

)h2

.

Observación 2.1 Si v(x, t) es una solución de la ecuación en derivadasparciales (2.2) y, por consiguiente, el lado izquierdo de la ecuación (2.5) seanula, entonces v(x, t) satisface la ecuación en diferencias en primer ordenrespecto de k y en segundo orden respecto de h. Por tanto, la ecuación (2.5)muestra la medida de aproximación de la ecuación en diferencias finitas ala ecuación en derivadas parciales (2.2). Pero debemos avisar que esto, engeneral, no es una medida de aproximación de la solución de la ecuación endiferencias finitas a la solución de la ecuación en derivadas parciales, sinoque para ello se necesitan condiciones adicionales que presentaremos másadelante cuando realicemos el análisis del error.

Podemos despejar un+1j explícitamente en términos de los valores en el

paso temporal anterior

un+1j = un

j +Dk

h2(un

j−1 − 2unj + un

j+1) = runj−1 + (1 − 2r)un

j + runj+1,

donde r = Dkh2 , j = 1, . . . , J y n = 0, 1, 2, . . .. Finalmente, imponiendo las

condiciones iniciales y las condiciones de frontera queda la ecuación endiferencias finitas:

un+1j = run

j−1 + (1 − 2r)unj + run

j+1, j = 1, 2, . . . , J, n = 0, 1, 2, . . . ,

u0j = f(xj), j = 0, 1, . . . , J + 1,

un0 = α(tn) = αn, un

J+1 = β(tn) = βn, ∀n = 0, 1, 2, . . . .

(2.6)

Matricialmente podemos escribir el sistema recurrente anterior como

un+11

un+12

un+13...

un+1J−1

un+1J

=

1 − 2r r 0 · · · 0 0

r 1 − 2r r · · · 0 0

0 r 1 − 2r r... ...

... ... . . . . . . . . . ...0 0 · · · r 1 − 2r r

0 0 · · · · · · r 1 − 2r

un1

un2

un3...

unJ−1

unJ

+

rαn

0

0...0

rβn

,

que en forma compacta lo expresaremos por

u(n+1) = A · u(n) + b(n),

Page 53: Métodos numéricos para ecuaciones diferenciales ordinarias

53

donde u(n), b(n) ∈ RJ×1 y A ∈ RJ×J . Obsérvese que la matriz A de coeficientesdel sistema recursivo es tridiagonal.

Ejemplo 2.1 Hallar la solución de la ecuación del calor en el intervalo [0, T ] = [0, 10]

para una barra de longitud L = 10 dado que la temperatura inicial es cero, D = 1 y quev (0, t) = 100, v (10, t) = 50. Usar h = 2, k = 0,1.

Solución.-

1) t = 0,1 :

u11 = 0 + 0,1

4(0 − 2 ∗ 0 + 100) = 2. 5,

u12 = 0 + 0,1

4(0 − 2 ∗ 0 + 0) = 0,

u13 = 0 + 0,1

4(0 − 2 ∗ 0 + 0) = 0,

u14 = 0 + 0,1

4(50 − 2 ∗ 0 + 0) = 1. 25.

2) t = 0,2 :

u21 = 2,5 + 0,1

4(0 − 2 ∗ 2,5 + 100) = 4. 875,

u22 = 0 + 0,1

4(0 − 2 ∗ 0 + 2,5) = 0,062 5,

u23 = 0 + 0,1

4(1,25 − 2 ∗ 0 + 0) = 0,031 25,

u24 = 1,25 + 0,1

4(50 − 2 ∗ 1,25 + 0) = 2. 437 5.

En el paso 99 obtenemos u99 = (100, 68,5809, 45,8036, 36,3011, 39,3871, 50,0000).De aquí:

100) t = 10 :

u1001 = 68,5809 + 0,1

4(45,8036 − 2 ∗ 68,5809 + 100) = 68. 796 9,

u1002 = 45,8036 + 0,1

4(36,3011 − 2 ∗ 45,8036 + 68,5809) = 46. 135 4,

u1003 = 36,3011 + 0,1

4(39,3871 − 2 ∗ 36,3011 + 45,8036) = 36. 615 8,

u1004 = 39,3871 + 0,1

4(36,3011 − 2 ∗ 39,3871 + 50) = 39. 575 2.

La solución, a medida que el tiempo tiende a infinito converge a la rectaque une los puntos de la frontera (0, 100) y (10, 50). En la siguiente tablay gráficos podemos ver las soluciones numéricas correspondientes a variosmomentos del tiempo:

Page 54: Métodos numéricos para ecuaciones diferenciales ordinarias

54

2 4 6 8 10

20

40

60

80

100

Figura 2.1: Ecuación del calor

x/t 0,1 5 10 50 100 150

0 100 100 100 100 100 100

2 2,5 53,4341 68. 796 9 89,5523 89,9963 89,99997

4 0 24,7168 46. 135 4 79,2755 79,9940 79,99995

6 0 17,4521 36. 615 8 69,2755 69,9940 69,99995

8 1,25 27,9807 39. 575 2 59,5523 59,9963 59,99997

10 50 50 50 50 50 50

2 4 6 8 10

20

40

60

80

100

Figura 2.2: Ecuación del calor

Page 55: Métodos numéricos para ecuaciones diferenciales ordinarias

55

En la siguiente tabla tenemos los resultados (para el momento T = 10)

de aplicar el método con distintos pasos:

x h = 0,5, k = 0,1 h = 1, k = 0,5 h = 2, k = 0,1

0 100 100 100

2 68,9029 69,9181 68. 796 9

4 46,1479 47,6968 46. 135 4

6 36,4898 37,9302 36. 615 8

8 39,456 40,2958 39. 575 2

10 50 50 50

x h = 2, k = 2 h = 1, k = 1

0 100 100

2 71,875 100150

4 48,4375 99150

6 40,6250 71100

8 40,6250 52850

10 50 50

Vemos que en el caso de la última columna los resultados están muylejos de los correctos. En la siguiente tabla podemos ver que un pequeñodesfase en el cumplimiento de la condición tiene grandes consecuencias enlos resultados:

xh = 0,5, k = 0,13

T = 10,01h = 0,5, k = 0,125

0 100 100

2 13,5211 69,070

4 −39,761 46,405

6 −45,191 36,7316

8 −9,085 39,598

10 50 50

2.2.2. Método implícito

Los algoritmos implícitos se emplean para evitar los problemas de estabilidadque hemos visto en el caso anterior. Estos permiten utilizar pasos espaciales

Page 56: Métodos numéricos para ecuaciones diferenciales ordinarias

56

pequeños (para obtener mejor precisión) sin necesidad de usar un pasotemporal excesivamente pequeño.

Las aproximaciones que usaremos para las derivadas serán similares alas de antes. La diferencia estriba en que la aproximación la realizaremosen el punto (xj, tn+1). Para la derivada temporal utilizaremos la diferenciaregresiva:

vnj = v(xj, tn+1 − k) = vn+1

j − k(vt)n+1j +

k2

2(vtt)(xj, ξn),

donde ξn ∈ (tn, tn+1). Entonces,

(vt)n+1j =

vn+1j − vn

j

k+

k

2vtt(xj, ξn).

Para la aproximación de la derivada segunda espacial se utilizará de nuevola diferencia central, pero evaluada en el punto (xj, tn+1), esto es,

(vxx)n+1j =

vn+1j−1 − 2vn+1

j + vn+1j+1

h2+

h2

12vxxxx(ξj, tn+1).

Así pues, obtenemos

(vt − D vxx)n+1j =

vn+1j − vn

j

k− D

vn+1j−1 − 2vn+1

j + vn+1j+1

h2+ O(k) + O(h2). (2.7)

Si tenemos en cuenta que v satisface la ecuacion (2.2) y despeciamos lostérminos O(h2) y O(k), la fórmula anterior sugiere el esquema en diferenciasfinitas

un+1j − un

j

k=

D(un+1

j−1 − 2un+1j + un+1

j+1

)h2

.

Mediante cálculos similares al esquema explícito, llegamos a la siguienteecuación en diferencias implícita:

−run+1j−1 + (1 + 2r)un+1

j − run+1j+1 = un

j , j = 1, 2, . . . , J, n = 0, 1, 2, . . . ,

u0j = f(xj), j = 0, 1, . . . , J + 1,

un0 = α(tn) = αn, un

J+1 = β(tn) = βn, ∀n = 0, 1, 2, . . . .

(2.8)

Al escribir esta ecuación en forma matricial obtenemos

1 + 2r −r 0 · · · 0 0

−r 1 + 2r −r · · · 0 0

0 −r 1 + 2r −r... ...

... ... . . . . . . . . . ...0 0 · · · −r 1 + 2r −r

0 0 · · · · · · −r 1 + 2r

un+11

un+12

un+13...

un+1J−1

un+1J

=

un1

un2

un3...

unJ−1

unJ

+

r(αn+1)

0

0...0

r(βn+1)

Page 57: Métodos numéricos para ecuaciones diferenciales ordinarias

57

que la escribiremos por Q · u(n+1) = u(n) + b(n+1).

Vemos pues que en cada paso n este método requiere un número mayorde operaciones que en el algoritmo explícito, ya que tenemos que resolver unsistema de ecuaciones. Sin embargo, es importante observar que la matrizQ es tridiagonal, lo que permite resolver el sistema de forma muy eficiente.Este tipo de sistemas requiere una cantidad de operaciones de orden O (J),muy inferior al caso general, donde se necesita efectuar operaciones deorden O (J3) . Por tanto, el incremento en el número de operaciones por pasova a ser pequeño. Además, como veremos más adelante, este incrementoen la cantidad de operaciones se ve ampliamente compensado por el hechode que no vamos a necesitar imponer un paso temporal pequeño, por loque el cómputo global de operaciones va a resultar mejor que en el métodoexplícito.

Un aspecto importante es saber si el sistema de ecuaciones obtenidotiene una única solución. Eso lo sabremos al estudiar los valores propios dela matriz Q, que son todos positivos. Por tanto, Q es invertible, el sistematiene una única solución y el método se puede implementar correctamente.

Ejemplo 2.2 Hallar la solución de la ecuación del calor en el intervalo [0, T ] = [0, 10]

para una barra de longitud L = 10 dado que la temperatura inicial es cero, D = 1 y quev (0, t) = 100, v (10, t) = 50. Usar h = 2, k = 0,1.

Solución.

Tenemos que r = 0,14

= 0,025, 1 + 2r = 1,05, uj0 = 100, uj

5 = 50, r ∗ uj0 = 2,5,

r ∗ uj5 = 1,25.

1) t = 0,1 :1,05 −0,025 0 0

−0,025 1,05 −0,025 0

0 −0,025 1,05 −0,025

0 0 −0,025 1,05

u11

u12

u23

u14

=

2,5

0

0

1,25

,

u1

1

u12

u23

u14

=

2. 382 32

5. 742 97 × 10−2

2. 972 89 × 10−2

1. 191 18

.

Observamos que, a diferencia del método explícito, todos los valores de u han cambiadoy son distintos de cero ya en la primera iterada.

Page 58: Métodos numéricos para ecuaciones diferenciales ordinarias

58

2) t = 0,2 :1,05 −0,025 0 0

−0,025 1,05 −0,025 0

0 −0,025 1,05 −0,025

0 0 −0,025 1,05

u11

u12

u23

u14

=

4. 882 32

0,057 429 7

0,029 728 9

2. 441 18

,

u1

1

u12

u23

u14

=

4. 653 82

0,167 59

8. 770 87 × 10−2

2. 327 02

.

En el paso 99 obtenemos u99 = (100, 68,3262, 45,47296, 36,0324, 39,23398, 50,0000). Deaquí:

100) t = 10

1,05 −0,025 0 0

−0,025 1,05 −0,025 0

0 −0,025 1,05 −0,025

0 0 −0,025 1,05

u11

u12

u23

u14

=

70. 826 2

45. 472 96

36. 032 4

40. 483 98

,

u1

1

u12

u23

u14

=

68. 544 1

45. 804 9

36. 345 8

39. 421 5

.

Al igual que en el anterior algoritmo, resumimos en la siguiente tabla las solucionesnuméricas correspondientes a varios momentos del tiempo:

x/t 0,1 5 10 50 100 150

0 100 100 100 100 100 100

2 2. 382 32 52,9651 68. 544 1 89,5314 89,99595 89,99997

4 5. 742 97 × 10−2 24,5002 45. 804 9 79,2417 79,99345 79,99994

6 2. 972 89 × 10−2 17,3798 36. 345 8 69,2417 69,99345 69,99994

8 1. 191 18 27,8062 39. 421 5 59,5313 59,99595 59,99997

10 50 50 50 50 50 50

Los resultados son similares a los obtenidos con el método explícito.

Page 59: Métodos numéricos para ecuaciones diferenciales ordinarias

59

La gran ventaja de este método en relación al explícito reside en que es estable paravalores cualesquiera de k y h. Además, el algoritmo es convergente con la misma rapidezque el algoritmo explícito, es decir, de orden O(k + h2). Por tanto, podemos reducir eltamaño del paso h, y así obtener mejor precisión, sin necesidad de utilizar valores excesi-vamente pequeños de k. De esta forma conseguimos una buena precisión sin aumentar deforma inaceptable el número de operaciones.

Veamos ahora qué resultados se obtienen con los pasos h = 1, k = 1 y h = 0,5,k = 0,13 :

xh = 0,5, k = 0,13

T = 10,01h = 1, k = 1

0 100 100

2 68,6343 67,4761

4 45,7749 44,2870

6 36,1806 34,9968

8 39,2908 38,6295

10 50 50

A diferencia del método explícito, con estos parámetros obtenemosresultados aceptables.

Aunque este método presenta claras ventajas con respecto al anteriorsigue sin ser un método completamente satisfactorio. La razón reside enque, al ser el orden de convergencia O(k + h2), predomina el error temporalsobre el espacial (al tener k menor orden), por lo que de poco nos sirvedisminuir el paso h con el objetivo de obtener mejor precisión. Fijémonosen que para conseguir precisión h2 debemos escoger k ∼ h2, con lo que nosaparece el mismo problema que en el algoritmo explícito. Veamos pues unmétodo que no adolece de ninguno de estos problemas.

2.2.3. Método de Crank-Nicholson

En el método anterior hemos apreciado que el error en el discretizado erade primer orden en k y de segundo orden en h. En este epígrafe trataremosde encontrar un método que mejore el anterior a segundo orden respecto dek. Una idea para alcanzar este objetivo podría ser aproximar por la fórmulade diferencia central de dos puntos la derivada temporal

(vt)nj =

vn+1j − vn−1

j

2k+ O(k2).

Page 60: Métodos numéricos para ecuaciones diferenciales ordinarias

60

La idea expuesta parece buena, pero desafortunadamente conduce a unmétodo numérico que es siempre inestable, por lo que no ha de utilizarsenunca. Parece que la diferencia progresiva es la más adecuada, pero ésta sepuede ver también como una diferencia centrada en el punto intermedio,esto es,

(vt)n+ 1

2j = vt(xj, tn +

k

2) =

vn+1j − vn

j

k+ O(

k2

4).

Ahora el problema reside en aproximar la derivada segunda espacial eneste punto intermedio tn + k

2. Estimaremos este valor utilizando una mezcla

ponderada de la derivada segunda en los nodos (xj, tn) y (xj, tn+1),

(vxx)n+ 1

2j = vxx(xj, tn +

k

2) ≈ (1 − θ)vxx(xj, tn) + θvxx(xj, tn+1),

≈ (1 − θ)vn

j−1 − 2vnj + vn

j+1

h2+ θ

vn+1j−1 − 2vn+1

j + vn+1j+1

h2,

donde θ ∈ [0, 1].

En definitiva la ecuación en derivadas parciales (2.2) se discretiza en elpunto (xj, tn + k/2) mediante el esquema numérico

un+1 − unj

k= D(1 − θ)

unj−1 − 2un

j + unj+1

h2+ Dθ

un+1j−1 − 2un+1

j + un+1j+1

h2.

Se puede probar que cuando θ = 1/2, el error en la discretización (error detruncación) es de orden 2 en la variable temporal y de orden 2 en la variableespacial, esto es, O(k2 + h2).

En ese caso el método se denomina método de Crank-Nicolson yadquiere al forma

2(un+1j − un

j ) = Dk

h2[(un

j−1 − 2unj + un

j+1) + (un+1j−1 − 2un+1

j + un+1j+1 )],

reordenando términos e imponiendo las condiciones iniciales y de fronteraobtenemos el esquema numérico−run+1

j−1 + 2(1 + r)un+1j − run+1

j+1 = runj−1 + 2(1 − r)un

j + runj+1, j = 1, . . . , J,

un+10 = αn+1, un+1

J+1 = βn+1, n ≥ 0, u0j = fj, j = 0, 1, . . . , J, J + 1.

(2.9)

Matricialmente, el esquema anterior se escribe

Page 61: Métodos numéricos para ecuaciones diferenciales ordinarias

61

2(1 + r) −r 0 · · · 0 0

−r 2(1 + r) −r · · · 0 0

0 −r 2(1 + r) −r... ...

... ... . . . . . . . . . ...0 0 · · · −r 2(1 + r) −r

0 0 · · · · · · −r 2(1 + r)

un+11

un+12

un+13...

un+1J−1

un+1J

=

2(1 − r) r 0 · · · 0 0

r 2(1 − r) r · · · 0 0

0 r 2(1 − r) r... ...

... ... . . . . . . . . . ...0 0 · · · r 2(1 − r) r

0 0 · · · · · · r 2(1 − r)

un1

un2

un3...

unJ−1

unJ

+

r(αn + αn+1)

0

0...0

r(βn + βn+1)

,

que de forma compacta se reescribe como

Q · u(n+1) = Q1 · u(n) + c(n).

2.3. Estabilidad, consistencia y convergencia

Sea u(n) = (un1 , u

n2 , . . . , u

nJ)T los valores nodales en el instante tn que se

obtienen al hacer correr un cierto esquema numérico

u(n+1) = Au(n) + b(n) (2.10)

para obtener una aproximación numérica de una EDPs. Consideremosv(n) = (vn

1 , . . . , vnJ )T los valores nodales en el tiempo tn de la solución exacta

y denotemos por e(n) = u(n) − v(n) el error cometido en la aproximaciónnumérica. Diremos que el método numérico es estable cuando ‖Am‖ estéuniformemente acotada para todo k y m verificando mk ≤ T . En otraspalabras, cuando la diferencia entre los valores aproximados y los realespermanezcan acotados en todo nivel del tiempo.

El que un esquema numérico sea consistente con un problema decontorno significa, que para pasos en la discretización suficientementepequeños, la solución exacta del problema verifica el esquema numérico conun error tan pequeño como se desee. Finalmente, para que un esquema sea

Page 62: Métodos numéricos para ecuaciones diferenciales ordinarias

62

convergente se debe verificar que para una discretización suficientementefina, el error en

j en cada nodo pueda hacerse tan pequeño como se quieraen cualquier paso del tiempo.

Definición 2.2 Un esquema en diferencias finitas de laforma (2.10) que aproxima a una ecuación diferencial en derivadasparciales es un esquema convergente en el tiempo t si

‖v(n) − u(n)‖ → 0,

cuando h, k → 0, siempre y cuando (n + 1)k → t. Diremos que laconvergencia es de orden (p, q) si

‖v(n) − u(n)‖ = O(hp) + O(kq).

Definición 2.3 Un esquema en diferencias finitas de laforma (2.10) es consistente a una ecuación diferencial en derivadasparciales si la solución v(x, t) satisface

v(n+1) = Av(n) + b(n) + kτ (n), donde ‖τ (n)‖ → 0,

cuando h, k → 0. Además, se dice que es consistente de orden (p, q)

si‖τ (n)‖ = O(hp) + O(kq).

La cantidad ‖τ (n)‖ se denomina error de truncamiento o error deconsistencia.

Observación 2.4 Tanto en la definición convergencia como en la deconsistencia, la norma ‖ · ‖ que utilizamos cambia conforme el paso h esmás pequeño, puesto que el espacio de vectores nodales crece en dimensión.

Page 63: Métodos numéricos para ecuaciones diferenciales ordinarias

63

Definición 2.5 Diremos que un esquema numérico de laforma (2.10) es estable si ‖Am‖ ≤ C, para todo k y n con mk ≤ T .

Consideremos un esquema en diferencias finitas dado matricialmentepor (2.10)

u(n+1) = Au(n) + b(n).

Supongamos que v = v(x, t) es una solución exacta de ecuación (2.2) quesatisface la ecuación anterior salvo por un término (error residual) quedenotaremos por E(n),

v(n+1) = Av(n) + b(n) + E(n).

Restando las dos ecuaciones anteriores obtenemos

v(n+1) − u(n+1) = A(v(n) − u(n)) + E(n).

Definimos el error global e(n) = v(n) − u(n), entonces:

e(n+1) = Ae(n) + E(n)

= A(Ae(n−1) + E(n−1)) + E(n)

= A2e(n−1) + AE(n−1) + E(n)

= . . . . . .

= A(n+1)e(0) +n∑

m=0

AmE(n−m).

Asumiremos dos condiciones: que no hay error inicial (e(0) = 0), y quela norma de las potencias m-ésimas de la matriz A están uniformementeacotada, esto es, ‖Am‖ ≤ C (estabilidad):

‖e(n+1)‖ = ‖n∑

m=0

AmE(n−m)‖ ≤n∑

m=0

‖Am‖ ‖E(n−m)‖

≤ C

n∑m=0

‖E(m)‖.

Supongamos que nuestro esquema en diferencias finitas es consistente deorden (p, q) con la EDPs. Entonces E(m) = kτ (m), y para cada m = 0, 1, . . . , n

Page 64: Métodos numéricos para ecuaciones diferenciales ordinarias

64

podemos encontrar una constante Km verificando ‖τ (m)‖ ≤ Km(hp + kq).Consideremos K(t) = max0≤m≤n Km. Por la propia construcción, se verificaque ‖τ (m)‖ ≤ K(t) para todo 0 ≤ m ≤ n, de donde concluimos:

‖e(n+1)‖ ≤ Ckn∑

m=0

‖τ (m)‖ ≤ Ck(n + 1)K(t)(hp + kq).

Pero cuando k → 0 entonces k(n+1) → t, y así conseguimos convergencia deorde (p, q). En definitiva, hemos probado parcialmente el célebre teoremade Lax, que enunciamos de manera simplificada.

Teorema 2.6 (Lax) Un esquema numérico en diferencias finitasdel tipo (2.10) consistente a una EDPs es convergente si, y solo si,es estable.

Page 65: Métodos numéricos para ecuaciones diferenciales ordinarias

Apéndice A

Analisis numérico matricial

A.1. Normas vectoriales

Para introducir nociones de consistencia y convergencia es necesarioutilizar normas vectoriales con la finalidad de medir el error de la aproximación.

Definición A.1 Una norma en un espacio vectorial real V es unaaplicación

‖ · ‖ : V → R

verificando:

(1) ‖u‖ ≥ 0 para todo u ∈ V , y ‖u‖ = 0 si, y solo si, u = 0.(Positividad).

(2) ‖λu‖ = |λ| ‖u‖, para todo λ ∈ R y u ∈ V . (Homogeneidad).

(3) ‖u+v‖ ≤ ‖u‖+ ‖v‖, para todo u, v ∈ V . (Desigualdad Triangular).

Para nuestros propósitos, consideraremos el espacio vectorial V = Rm×1

y definiremos las normas más utilizadas para tema que nos ocupa. Unaelección común es la norma del supremo (o norma del infinito), denotadapor ‖ · ‖∞:

‖u‖∞ = sup1≤i≤m

|ui|.

65

Page 66: Métodos numéricos para ecuaciones diferenciales ordinarias

66

Es fácil comprobar que se verfican todas las propiedades requeridas. En lapráctica es muy valioso obtener una cota de la norma del supremo, puestoque en ese caso tenemos acotadas todas las componentes del error porella. Para algunos problemas, sin embargo, puede ser más apropiado y fácilde calcular cotas para otras normas. Son frecuentes las siguientes:

‖u‖1 =m∑

i=1

|ui|, (1-norma)

‖u‖2 =

√√√√ m∑i=1

|ui|2, (2-norma o norma euclídea)

Ellos son casos particulares de una familia general de p-normas, definidaspor

‖u‖p =

(m∑

i=1

|ui|p)1/p

.

La norma del supremo se obtiene cuando hacemos tender p → ∞ de lap-norma.

Cuando se trata de comparar dos vectores, uno que representa los valoresnodales exactos de una función, y otro que representa valores aproximados,(donde los nodos están separados uniformemente por una longitud h > 0),es mucho más apropiado utilizar la norma `2,h definida por

‖u‖2,h =

√√√√h

m∑i=1

|ui|2.

Un hecho importante que relaciona todas estas normas es que son equivalentes.

Definición A.2 Dos normas ‖·‖ y ‖·‖∗ se dice que son equivalentessi existen constantes a, b > 0 tales que

a ‖u‖ ≤ ‖u‖∗ ≤ b ‖u‖, para todo u ∈ Rm×1

De manera informal, la equivalencia viene a decir que si una sucesión devectores converge a 0 respecto de una norma cualquiera de ellas, entonces la

Page 67: Métodos numéricos para ecuaciones diferenciales ordinarias

67

sucesión tambien converge a 0 respecto de todas las demás, y si una ciertacantidad está acotada bajo una norma, automáticamente está acotada bajotodas las demás normas equivalentes (quizás cambie la cota). De hecho,en dimensión finita, todas las normas son equivalentes.

A.2. Normas matriciales

Proposición A.3 Sea ‖·‖ : Rm×1 → R una norma vectorial cualquieray definamos con el mismo nombre la aplicación

‖ · ‖ : Rm×m −→ R

A ‖A‖ := supu∈Rm×1

‖Au‖‖u‖

(A.1)

Entonces ‖ · ‖ es una norma definida en el conjunto de las matricescuadradas Rm×m. Además se verifican las siguientes propiedades:

(a) ‖Au‖ ≤ ‖A‖ ‖u‖ para todo A ∈ Rm×m y u ∈ Rm×1.

(b) ‖AB‖ ≤ ‖A‖ ‖B‖ para todo A,B ∈ Rm×m.

Definición A.4 Cualquier norma ‖ · ‖ : Rm×m → R inducida por unanorma vectorial mediante (A.1) se denomina norma matricial.

Definimos el radio espectral de una matriz A como

ρ(A) = max1≤j≤m

|λj| ,

donde λj son los valores propios de A.

Page 68: Métodos numéricos para ecuaciones diferenciales ordinarias

68

Proposición A.5 Si ρ(A) denota el radio espectral de una matriz A,entonces para cualquier norma matricial ‖·‖ se verifica la desigualdadρ(A) ≤ ‖A‖.

Prueba. El radio espectral se define como el max |λ1|, . . . , |λm|, donde λi

son los valores propios de A. Sea u ∈ Rm×1 es vector propio asociado a unvalor propio λi, entonces

|λi| ‖u‖ = ‖λiu‖ = ‖Au‖ ≤ ‖A‖ ‖u‖.

Dividiendo por ‖u‖ en la desigualdad anterior obtenemos que |λi| ≤ ‖A‖para todo i ∈ 1, . . . , m y, por tanto,

ρ(A) = max |λi| ≤ ‖A‖

.

Proposición A.6 Para las normas vectoriales ‖ · ‖1, ‖ · ‖∞ y ‖ · ‖2

obtenemos las siguientes normas matriciales:

(a) ‖A‖1 = max1≤j≤m

∑mi=1 |aij|.

(b) ‖A‖∞ = max1≤i≤m

∑mj=1 |aij|.

(c) ‖A‖2 =√

ρ(AT A).

Page 69: Métodos numéricos para ecuaciones diferenciales ordinarias

69

Teorema A.7 Consideremos el sistema lineal recursivo

u(n+1) = A · u(n). (A.2)

Son equivalentes:

(I) La sucesión de vectores u(n) está uniformemente acotada ennorma para cualquier condición inicial u(0),

‖u(n)‖ ≤ C1(= cte), para todo n ∈ N, u(0) ∈ Rm×1.

(II) Las potencias de A están uniformemente acotadas,

‖Am‖ ≤ C2(= cte), para todo m ∈ N.

En las condiciones equivalentes del teorema anterior, diremos que elsistema recursivo (o la matriz A) es estable.

Teorema A.8 Si el radio espectral verifica ρ(A) ≤ 1, y A no tienevalores propios defectivos (esto es, su multiplicidad algebraica esdiferente a la multiplicidad geométrica) de módulo 1, entonces lamatriz A es estable.

Page 70: Métodos numéricos para ecuaciones diferenciales ordinarias

70

Teorema A.9 Una matriz tridiagonal de dimensión m × m de laforma

T =

b c 0 · · · 0 0

a b c · · · 0 0

0 a b c... ...

... ... . . . . . . . . . ...0 0 · · · a b c

0 0 · · · · · · a b

,

tiene valores propios

λj = b + 2c

√a

ccos(

πj

m + 1), j = 1, 2, . . . , m.