113
Métodos numéricos para las ecuaciones diferenciales Aplicaciones a la Química Jose S. Cánovas Peña 5 de febrero de 2010

Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Embed Size (px)

Citation preview

Page 1: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos numéricos para las ecuaciones diferencialesAplicaciones a la Química

Jose S. Cánovas Peña

5 de febrero de 2010

Page 2: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Índice General

Advertencia: Esta es la primera versión de los apuntes de métodos numéricos del cuarto cursode Ingeniería Industrial. No han sido corregidos y probablemente contengan numerosos errores, perohe decidido colgarlos en la web para que sirva de guia de estudio. Para corregir errores, podeisescribir a mi dirección de correo [email protected].

i

Page 3: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Índice General

ii

Page 4: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Índice General

I Bloque de teoría 1

1 Introducción a las ecuaciones diferenciales: modelos de la Química 31.1 Ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Soluciones de ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4 Modelos de la química descritos por una ecuación . . . . . . . . . . . . . . . . . . . . 8

1.4.1 Descomposición radioactiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4.2 Ley de enfriamiento de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4.3 Problemas de mezclas químicas. . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.4 Cinética de las reacciones químicas . . . . . . . . . . . . . . . . . . . . . . . . 13

1.5 Modelos de la química descritos por un sistema de ecuaciones . . . . . . . . . . . . . 141.5.1 Problemas de mezclas con varios recipientes . . . . . . . . . . . . . . . . . . . 141.5.2 Climatización de edificios con varias estancias . . . . . . . . . . . . . . . . . . 161.5.3 Cinética de las reacciones químicas . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Métodos de un paso 232.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2 Métodos de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.1 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.2 Método de Taylor de orden 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.3 Métodos de Runge—Kutta de orden dos . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4 Análisis del error en los métodos de orden uno . . . . . . . . . . . . . . . . . . . . . . 33

2.4.1 Error local de truncamiento en el método de Taylor . . . . . . . . . . . . . . . 352.4.2 Error local de truncamiento en los métodos de Runge—Kutta . . . . . . . . . . 352.4.3 Relación entre el error local de truncamiento y el error global . . . . . . . . . . 362.4.4 Relación entre el error local y el error local de truncamiento . . . . . . . . . . 37

2.5 Extrapolación de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.6 Más sobre los métodos Runge—Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.6.1 El método de 3 etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.6.2 El método de cuatro etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.6.3 Métodos de más etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

iii

Page 5: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Índice General

3 Métodos multipaso 473.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.2 Métodos multipaso lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.3 Primeros ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.4 Métodos de multipaso deducidos a partir de la integración numérica . . . . . . . . . . 51

3.4.1 Métodos de Adams—Bashforth . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.4.2 Métodos de Adams—Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.5 Estabilidad de los métodos multipaso lineales . . . . . . . . . . . . . . . . . . . . . . 553.6 Fórmulas BDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.7 Metodos predictor—corrector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.8 Multipaso o Runge—Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

II Bloque de práctica 61

4 Introducción a Mathematica 634.1 Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.2 Paréntesis, corchetes y llaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.2.1 Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.3 Funciones matemáticas de interés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.4 Aprovechando cálculos anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.5 Definición de variables y funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.6 Derivadas de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7 Representación gráfica de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5 Ecuaciones diferenciales con Mathematica 735.1 Ecuaciones diferenciales de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . 735.2 Ecuaciones diferenciales lineales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.3 Aplicaciones de las ecuaciones lineales con coeficientes constantes. . . . . . . . . . . . 76

5.3.1 Movimiento armónico simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.3.2 Movimiento amortiguado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775.3.3 Movimiento forzado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4 Aplicación a los circuitos eléctricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6 Programación en Mathematica 816.1 Operaciones y definición de variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

6.1.1 Definición de variables y funciones . . . . . . . . . . . . . . . . . . . . . . . . 816.1.2 Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.2 Construcción de programas con Mathematica. . . . . . . . . . . . . . . . . . . . . . . 846.2.1 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846.2.2 Which . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856.2.3 Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856.2.4 Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866.2.5 While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866.2.6 For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.2.7 Break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

iv

Page 6: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Índice General

6.2.8 Goto, Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.2.9 Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886.2.10 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 Un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896.4 Presentaciones gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

A Ecuaciones en diferencias 95A.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95A.2 Transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

A.2.1 Definición y propiedades básicas . . . . . . . . . . . . . . . . . . . . . . . . . . 98A.2.2 Transformada Z inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100A.2.3 Aplicación a la resolución de la ecuación en diferencias lineales con coeficientes

constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101A.2.4 Fórmula de inversión compleja . . . . . . . . . . . . . . . . . . . . . . . . . . . 103A.2.5 Funciones de transferencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

A.3 Ecuaciones no lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

v

Page 7: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Parte I

Bloque de teoría

1

Page 8: Métodos numéricos para las ecuaciones diferenciales Aplicaciones
Page 9: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Capítulo 1

Introducción a las ecuacionesdiferenciales: modelos de la Química

Sumario. Ecuación y sistemas de ecuaciones diferenciales. Concepto de solu-ción. Descomposición radioactiva. Problemas de mezclas. Ley del calor de Newton.Cinética de las reaciones químicas.

1.1 Ecuaciones diferenciales

Una ecuación diferencial una expresión de la forma

F (x, y, y0, ..., yn)) = 0, (1.1)

donde F es una función real definida en un cierto abierto A ⊆ Rn+2, e y(x) es una función real devariable real. Como vemos, una ecuación diferencial es una expresión en la que aparecen ligadas unavariable x, que llamaremos variable independiente y las n primeras derivadas respecto de x de unavariable y, que se llama variable dependiente por ser una función dependiente de la variable x. Sellama orden de la ecuación (1.1) al valor de la derivada más alta en dicha expresión. Ejemplos deecuaciones diferenciales son los siguientes:

y00 + log(xy)− x = y,

y3) + xy0 + ex sinh y = 0,

y · y0 · y00 = x,que tienen órdenes 2, 3 y 2, respectivamente.

Diremos que una función y : (a, b) ⊆ R→ R es solución de la ecuación (1.1) si existe la derivadan—ésima de y en todo punto del intervalo (a, b), (x, y(x), y0(x), ..., yn)(x)) ∈ A para todo x ∈ (a, b) y

F (x, y(x), y0(x), ..., yn)(x)) = 0

para todo x ∈ (a, b). Por ejemplo tomemos la ecuación diferencial de orden uno

y0 − y tanx = 0. (1.2)

3

Page 10: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

Esta ecuación viene definida por la función F : A ⊂ R3 → R dada por F (x, y, y0) = y0 − y tanx. Eldominio de definición de F es en este caso A = (−π/2 + 2kπ,π/2 + 2kπ) : k ∈ Z × R2. Entoncesla función y : (−π/2,π/2) → R dada por y(x) = c

cosx, donde c es una constante arbitraria es una

solución de dicha ecuación diferencial. En efecto, esta función es una vez derivable con derivaday0(x) = c sinx

cos2 x, se verifica que (x, y(x), y0(x)) ∈ A para todo x ∈ (−π/2,π/2), y además satisface que

y0(x)− y(x) tanx = c sinx

cos2 x− c

cosxtanx = 0,

para todo punto x ∈ (−π/2,π/2).

Con frecuencia las soluciones de la ecuación (1.1) no podrán obtenerse de forma explícita y vendrándadas de forma ímplicita por una ecuación de la forma g(x, y) = 0. Así las curvas x2 + y2 = c > 0definen implícitamente las soluciones de la ecuación yy0 + x = 0 definidas en (−√c,√c), comopuede verse fácilmente derivando de forma implícita la expresión x2 + y2 = c respecto a la variableindependiente x.

A lo largo del curso estudiaremos fundamentalmente ecuaciones resueltas respecto de la derivadade mayor orden de la ecuación, es decir, ecuaciones de la forma

yn) = f(x, y, y0, ..., yn−1)),

donde f : A ⊆ Rn+1 → R. Estas ecuaciones son obtenidas cuando sea posible despejar yn) en (1.1).Serán también de especial interés para nosotros las ecuaciones autónomas, de la forma

F (y, y0, ..., yn)) = 0,

donde F no depende de la variable independiente explícitamente aunque ésta se encuentre impícitaen la función y, y las ecuaciones lineales

a0(x)yn) + a1(x)y

n−1) + ...+ an−1(x)y0 + an(x)y = b(x)

con an, an−1, ..., a1, a0 y b funciones reales de variable real.

1.2 Soluciones de ecuaciones diferenciales

Como vimos en el ejemplo (1.2) las soluciones de una ecuación diferencial en caso de existir no sonúnicas, sino que dependen de ciertas constantes arbitrarias provenientes de la integración. En general,dada una ecuación diferencial de la forma

F (x, y, y0, ..., yn)) = 0, (1.3)

las soluciones de la misma pueden escribirse como

g(x, y, c1, ..., cn) = 0 (1.4)

con ci ∈ R, i = 1, 2, ..., n. Así las soluciones de una ecuación diferencial de orden n generan unafamilia n—paramétrica de curvas en el plano. En el ejemplo anterior, la solución y(x) = c/ cosx define

4

Page 11: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

una familia de curvas en el plano dependiente del valor o parámetro de c. Recíprocamente, a partirde una familia n—paramétrica de curvas definida por (1.4) puede construirse una ecuación diferencialde la manera siguiente. Derivando n veces (1.4) respecto de x obtenemos n+1 ecuaciones de las que,eliminando los parámetros c1, c2, ..., cn, obtendremos una ecuación diferencial de orden n dada por(1.3). Las soluciones obtenidas como familia n—paramétrica de curvas se llaman soluciones generalesde la ecuación diferencial. Por ejemplo, si consideramos la familia de las curvas del plano dependientede dos parámetros dada por la ecuación y = c1ex+c2e−x, c1, c2 ∈ R, derivando implícitamente respectode x tenemos que

y0 = c1ex − c2e−x,

y00 = c1ex + c2e

−x.

Despejando c1 y c2 y sustituyendo en la primera ecuación tenemos que y00 = y es la ecuación diferencialque define a la familia de curva anteriores. Nótese que es una ecuación de orden dos dado que lafamilia depende de dos parámetros.Sin embargo, no siempre las ecuaciones diferenciales de orden n presentan una solución general

que se expresa mediante familias n—paramétricas. Por ejemplo, la ecuación y2+ (y0)2 = −1 no poseeninguna solución, mientras que y2+(y0)2 = 0 tiene como única solución y(x) = 0, que no depende deparámetro alguno. Además la ecuación de orden uno (y0 − y)(y0 − 2y) = 0 tiene por soluciones a lasfunciones dadas por la expresión (y − c1et)(y − c2e2t) = 0. Mención aparte merecen aquellas que noaparecen comprendidas en la familia n—paramétrica, las llamadas soluciones singulares. Por ejemploy0 = −2y3/2 tiene como solución general y(x) = 1/(t+ c)2 y como solución singular y(x) = 0. Nóteseque esta definición es ambigua y depende de la familia de curvas al ser y(x) = C2/(Cx + 1)2 unafamilia uniparamétrica de soluciones de y0 = −2y3/2 conteniendo la solución nula.De acuerdo con lo visto anteriormente, las soluciones de las ecuaciones diferenciales vienen dadas

por una familia n—paramétrica de curvas y por lo tanto la solución no es en general única. Paraevitar este hecho, suele acompañarse a una ecuación diferencial

F (x, y, y0, ..., yn)) = 0

de n condiciones iniciales de la forma y(x0) = y0, y0(x0) = y00,...,yn−1)(x0) = y

n−1)0 donde las cons-

tantes x0, y0, y00, ..., yn−1)0 son números reales, de manera que encontremos la solución de la ecuación

diferencial satisfaga adicionalmente estas condiciones. Se define un problema de condiciones inicialeso de Cauchy al problema de la forma⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

F (x, y, y0, ..., yn)) = 0;y(x0) = y0;y0(x0) = y

00;

...yn−1)(x0) = y

n−1)0 .

Lo que se espera añadiendo estas condiciones es eliminar los parámetros de la familia n—paramétricade soluciones, obteniendo entonces una solución que sea única. Nótese que se añaden tantas condicio-nes iniciales como orden tiene la ecuación. Por ejemplo, tomemos la ecuación de orden uno (1.2), querecordemos, tenía por solución y : (−π/2,π/2)→ R dada por y(x) = c

cosx, donde c es una constante

arbitraria. Si consideramos el problema de condiciones iniciales½y0 − y tanx = 0y(0) = 1,

5

Page 12: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

tendríamos que necesariamente 1 = y(0) = c/ cos(0) = c, por lo que c = 1 y la única solución delproblema de condiciones iniciales es y(x) = 1/ cosx.Sin embargo esta estrategia no siempre produce los frutos deseados. Sin ir más lejos, el problema½

y2 + (y0)2 = 0y(0) = 0

no tiene solución y ½y0 = 3y2/3

y(0) = 0

tiene al menos dos soluciones dadas por y(x) = 0 e y(x) = x3.

1.3 Sistemas de ecuaciones diferenciales

Un sistema de ecuaciones diferenciales es una expresión de la forma⎧⎪⎪⎪⎨⎪⎪⎪⎩F1(x, y1, y

01, y2, y

02, ..., ym, y

0m) = 0;

F2(x, y1, y01, y2, y

02, ..., ym, y

0m) = 0;

...Fm(x, y1, y

01, y2, y

02, ..., ym, y

0m) = 0;

donde y1, y2, ..., ym son funciones reales a determinar que dependen de x y Fi : A ⊆ R1+2m → R,1 ≤ i ≤ m, son funciones reales de varias variables. Se suele suponer que hay igual número deecuaciones que de incógnitas de manera que todas las ecuaciones son independientes, es decir, ningunapuede deducirse de las demás. Estamos interesados en aquellos sistemas de ecuaciones diferencialesen los que podemos despejar la primera derivada de cada una de las funciones incógnita, es decir,sistemas de la forma ⎧⎪⎪⎪⎨⎪⎪⎪⎩

y01 = f1(x, y1, y2, ..., ym);y02 = f2(x, y1, y2, ..., ym);...y0m = fm(x, y1, y2, ..., ym);

donde fi : A ⊆ R1+m → R, 1 ≤ i ≤ m, son funciones reales. Ejemplos de estos sistemas son½y01 = xy1 + y

22;

y02 = x+ y1 + y2;⎧⎨⎩ y01 = xy1 + y22 − y3;

y02 = x+ y1 + y2y3;y03 = y1y2y3;

En general la resolución de estos sistemas no es posible, salvo en casos excepcionales. Sólo para elcaso de los sistemas de ecuaciones diferenciales lineales con coeficientes constantes, que veremos unpoco más tarde existen algoritmos que permiten el cálculo explícito de las soluciones. Sin embargo,es relativamente sencillo saber cuándo un sistema tiene solución, o más precisamente cuándo unproblema de condiciones iniciales asociado tiene solucón. Primero claro está, debemos definir qué

6

Page 13: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

entendemos por un problema de condiciones iniciales para sistemas de ecuaciones diferenciales. Dichoproblema es un sistema de ecuaciones diferenciales⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

y01 = f1(x, y1, y2, ..., ym);y02 = f2(x, y1, y2, ..., ym);...y0m = fm(x, y1, y2, ..., ym);y1(x0) = y1, y2(x0) = y2, ..., ym(x0) = ym

junto con las condiciones yi(x0) = yi, donde x0, y1, y2, ..., ym son números reales. Por ejemplo⎧⎪⎪⎨⎪⎪⎩y01 = xy1 + y

22 − y3;

y02 = x+ y1 + y2y3;y03 = y1y2y3;y1(0) = 2, y2(0) = 0, y3(0) = 1,

es un problema de condiciones iniciales. Nótese que todas las condiciones iniciales implican el cono-cimiento de la función en 0, es decir, lo siguiente⎧⎪⎪⎨⎪⎪⎩

y01 = xy1 + y22 − y3;

y02 = x+ y1 + y2y3;y03 = y1y2y3;y1(0) = 2, y2(1) = 0, y3(0) = 1,

no sería un problema de condiciones iniciales, ya que conocemos y2 en 1 e y1 e y3 en 0.Para el caso de los problemas de condiciones iniciales para sistemas de ecuaciones diferenciales

tenemos el siguiente resultado análogo al de ecuaciones diferenciales de orden uno, cuya prueba puedeverse en [Jim], aunque pensamos que ésta es de un nivel excesivo para alumnos de primer curso.

Theorem 1 Sea el problema de condiciones iniciales⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

y01 = f1(x, y1, y2, ..., ym);y02 = f2(x, y1, y2, ..., ym);...y0m = fm(x, y1, y2, ..., ym);y1(x0) = y1, y2(x0) = y2, ..., ym(x0) = ym

donde (x0, y1, ..., ym) ∈ A, fi : A ⊆ R1+m → R, 1 ≤ i ≤ m, son funciones reales continuas en elabierto A. Supongamos además que las funciones ∂fi

∂yjexisten y son continuas en A. Entonces existe

una solución del problema de condiciones iniciales anterior yi : I → R, 1 ≤ i ≤ m, definido en unintervalo abierto I de la recta real.

Este resultado es fácil de aplicar. Por ejemplo el problema que consideramos anteriormente⎧⎪⎪⎨⎪⎪⎩y01 = xy1 + y

22 − y3;

y02 = x+ y1 + y2y3;y03 = y1y2y3;y1(0) = 2, y2(0) = 0, y3(0) = 1,

7

Page 14: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

es tal que f1(x, y1, y2, y3) = xy1 + y22 − y3, f2(x, y1, y2, y3) = x+ y1 + y2y3 y f3(x, y1, y2, y3) = y1y2y3son funciones definidas en R4, continuas y las derivadas parciales de cada función respecto de y1, y2e y3 son continuas. Entonces este problema de condiciones iniciales tiene solución única, aunque notengamos ni idea de cómo calcularla.El Teorema 1 tiene una aplicación inmediata a los problemas de condiciones iniciales de orden n.

Por ejemplo, consideremos el problema⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

yn) = f(x, y, y0, ..., yn−1));y(x0) = y0;y0(x0) = y

00;

...yn−1)(x0) = y

n−1)0 ,

y introduzcamos las variables y1 = y, y2 = y0, y3 = y00,...yn = yn−1), con las que el sistema anteriorqueda como ⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

y01 = y2;y02 = y3;...y0n−1 = yn;y0n = f(x, y1, y2, ..., yn);

y1(x0) = y0, y2(x0) = y00, ..., yn(x0) = y

n−1)0 ,

y entonces el Teorema 1 nos garantiza la existencia y unicidad de soluciones siempre que la funciónf sea continua y de clase C1 respecto de las variables y1, ..., yn, es decir, la función y y sus n − 1primeras derivadas.

1.4 Modelos de la química descritos por una ecuación

1.4.1 Descomposición radioactiva

Consideremos un isótopo radioactivo del cual tenemos una cantidad y(t) que varía con el tiempot. Una sustancia radioactiva tiende a descomponerse con el tiempo formando nuevas sustanciasy liberando a su vez una gran cantidad de energía. Se ha comprobado experimentalmente que lavelocidad con que una sustancia radioactiva se descompone es directamente proporcional a la cantidadde sustancia existente en dicho instante, es decir, satisface la ecuación diferencial

y0 = Ky

donde K es una constante que depende de la sustancia considerada. Esta ecuación es de variablesseparadas, y proporciona las soluciones

y(t) = CeKt,

con C la constante proveniente de la integración.

8

Page 15: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

Se define la vida media de una sustancia radioactiva tm, como el tiempo necesario para que unacantidad de dicha sustancia se reduzca a la mitad. Si tenemos una cantidad inicial de una sustanciaN0, su vida media puede calcularse resolviendo primero el problema de condiciones iniciales

y0 = Kyy(0) = N0

¾que proporciona la solución

y(t) = N0eKt,

y posteriormente la ecuaciónN02= N0e

Ktm,

con lo que la vida media es

tm = −log 2

K.

Como podemos observar, la vida media de la sustancia depende de la constante K, que es intrín-seca de cada sustancia.

1.4.2 Ley de enfriamiento de Newton.

Los contenidos de esta sección pueden verse en [NaSa]. Supongamos que tenemos un cuerpo inerteque no produce calor de manera autosuficiente, cómo por ejemplo el agua, una piedra o un reloj.De observaciones experimentales se sabe que la temperatura superficial de dicho cuerpo varía conuna rapidez proporcional a la diferencia de temperatura entre el objeto y su entorno. Es decir, sidenotamos por y(t) la temperatura del cuerpo con el tiempo, ésta verifica la ecuación diferencial

y0 = K(T − y),

donde K es una constante de proporcionalidad y T es la temperatura ambiente en ese momento.Dicho comportamiento es conocido cómo la ley de enfriamiento de Newton. Por ejemplo, si servimosuna taza de café a una temperatura de 950C y al minuto está a 850C, y suponiendo que la habitaciónestá a 200C, ¿cuándo podremos tomar el café si la temperatura idónea para tomarlo es de 650C ?Para responder a esta pregunta, basta con resolver el problema de condiciones iniciales

y0 = K(20− y)y(0) = 95.

¾Obtenemos la solución de la ecuación diferencial, que es de variables separadas calculandoZ

y0(t)

20− y(t)dt =ZKdt,

que nos proporciona la solucióny(t) = Ce−Kt + 20,

dondeK es una constante proveniente de la integración. Imponiendo ahora que y(0) = 95, calculamosdicha constante resolviendo la ecuación

95 = y(0) = C + 20,

9

Page 16: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

con lo que C = 75. Por otra parte, como al minuto de haber servido el café la temperatura de éstehabía descendido hasta los 850C tenemos que

85 = y(1) = 75e−K + 20,

que permite obtener el valor de la constante K = log(13/15). La función

y(t) = 75et log(13/15) + 20

define entonces la evolución de la temperatura de la taza de café con el tiempo. Para averiguar elmomento en el cual la temperatura de dicha taza es de 650C basta resolver la ecuación

65 = 75et log(13/15) + 20,

que da la solución

t =log(9/15)

log(13/15)= 3.57 minutos.

Es decir, aproximadamente unos tres minutos y medio después de haber servido el café.

Aplicación a la climatización de edificios

Supongamos que tenemos un edificio que en un principio vamos a considerar como una unidad, esdecir, no vamos a tener en cuenta el número de habitaciones que tiene (ya veremos posteriormenteeste caso). Si T (t) es la temperatura del edificio vacío en un instante de tiempo t y E(t) es latemperatura en el exterior (que puede ser variable), la ley de Newton afirma que

T 0(t) = K(E(t)− T (t)).Si suponemos constante E(t) = E0, entonces la ecuación puede escribirse como

T 0(t) =dT

dt(t) =

d

dt(T (t)−E0) = −K(T (t)−E0),

que nos proporciona la soluciónT (t)−E0 = ce−Kt; c ∈ R.

Si T (0) es la temperatura inicial del edificio c = T (0)−E0 y la solución esT (t)− E0 = (T (0)−E0)e−Kt.

El tiempo que transcurre desde el valor T (0) − E0 hasta el valor (T (0) − E0)/e es t0 = 1/K, querecibe el nombre de constante de tiempo del edificio, y que suele medirse en horas. Un valor normalpara un edificio cerrado oscila entre la 2 y las 4 horas para la constante 1/K.

Si el edificio no esta vacío se produce un calentamiento adicional debido al calor corporal, luces,máquinas en funcionamiento, etcétera, cuya razón denotaremos porH(t). Si adicionalmente el edificiodispone de un sistema de calefacción o de aire acondicionado, se produce un aumento o disminuciónde la temperatura que denotaremos por U(t). Entonces, la ecuación anterior queda como

T 0(t) = K(E(t)− T (t)) +H(t) + U(t),que escribiéndola como

T 0(t) = −KT (t) + (KE(t) +H(t) + U(t))vemos claramente que es lineal.

10

Page 17: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

Example 1 Supongamos una mañana de sábado caluroso que en una tienda, mientras las personasestán trabajando el aire acondicionado mantiene la temperatura de la tienda a 20 oC. A mediodiase apaga el aparato de aire acondicionado y la gente se va a sus casas. La temperatura exteriorpermanece constante a 35 oC. Si la constante de tiempo del edificio es de 4 horas, ¿cuál será latemperatura del edificio a las 2 de la tarde? ¿En que momento la temperatura en el interior será de27 oC?

Para responder a esta pregunta planteamos la ecuación diferencial

T 0(t) =1

4(35− T (t)),

dado que H(t) = U(t) = 0, junto con la condición inicial T (0) = 20, que se corresponde con latemperatura al mediodía. La solución de la ecuación diferencial será

T (t) = ce−t/4 + 35,

y con la condición inicial obtenemos c que nos proporciona la solución

T (t) = −15e−t/4 + 35.Así a las dos de la tarde la temperatura será de

T (2) = −15/√e+ 35 ' 25.9 oC.

El momento t0 en que la temperatura será de 27 oC se obtendrá al resolver la ecuación

27 = −15e−t0/4 + 35,que nos da

t0 = −4 log8

15' 2.51 horas

es decir, aproximadamente a la 2 horas y media.

Example 2 Un calentador solar de agua consta de un tanque de agua y un panel solar. El tanquese encuentra bien aislado y tiene una constante de tiempo de 64 horas. El panel solar genera 2000kilocalorías por hora durante el día y el tanque tiene una capacidad calorífica de 2 oC por cada 1000kilocalorías. Si el agua se encuentra inicialmente a 30 oC y la temperatura ambiente es de 20 oC,¿cuál será la temperatura del tanque al cabo de 12 horas de luz solar?

En este casoU(t) = 2 oC/1000Kcal × 2000Kcal/h = 4 oC/h,

con lo que la ecuación diferencial que modeliza el fenómeno es

T 0(t) =1

64(20− T (t)) + 4,

junto con la condición inicial T (0) = 30 oC. La solución de dicha ecuación diferencial es

T (t) = ce−t/64 + 276,

de donde la solución del problema de condiciones iniciales es

T (t) = −246e−t/64 + 276.Al cabo de 12 horas la temperatura del agua del tanque es

T (12) = 72.06 oC.

11

Page 18: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

1.4.3 Problemas de mezclas químicas.

Las ecuaciones diferenciales también tienen aplicación dentro de los problemas de mezclas. En estosproblemas aparecen involucradas sustancias, las cuales se mezclan dentro de un recipiente de volumendado V0. Supongamos que inicialmente teníamos una cantidad de X0 kilogramos de una sustanciadiluida en una concentración de X0/V0 Kg/m3, y que introducimos otra solución que contiene unaconcentración b Kg/m3 de dicha sustancia la cual es introducida en el recipiente a una velocidad dee m3/sg. Además sacamos parte de la solución que se produce dentro del recipiente a una velocidadde f m3/sg. Si denotamos por y(t) la cantidad de sustancia en cuestión dentro del recipiente porunidad de tiempo, tenemos que la variación de dicha cantidad viene dada por

y0 = ve − vs,

donde ve y vsson las velocidades de entrada y salida de dicha sustancia respectivamente. Comove = be Kg/sg y vs = f · y(t)/V (t) Kg/sg donde V (t) = V0 + et− ft es el volumen de disolución enel recipiente por unidad de tiempo, el problema de condiciones iniciales

y0 = be− yV0+et−ftf

y(0) = X0

¾modeliza la cantidad de sustancia que hay en el recipiente por unidad de tiempo.

Por ejemplo, supongamos una tanque que contiene originalmente 400 litros de agua limpia. Ver-temos en el tanque agua que contiene 0.05 kilogramos de sal por litro a una velocidad de 8 litrospor minuto, y se deja que la mezcla salga del recipiente a la misma rapidez. Vamos a determinar lacantidad de sal que habrá en el recipiente al cabo de 20 minutos. Para ello, teniendo en cuenta queel volumen se mantiene constante, planteamos el problema de condiciones iniciales

y0 = 0.4− y400

y(0) = 0.

¾La ecuación diferencial implicada es lineal. La ecuación homogénea y0 = y

400tiene por solución

y(t) = Ket/400, donde K es la constante procedente de la integración. Por el método de variaciónde constantes calculamos la solución de la ecuación no homogénea imponiendo que y(t) = K(t)et/400

sea solución de la misma. Entonces

K 0(t)et/400 +K(t)et/400

400= 0, 4 +K(t)

et/400

400,

con lo que

K(t) = 0.4

Ze−t/400dt = −160e−t/400 + C.

Así la solución de la ecuación diferencial será

y(t) = −160 + Cet/400.

Además, como y(0) = 0, tenemos que0 = −160 + C,

12

Page 19: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

con lo que C = 160, y la solución del problema de condiciones iniciales es

y(t) = 160(et/400 − 1).

A los 20 minutos, la cantidad de sal que hay dentro del tanque es

y(20) = 160(e1/20 − 1) ' 8.20338 kilogramos.

1.4.4 Cinética de las reacciones químicas

Esta sección esta obtenida de [MaMy].Suponemos una reacción química de forma que dos reactivosA y B dan lugar a unos productos C y D, esquematizado como

aA+ bB → cC + dD.

Si denotamos por [A] la concentración en moles por litro del reactivo A, se verifica que las velocidadesde descomposición o formación de cada uno de los elementos de la reacción satisfacen la relación

−1a

d[A]

dt= −1

b

d[B]

dt=1

c

d[C]

dt=1

d

d[D]

dt.

Nótese que d[A]dtserá negativo al estar desapareciendo el reactivo mientras que por ejemplo d[C]

dtserá

positivo. La ley de velocidad diferencial establece que

−1a

d[A]

dt=1

c

d[C]

dt= k[A]n[B]m,

donde n y m son enteros positivos o la mitad de números enteros positivos. En general no puedeestablecerse una relación directa entre dichos números y los coeficientes estequeométricos a y b. Laconstante k recibe el nombre de constante de reacción.No obstante, hay reacciones que se llaman elementales, como

NO +O3 → NO2 +O2,

en las cuales dos moléculas chocan para dar lugar a los productos, y en las que los número n y mson iguales a uno, es decir, podemos escribir que

−d[NO]dt

=d[NO2]

dt= k[NO2][O2].

A modo de ejemplo, consideremos la reacción elemental

A+B → C +D,

supongamos que incialmente hay cuatro y dos moles/litro de cada reactivo, y que al cabo de unohora tenemos un mol/litro de C. Vamos a determinar la cantidad de producto C que tendremos alas 2 horas. Denotemos por x(t) la concentración de C en cada instante. Dado que

−d[A]dt

= −d[B]dt

=d[C]

dt,

13

Page 20: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

las concentraciones de los reactivos son 4 − x(t) y 2 − x(t), respectivamente. Por otra parte, laecuación

d[C]

dt= k[A][B],

se reduce ax0 = k(4− x)(2− x),

siendo x(0) = 0. Resolvemos la ecuación diferencial

1

2log

x(t)− 4x(t)− 2 =

Zx0(t)dt

(4− x(t))(2− x(t)) =Zkdt = kt+ c,

y de la condición inicial x(0) = 0, tenemos que

c =1

2log 2.

Por otra parte, como x(1) = 1, tenemos que

1

2log 3 = k +

1

2log 2,

por lo que la constante de la reacción es

k =1

2log

3

2.

Entonces

logx(t)− 4x(t)− 2 = t log

3

2+ log 2 = log

Ã2

µ3

2

¶t!,

de donde

x(t) = 41−

¡32

¢t1− 2

¡32

¢t ,y por lo tanto

x(2) = 41−

¡32

¢21− 2

¡32

¢2 = 10

7moles/litro.

1.5 Modelos de la química descritos por un sistema de ecua-ciones

1.5.1 Problemas de mezclas con varios recipientes

Supongamos que tenemos dos recipientes conteniendo ambos una cierta sustancia en disolución.Podemos pensar por ejemplo en agua salada. Los recipientes estan conectados entre sí, de maneraque puede pasar cierta cantidad de sustancia de un recipiente al otro y viceversa. Además, cadarecipiente puede estar en contacto con el exterior, permitiendo que entren sustancias del exterior ydejando salir también sustancias de los recipientes al exterior. En este tipo de problemas se tratade determinar la concentración de sustancia disuelta en cada recipiente. Consideremos el siguienteejemplo.

14

Page 21: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

Example 3 Dos grandes tanques, cada uno con 100 litros de líquido se encuentran interconectadospor medio de tubos. El líquido fluye del tanque A (ver dibujo posterior) hacia el tanque B a razónde 3 l/m y de B hacia A a razón de 1 l/m. El líquido contenido en el interior de cada tanque semantiene bien agitado. Una solución de salmuera con una concentración de 2Kg/l fluye del exteriorhacia el tanque A a razón de 6 l/m. La solucición (diluida) fluye hacia el exterior del tanque A arazón de 4 l/m del tanque B a 2 l/m. Si inicialmente el tanque A contenía agua pura y el B 200 kgde sal, determinar la cantidad de sal en cada instante.

Para resolver el problema, llamemos x(t) e y(t) las cantidades de sal en cada instante en lostanques A y B, respectivamente. Recordemos los problemas de mezclas con un único recipientevistos anteriormente. De estos problemas, vemos que la variación de la cantidad de sal en A es

x0(t) = ve − vs

donde ve es la velocidad de entrada de sal y vs es la velocidad de salida. Para el caso del tanque Ase tiene que

ve = 6 l/m · 2Kg/l + 1 l/m ·y(t)

100Kg/l

y

vs = 4 l/m ·x(t)

100Kg/l + 3 l/m · x(t)

100Kg/l = 7 l/m · x(t)

100Kg/l

de donde obtenemos la ecuación diferencial

x0(t) = − 7

100x(t) +

1

100y(t) + 12.

Procediendo de igual manera con el tanque B se tiene que

y0(t) = ve − vs

donde ahora

ve = 3 l/m ·x(t)

100Kg/l

y

vs = 1 l/m ·y(t)

100Kg/l + 2 l/m · y(t)

100Kg/l = 3 l/m · y(t)

100Kg/l,

15

Page 22: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

de donde obtenemos la ecuación

y0(t) =3

100x(t)− 3

100y(t),

y por consiguiente el problema de condiciones iniciales⎧⎪⎪⎪⎨⎪⎪⎪⎩x0(t) = − 7

100x(t) +

1

100y(t) + 12,

y0(t) =3

100x(t)− 3

100y(t),

x(0) = 0; y(0) = 200.

El sistema es no autónomo, y puede escribirse de forma matricial comoµx0(t)y0(t)

¶=

µ− 7100

1100

3100

− 3100

¶µx(t)y(t)

¶+

µ120

¶.

Dejamos la resolución del sistema al alumno. Otros problemas de este tipo se propondrán al finaldel tema.

1.5.2 Climatización de edificios con varias estancias

Anteriormente vimos una aplicación de las ecuaciones diferenciales a la climatización de edificios conuna sola estancia. Esta aplicación se basaba en la ley de enfriamiento de los cuerpos de Newton.Vamos a ver qué pasa si el edificio tiene más de una estancia, como el del siguiente ejemplo.

Example 4 Un edificio consta de dos zonas A y B (veáse la siguiente figura). La zona A es calentadapor un calefactor que genera 80000Kcal/h. La capacidad calorífica de la zona A es de 1/4 oC porcada 1000 Kcal. Las constantes de tiempo de transferencia de calor son entre la zona A y el esterior4 horas, 2 horas entre las zonas A y B y 5 horas entre la zona B y el exterior. Si la temperaturaexterior es de 0 oC, determinar la temperatura de cada zona.

Para resolver el problema, llamemos x(t) e y(t) a las temperaturas de las zonas A y B, respecti-vamente. Entonces

x0(t) =1

4(0− x(t)) + 1

2(y(t)− x(t)) + U(t),

dondeU(t) =

1

4oC/1000Kcal · 80.000Kcal/h = 20 oC/h,

16

Page 23: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

de donde conseguimos la ecuación

x0(t) = −34x(t) +

1

2y(t) + 20.

Por otra parte, para la zona B tenemos

y0(t) =1

5(0− y(t)) + 1

2(x(t)− y(t)),

con lo que tenemos el sistema ½x0(t) = −3

4x(t) + 1

2y(t) + 20,

y0(t) = 12x(t)− 7

10y(t).

Dejamos la resolución del sistema al alumno. Otros ejemplos de este tipo serán estudiados en losejercicios.

1.5.3 Cinética de las reacciones químicas

No todas las reacciones químicas son elementales, aunque la mayoría de éstas pueden describirsemediante varias de ellas. Por ejemplo, la reacción en solución acuosa

H2O2 + 2Br− + 2H+ → Br2 + 2H2O

no es el resultado del choque simultáneo de dos iones hidrógeno, dos iones bromuro y una moléculade peróxido de hidrógeno (la probabilidad de que cinco especies estén en el mismo lugar al mismotiempo es muy pequeña), por lo que el proceso sigue las dos estapas siguientes:

Br− +H+ +H2O2 → HOBr +H2O,

H+ +HOBr +Br− → H2O +Br2,

en ninguna de las cuales se produce la interacción de más de tres partículas. Otras reacciones puedenimplicar muchos más pasos.Consideremos ahora la reacción hipotética

2A+B → 2C +D,

de la que suponemos el siguiente mecanismo

A+B → E + C,

A+E → D + C.

Como sabemos de la primera reacción

−d[A1]dt

= −d[B]dt

=d[C1]

dt=d[E1]

dt= k1[A][B],

donde los subíndices indican la variación de cada substancia como consecuencia de la primera reac-ción. Por otra parte, de la segunda reacción

−d[A2]dt

= −d[E2]dt

=d[C2]

dt=d[D]

dt= k2[A][E].

17

Page 24: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

Es obvio que

d[A]

dt=

d[A1]

dt+d[A2]

dt,

d[C]

dt=

d[C1]

dt+d[C2]

dt,

d[E]

dt=

d[E1]

dt− d[E2]

dt.

Entonces

−d[A]dt

= k1[A][B] + k2[A][E] = [A](k1[B] + k2[E]),

d[E]

dt= k1[A][B]− k2[A][E] = [A](k1[B]− k2[E]).

Si suponemos que la concentración del elemento B permanece constante, tenemos un sistema de dosecuaciones diferenciales. Se trataría de un sistema que no podríamos resolver analíticamente, aunquetendría solución.

La reacción del Brusselator

La reacción del Brusselator sigue el siguiente esquema

A → X,

B +X → Y +D,

2X + Y → 3X,

X → E,

donde las concentraciones [A], [B], [D] y [E] son constantes y las concentraciones [X] e [Y ] siguenla ley

d[X]

dt= k1[A]− k2[B][X] + k3[X]2[Y ]− k4[X],

d[Y ]

dt= k2[B][X]− k3[X]2[Y ],

siendo ki las cosntantes de reacción de las cuatro reacciones que definen la reacción global, y sientolas concentraciones iniciales de X e Y nulas (ver [McPo]). Este modelo da lugar a reacciones en lasque no es predecible el comportamiento a largo plazo y que podríamos denominar “caóticos”.

1.6 Ejercicios

1. El isótopo radioactivo del Torio 234 se desintegra a una rapidez proporcional a la cantidadexistente en ese instante de tiempo. Si 100 miligramos de este material se reducen a 82.04miligramos en un semana, ¿cuánto Torio tendremos al cabo de tres semanas? ¿Cuánto tiempotiene que transcurrir para que la cantidad de Torio se reduzca a la mitad?

18

Page 25: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

2. De observaciones experimentales se sabe que la temperatura superficial de un objeto cambiacon una rapidez proporcional a la diferencia de temperatura del objeto y su entorno. Estehecho es conocido como la ley de enfriamiento de Newton. Si la temperatura de una taza decafé es de 950C recién servida, y al minuto se enfrió a 880C en un cuarto que está a 200C,¿cuánto tiempo debe de transcurrir para que se enfrie hasta los 650C?

3. Supongamos que decidís matar al profesor de ecuaciones diferenciales. Una vez perpetrado elhecho, se encuentra el cuerpo en el despacho del mismo que está a una temperatura de 200Ca las 6 de la tarde. La temperatura corporal de cadáver era de 350C en dicho momento. Unahora más tarde la temperatura era de 330C. ¿A que hora se produjo el horripilante y brutalsuceso?

4. Un tanque contiene originalmente 400 litros de agua limpia. Entonces se vierte en el tanqueagua que contiene 0.05 kilogramos de sal por litro a una velocidad de 8 litros por minuto, y sedeja que la mezcla salga del tanque con la misma rapidez. Determinar la sal que habrá en eltanque después de 20 minutos.

5. Un tanque contiene inicialmente 1000 litros de solución salina que contiene 10 Kg. de sal. Otrasolución salina que contiene 25 Kg. de sal por litro se vierte en el tanque a la razón de 10 l/minmientras que simultaneamente, la solución bien mezclada sale del tanque a razón de 15 l/min .Encontrar la cantidad de sal que hay en el tanque en un momento t.

6. En una galería subterranea de 15 × 15 × 1.2m hay un 0.2% de CO2, mientras que el aire delexterior tiene un 0.055% de CO2. Se instalan ventiladores que introducen en la galería 9 metroscúbicos de aire del exterior por minuto, de forma que por el otro extremo de la galería sale lamisma cantidad de aire. ¿Qué concentración de CO2 habrá al cabo de 20 minutos en la galería?

7. En una mañana de sábado, mientras las personas trabajan, un calefactor mantiene la tempe-ratura interior de un edificio a 21 oC. A mediodía se apaga el calentador y la gente regresa acasa. La temperatura exterior permanece constante a 12 oC durante el resto de la tarde. Si laconstante de tiempo del edificio es de 3 horas, ¿en qué momento la temperatura interior deledificio será de 16 oC?

8. Un taller mecánico sin calefacción ni aire acondicionado tiene una constante de tiempo de 2horas. Si la temperatura exterior varía según la función E(t) = 30−15 cos(2πt/24), determinarla temperatura del taller a lo largo del día.

9. En un día caluroso con una temperatura exterior de 40 oC, se enciende dentro de un edificioun aparato aire acondicionado que disipa 24000 kilocalorías por hora. El aprovechamiento esde medio grado por cada 1000 kilocalorías y la constante de tiempo del edificio es de 3 horas.Si inicialmente la temperatura del edificio era de 35 oC, determinar la temperatura al cabode 3 horas. ¿Cuál es el valor máximo de temperatura que puede tener el edificio en estascondiciones?

10. Dos tanques que contienen cada uno 50 litros de líquido se ecuentran interconectados por mediode dos tubos. El líquido fluye del tanque A hacia el tanque B a razón de 4 litros por minuto ydel tanque B al tanque A a 1 litro por minuto. El líquido contenido en cada tanque se mantieneprefectamente agitado. Hacia el tanque A entra del exterior agua a razón de 3 litros por minuto

19

Page 26: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

y la solución fluye hacia el exterior por el tanque B a la misma velocidad. Si inicialmente eltanque A contiene 25 kilos de sal y el tanque B no contiene nada de sal, determinar la cantidadde sal en cada instante de tiempo.

11. Dos grandes tanques, cada uno de 50 litros se encuentran interconectados por un tubo. Ellíquido fluye del tanque A hacia el B a razón de 5 litros por minuto. El líquido contenido en elinterior de cada tanque se mantiene bien agitado. Una salmuera con concentración de 3 kilospor litro fluye del exterior hacia el tanque A a razón de 5 litros por minuto, saliendo haciael exterior a la misma velocidad por un tubo situado en el tanque B. Si el tanque A contieneinicialmente 50 kilos de sal y el tanque B contiene 100 kilos, determinar la cantidad de sal encada instante.

12. Un edificio consta de dos zonas A y B. Solamente la zona A es calentada por un calefactor, quegenera 80.000 kilocalorias por hora. La capacidad calorífica de la zona A es de 1/4 de gradoCelsius por cada 1000 kilocalorias. Las constantes de transferencia de calor son 4 horas entrela zona A y el exterior, 5 horas entre la zona B y el exterior y 3 horas entre las dos zonas. Si latemperatura exterior es de 0 grados Centígrados, ¿a qué temperatura puede llegar a enfriarsela zona B?

Nota: las constantes de transferencia de calor son las inversas de las constantes que aparecenel la ley de enfriamiento de Newton.

20

Page 27: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

13. Para fines de refrigeración una casa consta de dos zonas: la zona de ático A y la zona B ohabitacional. El área habitacional es refrigerada por medio de una unidad de aire acondicionadode 2 toneladas que disipa 24000 kilocalorias por hora. La capacidad calorífica de la zona B esde 1/2 grado centígrado por cada 1000 kilocalorias. La constantes de transferencia de calor son2 horas entre la zona A y el exterior, 4 horas entre la zona B y el exterior y 4 horas entre ambaszonas. Si la temperatura exterior permanece a 40 grado centígrados, ¿a qué temperatura puedellegar a calentarse la zona del ático?

21

Page 28: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a las ecuaciones diferenciales

22

Page 29: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Capítulo 2

Métodos de un paso

Sumario. Métodos de Taylor. Métodos de Runge—Kutta: tablas de Butcher.Análisis del error global. Extrapolación de Richardson.

2.1 Introducción

Consideramos un problema de condiciones iniciales de la forma½y0 = f(t,y),y(t0) = y0,

(2.1)

donde la función f : Ω ⊆ Rm+1 → Rm es suficiente regular para que dicho problema tenga soluciónúnica. Por ejemplo, f y ∂f

∂yi, i = 1, ...,m continuas. Sin embargo, dada un problema de condiciones

iniciales arbitrario, es muy posible que no sepamos cómo hallar dicha solución. Basta considerar elproblema ½

y0 = ey2,

y(0) = 4.

Es por ello importante determinar métodos que permitan obtener aproximaciones de dichas solucio-nes, que existen, pero son desconocidas.En esencia, dado el problema (2.1), denotemos su solución por y(t; t0,y0) y buscamos cómo

aproximar el valor de y(tf ; t0,y0), para un cierto tf > t0 (análogamente se haría para tf < t0). Losmétodos que vamos a estudiar consisten en generar una sucesión y0,y1, ...,yn de manera que yn seaun valor aproximado de y(tf ; t0,y0). Vamos a ver en este tema varias maneras de construir dichasucesión.

2.2 Métodos de Taylor

Este método se basa en suponer que la solución y(t; t0,y0) es suficientemente diferenciable en unentorno de t0. Si t1 está en dicho entorno y denotando h = t1 − t0, entonces

y(t1; t0,y0) = y(t0; t0,y0) +1

1!y0(t0; t0,y0)h+

1

2!y00(t0; t0,y0)h

2 + ...+

+1

n!yn)(t0; t0,y0)h

n +O(hn),

23

Page 30: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

donde O(hn) es denota una función g(h) para la cual existe una constante positiva k tal que |g(h)| ≤k|hn|. Entonces

y(t0; t0,y0) = y0,

y0(t0; t0,y0) = f(t0,y0) = f1(t0,y0),

y00(t0; t0,y0) =d

dty0(t0; t0,y0) =

d

dtf1(t0,y0)

=∂

∂tf1(t0,y0) +

∂yf1(t0,y0)y

0(t0; t0,y0)

=∂

∂tf1(t0,y0) +

∂yf1(t0,y0)f(t0,y0)

= f2(t0,y0),

donde por ∂∂yf1(t0,y0) denotamos el gradiente de f1(t0,y0).

y3)(t0; t0,y0) =d

dty00(t0; t0,y0) =

d

dtf2(t0,y0)

=∂

∂tf2(t0,y0) +

∂yf2(t0,y0)y

0(t0; t0,y0)

=∂

∂tf2(t0,y0) +

∂yf2(t0,y0)f(t0,y0)

= f3(t0,y0).

Inductivamente, si yn−1)(t0; t0,y0) = fn−1(t0,y0), entonces

yn)(t0; t0,y0) =d

dtyn−1)(t0; t0,y0) =

d

dtfn−1(t0,y0)

=∂

∂tfn−1(t0,y0) +

∂yfn−1(t0,y0)y

0(t0; t0,y0)

=∂

∂tfn−1(t0,y0) +

∂yfn−1(t0,y0)f(t0,y0)

= fn(t0,y0).

Así, sustituyendo en la fórmula original

y(t1; t0,y0) = y0 +1

1!f1(t0,y0)h+

1

2!f2(t0,y0)h

2 + ...+

+1

n!fn(t0,y0)h

n +O(hn),

con lo que

y1 = y0 +1

1!f1(t0,y0)h+

1

2!f2(t0,y0)h

2 + ...+1

n!fn(t0,y0)h

n

es una aproximación de y(t1; t0,y0), esto es

y(t1; t0,y0) ≈ y1 = y0 +1

1!f1(t0,y0)h+

1

2!f2(t0,y0)h

2 + ...+1

n!fn(t0,y0)h

n. (2.2)

Veamos qué forma particular tiene esta aproximación para diferentes valores de n.

24

Page 31: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Figura~2.1: El método de Euler. El error e1 es |y1 − y(t1; t0, y0)|.

2.2.1 Método de Euler

El método de Taylor con n = 1, recibe el nombre de método de Euler y fue quizás el primer métodonumérico generado mucho antes de la existencia de ordenadores. Como vemos, la expresión (2.2)queda de la forma

y(t1; t0,y0) ≈ y1 = y0 +1

1!f(t0,y0)h, (2.3)

y tiene un claro significado geométrico. Imaginemos que m = 1, es decir, se trata de una ecuacióndiferencial. Entonces la recta tangente de la solución y(t; t0, y0) para t = t0 tiene la forma

y − y(t0; t0, y0) = y0(t0; t0, y0)(t− t0),

y sustituyendo cada elemento de la expresión anterior por su valor obtenemos

y − y0 = f(t0, y0)(t− t0).

Si sustituimos t por t1 en la recta anterior obtenemos

y(t1; t0, y0) ≈ y1 = y0 + f(t0, y0)h,

que es la expresión (2.3) para ecuaciones de dimensión uno. La figura 2.1 nos muestra gráficamenteel método.

Veamos cómo funciona el método de Euler con un ejemplo. Consideremos el problema de condi-ciones iniciales ½

y0 = y,y(0) = 1,

25

Page 32: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

que como sabemos, tiene por solución y(t; 0, 1) = et. Tomemos t1 = 0.1, y estimemos por el métodode Euler y(0.1; 0, 1). Como h = 0.1, entonces

y1 = y0 + y0h = 1 + 0.1 = 1.1.

Como vemos, el error cometido

e1 = |y(0.1; 0, 1)− y1| = |e0.1 − 1.1| ≈ 0.00517092.Si ahora, tomamos t1 = 1, entonces h = 1 e

y1 = y0 + y0h = 1 + 1 = 2,

y el errore1 = |y(1; 0, 1)− y1| = |e− 2| ≈ 0.718282,

esto es, el error aumenta considerablemente.Esto se debe a que estamos tomando aproximaciones locales. Para reducir el error se procede de

la siguiente manera. Tomamos una partición P del intervalo [t0, tf ], esto es P = t0 < t1 < t2 < ... <tn−1 < tn = tf . Definimos hi = ti+1− ti, i = 0, 1, ..., n−1. Construimos la sucesión yn de la siguientemanera

y1 = y0 + f(t0,y0)h0.

Ahora bien, y1 es una aproximación de y(t1; t0,y0). Para construir y2, tomamos la aproximaciónmediante el método de Euler del problema½

y0 = f(t,y),y(t1) = y1,

dado pory2 = y1 + f(t1,y1)h1,

y de forma recurrente para i = 1, ..., n,

yi = yi−1 + f(ti−1,yi−1)hi−1.

En general, suele tomarse hi = h, i = 0, 1, ..., n− 1, cantidad que suele llamarse tamaño de paso y nel número de pasos. En este caso el método de Euler queda como

yi = yi−1 + f(ti−1,yi−1)h = yi−1 + f(t0 + (i− 1)h,yi−1)h,para i = 1, ..., n.En el ejemplo anterior, tomamos h = 0.1 y calculamos

y1 = y0 + f(0, y0)h = 1 + 1 · 0.1 = 1.1,y2 = y1 + f(h, y1)h = 1.1 + 1.1 · 0.1 = 1.21,y3 = y2 + f(2h, y2)h = 1.21 + 1.21 · 0.1 = 1.331,y4 = y3 + f(3h, y3)h = 1.331 + 1.331 · 0.1 = 1.4641,y5 = y4 + f(4h, y4)h = 1.4641 + 1.4641 · 0.1 = 1.61051,y6 = y5 + f(5h, y5)h = 1.61051 + 1.61051 · 0.1 = 1.77156,y7 = y6 + f(6h, y6)h = 1.77156 + 1.77156 · 0.1 = 1.94872,y8 = y7 + f(7h, y7)h = 1.94872 + 1.94872 · 0.1 = 2.14359,y9 = y8 + f(8h, y8)h = 2.14359 + 2.14359 · 0.1 = 2.35795,y10 = y9 + f(9h, y9)h = 2.35795 + 2.35795 · 0.1 = 2.59374,

26

Page 33: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

y ahora los errores sonei = |ei∗0.1 − yi|,

para i = 1, ..., 10, que nos da la siguiente tabla aproximada

e1 e2 e3 e4 e5 e6 e7 e8 e9 e100.005 0.011 0.019 0.028 0.038 0.051 0.065 0.082 0.102 0.125

Como vemos, el error ha disminuido notablemente, a pesar de que en los pasos intermedios la apro-ximación del método de Euler no coincide en su condición inicial con la solución del problema decondiciones original. Vemos no obstante que los errores se van acumulando desde e1 hasta e10, de ma-nera que estos van creciendo. Sin embargo, si disminuimos el tamaño de paso, vemos en la siguientetabla como los errores al final dismuyen

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.000010.718 0.125 0.013 0.001 0.00014 0.000014

Como vemos, al dividir el tamaño de paso h por diez, el error final aproximadamente también haceesta operación. Veremos posteriormente una explicación a este hecho.

2.2.2 Método de Taylor de orden 2

Si hacemos n = 2, observamos que el método de Taylor queda de la siguiente forma:

y(t1; t0,y0) ≈ y1 = y0 +1

1!f1(t0,y0)h+

1

2!f2(t0,y0)h

2,

y dado quef1(t0,y0) = f(t0,y0)

y

f2(t0,y0) =∂

∂tf(t0,y0) + f(t0,y0)

∂yf(t0,y0),

se puede reescribir como

y(t1; t0,y0) ≈ y1 = y0 + f(t0,y0)h+1

2

µ∂

∂tf(t0,y0) + f(t0,y0)

∂yf(t0,y0)

¶h2.

Si dividimos el intervalo [t0, tf ] en n intervalos igualmente espaciados siendo el tamaño de pasoh = (tf − t0)/n, el valor y(tf ; t0,y0) con yn, que puede estimarse con la recurrencia

yi = yi−1 + f(t0 + (i− 1)h,yi−1)h

+1

2

µ∂

∂tf(t0 + (i− 1)h,yi−1) + f(t0 + (i− 1)h,yi−1)

∂yf(t0 + (i− 1)h,yi−1)

¶h2,

para i = 1, ..., n.Si consideramos el problema de condiciones iniciales anterior½

y0 = y,y(0) = 1,

27

Page 34: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

tenemos que f(t, y) = y, por lo que ∂f∂t(t, y) = 0 y ∂f

∂y(t, y) = 1, y así la recurrencia anterior se expresa

de la forma

yi = yi−1 + yi−1h+1

2yi−1h

2 =

µ1 + h+

h2

2

¶yi−1,

para i = 1, ..., n. Tomando h = 0.1 (n = 10) y calculando obtenemos

y1 =

µ1 + h+

h2

2

¶y0 = 1.105,

y2 =

µ1 + h+

h2

2

¶y1 = 1.22103,

y3 =

µ1 + h+

h2

2

¶y2 = 1.34923,

y4 =

µ1 + h+

h2

2

¶y3 = 1.4909,

y5 =

µ1 + h+

h2

2

¶y4 = 1.64745,

y6 =

µ1 + h+

h2

2

¶y5 = 1.82043,

y7 =

µ1 + h+

h2

2

¶y6 = 2.01157,

y8 =

µ1 + h+

h2

2

¶y7 = 2.22279,

y9 =

µ1 + h+

h2

2

¶y8 = 2.45618,

y10 =

µ1 + h+

h2

2

¶y9 = 2.71408,

y ahora los errores sonei = |ei∗0.1 − yi|,

para i = 1, ..., 10, que nos da la siguiente tabla aproximada

e1 e2 e3 e4 e5 e6 e7 e8 e9 e100.00017 0.0004 0.0006 0.0009 0.0013 0.0017 0.0022 0.0028 0.0034 0.0042

Como vemos, el error decrece notablemente en comparación al obtenido al aplicar el método deEuler. Además, los errores para diferentes tamaños de paso son

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.000010.2183 0.0042 0.000045 4.5 · 10−7 4.5 · 10−9 4.5 · 10−11

Como vemos, se mejora notablemente el error con respecto al método de Taylor, siendo éste ademásde orden dos, es decir, al dividir por 10 el tamaño de paso, el error es aproximadamente el del pasoanterior al cuadrado.

28

Page 35: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Aumentando el orden del método de Taylor, seguimos disminuyendo el error producido. Sinembargo, el método de Taylor presenta el problema de que hay que derivar sucesivamente las funcionesque determinan la ecuación o sistema de ecuaciones diferenciales, y esto frecuentemente no es tareafácil. Además, en el caso del ejemplo anterior para la ecuación y0 = y, el incremento del ordenno mejora el algoritmo dado que fm(t, y) = 0 para m ≥ 3. Veamos a continuación una familia demétodos que presentan un avance en este sentido, y que se conocen como métodos de Runge—Kutta.

2.3 Métodos de Runge—Kutta de orden dos

Este método se basa en la ecuación integral asociada al problema de condiciones iniciales½y0 = f(t,y),y(t0) = y0,

que se construye de la siguiente manera. Como y(t; t0,y0) es solución

y(t; t0,y0)− y(t0; t0,y0) = y(t; t0,y0)− y0

=

Z t

t0

y(s; t0,y0)ds =

Z t

t0

f(s,y(s; t0,y0))ds.

Entonces, dicha función puede calcularse a partir de la ecuación integral

y(t)− y0 =Z t

t0

f(s,y(s))ds.

Los métodos de Runge—Kutta se basan en obtener aproximaciones de la integralZ t

t0

f(s,y(s))ds

mediante algún método de integración numérica apropiado.A modo de primer ejemplo, supongamos que dicha integral se aproxima mediante el método del

trapecio, esto es Z tf

t0

f(s,y(s))ds ≈ h2[f(t0,y(t0)) + f(tf ,y(tf))] ,

siendo h = tf−t0. El valor f(t0,y(t0)) = f(t0,y0) es conocido. Sin embargo f(tf ,y(tf)) es desconocidodado que y(tf) = y(tf ; t0,y0) es precisamente el valor que tenemos que aproximar mediante elmétodo. Para obtener un valor aproximado de dicho valor para poder aplicar el método, obtenemoséste por un algoritmo de los estudiados anteriormente para tamaño de paso h, por ejemplo

y∗1 = y0 + hf(t0,y0),

que es el método de Euler. Entonces

y1 = y0 +h

2[f(t0,y0) + f(tf ,y

∗1)] ,

29

Page 36: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

será la aproximación de y(tf ; t0,y0) que buscábamos. Si tomamos un tamaño de paso h = (tf−t0)/n,se tiene que de forma compacta

y∗i+1 = y0 + hf(t0 + ih,yi),

yi+1 = y0 +h

2

£f(t0 + ih,yi) + f(t0 + (i+ 1)h,y

∗i+1)

¤que se conoce como método de Heun. Como vemos, hay dos etapas, una inicial donde se calculay∗i y otra posterior donde ya se obtiene la aproximación propiamente dicha. Por ello, se dice quees un método de Runge—Kutta de dos etapas, y como veremos posteriormente de orden dos. Sueleescribirse de forma más compacta como⎧⎨⎩ g1 = hf(ti−1,yi−1),

g2 = hf(ti−1 + h,yi−1 + g1),yi = yi−1 +

12(g1 + g2).

Veamos cómo se implementa este método en nuestro ejemplo de costumbre½y0 = y,y(0) = 1.

Los valores que obtenemos para tamaño de paso h = 0.1 son½y∗1 = (1 + h) y0 = 1.1,y1 = y0 +

h2(y0 + y

∗1) = 1.105,½

y∗2 = (1 + h) y1 = 1.2155,y2 = y1 +

h2(y1 + y

∗2) = 1.22103,½

y∗3 = (1 + h) y2 = 1.34313,y3 = y2 +

h2(y2 + y

∗3) = 1.34923,½

y∗4 = (1 + h) y3 = 1.48416,y4 = y3 +

h2(y3 + y

∗4) = 1.4909,½

y∗5 = (1 + h) y4 = 1.63999,y5 = y4 +

h2(y4 + y

∗5) = 1.64745,½

y∗6 = (1 + h) y5 = 1.81219,y6 = y5 +

h2(y5 + y

∗6) = 1.82043,½

y∗7 = (1 + h) y6 = 2.00247,y7 = y6 +

h2(y6 + y

∗7) = 2.01157,½

y∗8 = (1 + h) y7 = 2.21273,y8 = y7 +

h2(y7 + y

∗8) = 2.22279,½

y∗9 = (1 + h) y8 = 2.44507,y9 = y8 +

h2(y8 + y

∗9) = 2.45618,½

y∗10 = (1 + h) y9 = 2.7018,y10 = y9 +

h2(y9 + y

∗10) = 2.71408,

cuyos errores son

e1 e2 e3 e4 e5 e6 e7 e8 e9 e100.00017 0.0004 0.0006 0.0009 0.0013 0.0017 0.0022 0.0028 0.0034 0.0042

30

Page 37: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Obsérvese que son similares a los obtenidos en el método de Taylor de segundo orden. Si variamosel tamaño de paso, obtenemos los siguientes errores para los siguientes valores

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.000010.2183 0.0042 0.000045 4.5 · 10−7 4.5 · 10−9 4.5 · 10−11

que reproducen los obtenidos en el método de Taylor anteriormente mencionado.La forma más general posible para un método de Runge—Kutta de orden dos es⎧⎨⎩ g1 = hf(ti−1,yi−1),

g2 = hf(ti−1 + c2h,yi−1 + a21g1),yi = yi−1 + b1g1 + b2g2,

donde los tiempos ti−1 no tienen porqué ser uniformemente distribuidos, y b2 6= 0. Si tomamosg2(h)/h y desarrollamos mediante la serie de Taylor de primer orden obtenemos

g2(h) = g2(0) + hg02(0) +O(h)

= f(ti−1,yi−1) + h

µc2∂f

∂t(ti−1,yi−1) + a21

∂f

∂y(ti−1,yi−1)f(ti−1,yi−1)

¶+O(h),

por lo que

yi = yi−1 + b1g1 + b2g2

= yi−1 + (b1 + b2)hf(ti−1,yi−1) + b2h2

µc2∂f

∂t(ti−1,yi−1) + a21

∂f

∂y(ti−1,yi−1)f(ti−1,yi−1)

¶.

Por otra parte, la aproximación mediante la serie de Taylor de orden dos de y(t; ti−1,yi−1) era

yi = yi−1 + f(ti−1,yi−1)h+1

2

µ∂

∂tf(ti−1,yi−1) + f(ti−1,yi−1)

∂yf(ti−1,yi−1)

¶h2,

e igualando coeficientes obtenemos que ⎧⎨⎩ b1 + b2 = 1,b2c2 = 1/2,b2a21 = 1/2.

Como b2 6= 0, tenemos que a21 = c2 =12b2y b1 = 1 − b2, lo cual nos proporciona una familia de

métodos de Runge—Kutta de orden dos según los valores de b2. Así, cuando b2 = 1/2, obtenemos elmétodo de Heun anteriormente descrito. Cuando b2 = 1, tenemos½

g1 = hf(ti−1,yi−1),g2 = hf(ti−1 +

h2,yi−1 +

12g1),

e

yi = yi−1 + hg2 = yi−1 + hf(ti−1 +h

2,yi−1 +

1

2g1)

= yi−1 + hf(ti−1 +h

2,yi−1 +

h

2f(ti−1,yi−1)),

31

Page 38: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

que es el algoritmo de Runge de 1895.En general, un método de Runge—Kutta explícito de m etapas es de la forma

yi = yi−1 +mXj=1

bjgj,

donde ⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩g1 = hf(ti−1,yi−1),g2 = hf(ti−1 + c2h,yi−1 + a21g1),g3 = hf(ti−1 + c3h,yi−1 + a31g1 + a32g2),................gm = hf(ti−1 + cmh,yi−1 + am1g1 + am2g2 + ...+ amm−1gm−1),

siendo cj, j = 2, ...,m, bj, j = 1, ...,m y ajk, j = 1, ...,m, k = 1, ..., j − 1, los coeficientes del método.Normalmente, estos coeficientes se agrupan según la tabla

0c2 a21c3 a31 a32... ... ... ...cm am1 am2 ... amm−1

b1 b2 ... bm−1 bm

y en forma matricialct A

b

donde c = (0, c2, ..., cm), b = (b1, b2, ..., bm) y A = (ajk) ∈Mm×m(R) con ajk = 0 si k > j.Así, el método dado por la tabla

012

12

120 1

2

1 0 0 116

13

13

16

y concretado en ⎧⎪⎪⎨⎪⎪⎩g1 = hf(ti−1,yi−1),g2 = hf(ti−1 +

h2,yi−1 +

12g1),

g3 = hf(ti−1 +h2,yi−1 +

12g2),

g4 = hf(ti−1 + h,yi−1 + g3),

que da

yi = yi−1 +1

6g1 +

1

3g2 +

1

3g3 +

1

6g4

es el método de Kutta de 1905, que es el método clásico de Runge—Kutta de cuatro etapas, y comoveremos posteriormente, cuarto orden. Si aplicamos este método a nuestro ejemplo½

y0 = y,y(0) = 1,

32

Page 39: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

tenemos que los valores que obtenemos para tamaño de paso h = 0.1 son

y1 = 1.10517, y2 = 1.2214,y3 = 1.34986, y4 = 1.49182,y5 = 1.64872, y6 = 1.82212,y7 = 2.01375, y8 = 2.22554,y9 = 2.4596, y10 = 2.71828,

cuyos errores sone1 = 8.4 · 10−8 e2 = 1.8 · 10−7e3 = 3.1 · 10−7 e4 = 4.6 · 10−7e5 = 6.3 · 10−7 e6 = 8.3 · 10−7e7 = 1.1 · 10−6 e8 = 1.4 · 10−6e9 = 1.7 · 10−6 e10 = 2.1 · 10−6

Obsérvese que son similares a los obtenidos en el método de Taylor de segundo orden. Si variamosel tamaño de paso, obtenemos los siguientes errores para los siguientes valores

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.000010.00995 2.1 · 10−6 2.25 · 10−10 1.38 · 10−14 6.22 · 10−15 6.26 · 10−14

Como vemos, los errores de redondeo hacen que no se aprecie que el error del paso h/10 esaproximadamente el del paso h elevado a la cuarta potencia. Este hecho sí se aprecia en los tamañode paso hasta 0.001.

2.4 Análisis del error en los métodos de orden uno

Consideramos un problema de condiciones iniciales de la forma½y0 = f(t,y),y(t0) = y0,

donde la función f : Ω ⊆ Rm+1 → Rm es suficiente regular para que dicho problema tenga soluciónúnica. Como hemos visto hasta ahora, los métodos numéricos de Taylor y Runge—Kutta se basanen, fijado t1 > t0 y un tamaño de paso h = t1−t0

n, construir una sucesión y0,y1, ...,yn de manera que

sean una aproximación de la solución y(t; t0,y0) en los tiempos ti = t0 + hi. Como hemos puesto demanifiesto con algunos ejemplos, estos métodos tienen inherentemente asociados unos errores que sedeben a dos causas bien diferenciadas:

• Errores matemáticos debidos al método numérico empleado.

• Errores de redondeo al trabajar los computadores con precesión finita.

En general, los métodos que conocemos son de la forma

yi = yi−1 + hΦ(ti−1,yi−1, h), i = 1, ..., n, (2.4)

que dan lugar a los valores y0,y1, ...,yn anteriormente mencionados. En general, dentro de los erroresmatemáticos podemos distinguir los siguientes tipos.

33

Page 40: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Definimos el error global de la solución aproximada como

ei = yi − y(ti; t0,y0), i = 0, 1, ..., n,

y el método numérico en cuestión se dirá convergente si

limh→0

max0≤i≤n

||ei|| = 0.

Básicamente, la convergencia implica que el error global tiende a cero cuando lo hace el tamaño depaso.Otro concepto importante es el de consistencia. Un método numérico dado por (2.4) se dice

consistente siΦ(t,y, 0) = f(t,y). (2.5)

Por ejemplo, en el caso de los métodos de Taylor de orden n, la función dada por (2.5) es

Φ(t,y, 0) =nXj=1

hj−1

j!yj) = y0 = f(t,y).

En el caso de los métodos de Runge—Kutta, dicho método es consistente sinXj=1

bj = 1.

En el estudio del error global de un método, tienen gran importancia dos errores locales que acontinuación describimos. Se llama error local del paso i como

li = yi − y(ti; ti−1,yi−1),

es decir, la diferencia entre el valor proporcionado por el método yi y el valor exacto proporcionadopor la solución exacta del problema de condiciones iniciales½

y0 = f(t,y),y(ti−1) = yi.

El último tipo de error local que vamos a introducir es lo que llamaremos el error local detruncamiento, que definimos como

ti = y(ti−1; t0,y0) + hΦ(ti−1,y(ti−1; t0,y0), h)− y(ti; t0,y0),

es decir, aquel error que se obtendría al sustituir la solución real del problema de condiciones inicialesy(t; t0,y0) en el método numérico implementado

yi = yi−1 + hΦ(ti−1,yi−1, h).

Si el método numérico es consistente, entonces el error de local de truncaminento converge a cerocuando se divide por h. En efecto

limh→0

tih

= limh→0

y(ti−1; t0,y0)− y(ti−1 + h; t0,y0)h

+ limh→0

Φ(ti−1,y(ti−1; t0,y0), h)

= −y0(ti−1; t0,y0) + f(ti−1,y(ti−1; t0,y0)) = 0,

34

Page 41: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

por ser y(ti−1; t0,y0) solución de la ecuación diferencial. Básicamente, la consistencia indica que ||ti||es al menos O(h2). Diremos que un método es consistente de orden n si es consistente y el error localde truncamiento es de orden O(hn+1).Vamos a analizar este último tipo de error para los método numéricos que conocemos.

2.4.1 Error local de truncamiento en el método de Taylor

Recordemos que el método de Taylor es de la forma

yi = yi−1 +1

1!f1(ti−1,yi−1)h+

1

2!f2(ti−1,yi−1)h

2 + ...+1

n!fn(ti−1,yi−1)h

n

= yi−1 +nXj=1

hj

j!fj(ti−1,yi−1).

Entonces, el error local de truncamiento es

ti = y(ti−1; t0,y0) + hΦ(ti−1,y(ti−1; t0,y0), h)− y(ti; t0,y0)

=nXj=1

hj

j!yj)(ti−1; t0,y0)−

∞Xj=1

hj

j!yj)(ti−1; t0,y0)

= −∞X

j=n+1

hj

j!yj)(ti−1; t0,y0)

=hn+1

(n+ 1)!yn+1)(ti−1 + ηh; t0,y0),

con η ∈ (0, 1). Entonces, existe A > 0 de manera que

||ti|| ≤ Ahn+1,

o equivalentemente||ti|| = O(hn+1),

con lo que el método de Taylor truncado en el paso n es de orden n+ 1.

2.4.2 Error local de truncamiento en los métodos de Runge—Kutta

Por simplicidad, vamos a considerar sólamente los métodos de dos etapas dados por⎧⎨⎩ g1 = hf(ti−1,yi−1),g2 = hf(ti−1 + c2h,yi−1 + a21g1),yi = yi−1 + b1g1 + b2g2,

donde a21 = c2 = 12b2y b1 = 1− b2. Entonces

Φ(t,y, h) = b1f(t,y) + b2f(t+ c2h,y+ a21hf(t,y)).

35

Page 42: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Ahora bien

ti = y(ti−1; t0,y0) + hΦ(ti−1,y(ti−1; t0,y0), h)− y(ti; t0,y0)

= y(ti−1; t0,y0) + hΦ(ti−1,y(ti−1; t0,y0), h)−∞Xj=0

hj

j!yj)(ti−1; t0,y0)

= h

ÃΦ(ti−1,y(ti−1; t0,y0), h)−

∞Xj=1

hj−1

j!yj)(ti−1; t0,y0)

!

=h3

3!y3)(ti−1 + ηh; t0,y0),

debido a los valores de los coeficientes del método de Runge—Kutta, siendo η ∈ (0, 1). De estamanera, vemos que

||ti|| = O(h3).En general, el error local de truncamiento en un método de Runge—Kutta de n pasos es O(hn+1).

2.4.3 Relación entre el error local de truncamiento y el error global

Vamos a ver cómo podemos controlar el error global a partir del error local de truncamiento. Comosabemos

ei = yi − y(ti; t0,y0).Entonces

ei = yi−1 + hΦ(ti−1,yi−1, h) + ti − y(ti−1; t0,y0)− hΦ(ti−1,y(ti−1; t0,y0), h)= ti + ei−1 + h (Φ(ti−1,yi−1, h)− Φ(ti−1,y(ti−1; t0,y0), h)) .

Sea M > 0 tal que ||ti|| < M y teniendo en cuenta que h > 0, obtenemos la acotación

||ei|| ≤M + ||ei−1||+ h||Φ(ti−1,yi−1, h)− Φ(ti−1,y(ti−1; t0,y0), h)||. (2.6)

Supongamos ahora que Φ satisface una condición de Lipschitz con constante L > 0 en la variabley, esto es

||Φ(ti−1,yi−1, h)− Φ(ti−1,y(ti−1; t0,y0), h)|| ≤ L||yi−1 − y(ti−1; t0,y0)||,con lo que la expresión (2.6) se reduce a

||ei|| ≤ M + ||ei−1||+ h||Φ(ti−1,yi−1, h)− Φ(ti−1,y(ti−1; t0,y0), h)||≤ M + ||ei−1||+ hL||yi−1 − y(ti−1; t0,y0)||= M + ||ei−1||(1 + hL).

Aplicando la anterior desigualdad para i ≥ 1 tenemos

||e1|| ≤ ||e0||(1 + hL) +M,

||e2|| ≤ ||e1||(1 + hL) +M≤ ||e0||(1 + hL)2 +M(1 + (1 + hL)),

36

Page 43: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

y en general

||ei|| ≤ ||e0||(1 + hL)i +Mi−1Xj=0

(1 + hL)j.

Comoi−1Xj=0

(1 + hL)j =(1 + hL)i − 1

hL,

sustituyendo en la expresión anterior,

||ei|| ≤ ||e0||(1 + hL)i +M(1 + hL)i − 1

hL

= (1 + hL)iµ||e0||+

M

hL

¶− MhL.

De la noción de exponencial real tenemos que

0 ≤ (1 + hL)i ≤ ehLi,

y teniendo en cuenta que e0 = 0, concluimos que

||ei|| ≤M

hL(ehLi − 1).

Ahora bien ih = tf−t0, donde tf es el tiempo final donde deseamos conocer la solución de la ecuacióndiferencial, por lo que

||ei|| ≤M

hL(eL(tf−t0) − 1).

Como por otra parte, M = Ahn+1 donde A > 0 [M ≈ O(hn+1)], tenemos que

||ei|| ≤ Bhp,

por lo que acabamos de probar el siguiente resultado:

Theorem 2 Si ||ti|| ≈ O(hn+1) entonces ||ei|| ≈ O(hn).

2.4.4 Relación entre el error local y el error local de truncamiento

Ambos errores son muy parecidos en magnitud. Como se puede comprobar

li = yi − y(ti; ti−1,yi−1)

= yi−1 + hΦ(ti−1,yi−1, h)−Xj≥0

hj

j!yj)(ti−1; ti−1,yi−1)

= h

ÃΦ(ti−1,yi−1, h)−

Xj≥1

hj−1

j!yj)(ti−1; ti−1,yi−1)

!.

37

Page 44: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Entonces

li − ti = h

ÃΦ(ti−1,yi−1, h)−

Xj≥1

hj−1

j!yj)(ti−1; ti−1,yi−1)

!

−hÃΦ(ti−1,y(ti−1; t0,y0), h)−

Xj≥1

hj−1

j!yj)(ti−1; t0,y0)

!

2.5 Extrapolación de Richardson

Supongamos que y(ti) = y(ti, h) es la solución aproximada del problema de condiciones iniciales½y0 = f(t,y),y(t0) = y0,

con tamaño de paso h, esto es, t = ti = t0 + ih. Supongamos que el error global

ei(h) = y(ti, h)− y(ti; t0,y0) = d(ti)hp +O(hp+1), (2.7)

donde la función d(t) no depende de h. Puede comprobarse, aunque queda lejos de los objetivos deeste curso, que el error global tanto en los métodos de Taylor como en los de Runge—Kutta tiene estaestructura. Si calculamos ahora la aproximación con paso h/2, tendremos

ei(h/2) = y(ti, h/2)− y(ti; t0,y0) = d(ti)µh

2

¶p+O(hp+1). (2.8)

Restando

ei(h/2)− ei(h) = y(ti, h/2)− y(ti, h)

= d(ti)hp

µ1

2p− 1¶+O(hp+1)

= d(ti)

µh

2

¶p(1− 2p) +O(hp+1),

con lo quey(ti, h/2)− y(ti, h)

1− 2p = d(ti)

µh

2

¶p+O(hp+1).

Por otra parte, si multiplicamos

2pei(h/2) = 2py(ti, h/2)− 2py(ti; t0,y0) = d(ti)hp +O(hp+1),

y calculando

2pei(h/2)− ei(h) = 2py(ti, h/2)− 2py(ti; t0,y0)− y(ti, h) + y(ti; t0,y0) = O(hp+1),

de donde

y(ti; t0,y0)−y(ti, h)− 2py(ti, h/2)

1− 2p = O(hp+1),

38

Page 45: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

por lo quey(ti, h)− 2py(ti, h/2)

1− 2pes una aproximación de y(ti; t0,y0) que tiene al menos orden O(hp+1). De este modo, aumentamosen uno el orden de convergencia, sin por ellos aumentar la cantidad de operaciones de una formadrástica. Esto es lo que se conoce como el método de extrapolación de Richardson.A modo de ejemplo, tomemos el problema½

y0 = y,y(0) = 1,

y calculemos y(1; 0, 1) por el método de Euler con tamaño de paso h = 10000 y h/2 = 5000.Obtenemos los errores e(h) = 0.000135902 y e(h/2) = 0.0000679539. Teniendo en cuenta que elmétodo de Euler es de orden uno, calculamos

y(ti, h)− 2y(ti, h/2)1− 2 = 2 · 2.71821− 2.71815 = 2.71828,

que nos da un error de 6.22853 · 10−9, con lo que el error ha disminuido notablemente con una seriede operaciones sencillas.

2.6 Más sobre los métodos Runge—Kutta

Partimos de la ecuación diferencial con condiciones iniciales½y0 = f(t,y),y(t0) = y0.

En general, un método de Runge—Kutta explícito de m etapas es de la forma

yi = yi−1 +mXj=1

bjgj,

donde ⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩g1 = hf(ti−1,yi−1),g2 = hf(ti−1 + c2h,yi−1 + a21g1),g3 = hf(ti−1 + c3h,yi−1 + a31g1 + a32g2),................gm = hf(ti−1 + cmh,yi−1 + am1g1 + am2g2 + ...+ amm−1gm−1),

siendo cj, j = 2, ...,m, bj, j = 1, ...,m y ajk, j = 1, ...,m, k = 1, ..., j − 1, los coeficientes del método.Normalmente, estos coeficientes se agrupan según la tabla

0c2 a21c3 a31 a32... ... ... ...cm am1 am2 ... amm−1

b1 b2 ... bm−1 bm

39

Page 46: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

y en forma matricialct A

b

donde c = (0, c2, ..., cm), b = (b1, b2, ..., bm) y A = (ajk) ∈ Mm×m(R) con ajk = 0 si k > j. Sesatisfacen en general las condiciones de simplificación

cj =

j−1Xk=1

cjk, j = 2, ...,m.

2.6.1 El método de 3 etapas

Veamos cómo se genera el método de Runge—Kutta de tres etapas que tendrá error local de trunca-miento ti ≈ O(h4). Como sabemos, su tabla de Butcher será

0c2 a21c3 a31 a32

b1 b2 b3

y el método será de la forma

g1 = hf(ti−1,yi−1),

g2 = hf(ti−1 + c2h,yi−1 + a21g1),

g3 = hf(ti−1 + c3h,yi−1 + a31g1 + a32g2),

yyi = yi−1 + b1g1 + b2g2 + b3g3. (2.9)

Por otra parte, la aproximación mediante la serie de Taylor de orden tres de y(t; ti−1,yi−1) era

yi = yi−1 + f(ti−1,yi−1)h+1

2

µ∂

∂tf(ti−1,yi−1) + f(ti−1,yi−1)

∂yf(ti−1,yi−1)

¶h2 (2.10)

+1

6

µ∂2

∂t2f(ti−1,yi−1) + 2f(ti−1,yi−1)

∂2

∂y∂tf(ti−1,yi−1) +

∂tf(ti−1,yi−1)

∂yf(ti−1,yi−1)

+ f(ti−1,yi−1)∂

∂yf(ti−1,yi−1)

2 + f(ti−1,yi−1)2 ∂2

∂y2f(ti−1,yi−1)

¶h3 +O(h4). (2.11)

Tomamos la funciónG2(h) = f(ti−1 + c2h,yi−1 + a21g1),

derivamos dos veces respecto de h

G02(h) = c2

∂tf(ti−1 + c2h,yi−1 + a21g1) +

∂yf(ti−1 + c2h,yi−1 + a21g1)a21f(ti−1,yi−1),

G002(h) = c22

∂2

∂t2f(ti−1 + c2h,yi−1 + a21g1) + 2c2

∂2

∂t∂yf(ti−1 + c2h,yi−1 + a21g1)a21f(ti−1,yi−1)

+∂2

∂y2f(ti−1 + c2h,yi−1 + a21g1)a

221f(ti−1,yi−1)

2,

40

Page 47: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

de donde el desarrollo de Taylor de orden dos es

G2(h) = G2(0) +G02(0)h+

1

2G002(0)h

2 +O(h2)

= f(ti−1,yi−1) +

µc2

∂tf(ti−1,yi−1) + a21f(ti−1,yi−1)

∂yf(ti−1,yi−1)

¶h

+1

2

µc22

∂2

∂t2f(ti−1,yi−1) + 2c2a21f(ti−1,yi−1)

∂2

∂t∂yf(ti−1,yi−1)

+ a221f(ti−1,yi−1)2 ∂2

∂y2f(ti−1,yi−1)

¶h2 +O(h3)

y por otra parteG3(h) = f(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h)),

que derivando dos veces nos da

G03(h) = c3

∂tf(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h))

+∂

∂yf(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h)) · (a31f(ti−1,yi−1) + a32(G2(h) + hG

02(h))) ,

G003(h) = c23

∂2

∂t2f(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h)) +

+2c3∂2

∂t∂yf(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h)) · (a31f(ti−1,yi−1) + a32(G2(h) + hG

02(h)))

+∂2

∂y2f(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h)) · (a31f(ti−1,yi−1) + a32(G2(h) + hG

02(h)))

2

+∂

∂yf(ti−1 + c3h,yi−1 + a31g1 + a32hG2(h)) (a32(2G

02(h) + hG

002(h))) ,

de donde

G03(0) = c3

∂tf(ti−1,yi−1) + (a31 + a32)

∂yf(ti−1,yi−1)f(ti−1,yi−1),

G003(0) = c23

∂2

∂t2f(ti−1,yi−1) + 2c3 (a31 + a32)

∂2

∂t∂yf(ti−1,yi−1)f(ti−1,yi−1)

+ (a31 + a32)2 ∂2

∂y2f(ti−1,yi−1)f(ti−1,yi−1)

2

+2a32∂

∂yf(ti−1,yi−1)

µc2

∂tf(ti−1,yi−1) + a21f(ti−1,yi−1)

∂yf(ti−1,yi−1)

¶,

por lo que el desarrollo de Taylor en cero es

G3(h) = G3(0) +G03(0)h+

1

2G003(0)h

2 +O(h3)

= f(ti−1,yi−1) +

µc3

∂tf(ti−1,yi−1) + (a31 + a32)

∂yf(ti−1,yi−1)f(ti−1,yi−1)

¶h

41

Page 48: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

+1

2

µc23

∂2

∂t2f(ti−1,yi−1) + 2c3 (a31 + a32)

∂2

∂t∂yf(ti−1,yi−1)f(ti−1,yi−1)

+ (a31 + a32)2 ∂2

∂y2f(ti−1,yi−1)f(ti−1,yi−1)

2

+

µ2a32

∂yf(ti−1,yi−1)

µc2

∂tf(ti−1,yi−1) + a21f(ti−1,yi−1)

∂yf(ti−1,yi−1)

¶¶h2

+O(h2)

Introduciendo los desarrollos de Taylor de G2 y G3 en la ingualdad (2.9), y comparando con eldesarrollo de Taylor de orden 2 (2.10), obtenemos las ecuaciones⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

b1 + b2 + b3 = 1,b2c2 + b3c3 =

12,

b2a21 + b3(a31 + a32) =12,

b2c22 + b3c

23 =

13,

b2c2a21 + b3c3 (a31 + a32) =13,

b2a221 + b3 (a31 + a32)

2 = 13,

b3a32c2 =16,

b3a32a21 =16.

De las dos últimas obtenemos que c2 = a21 con lo que usando la segunda y tercera, llegamos ac3 = a31 + a32. Entonces la quinta y sexta ecuaciones se simplifican a

b2c22 + b3c

23 =

1

3

que es la cuarta, y la última ecuación es la antepenúltima, con lo que el sistema reducido de ecuacionesnos queda ⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

b1 + b2 + b3 = 1,c2 = a21,c3 = a31 + a32,b2c2 + b3c3 =

12,

b2c22 + b3c

23 =

13,

b3a32c2 =16,

que nos dan los métodos de Runge—Kutta de orden 3, que es una familia biparamétrica de métodosnuméricos. Si tomamos c2 y c3 como parámetros, tenemos de las ecuaciones½

b2c2 + b3c3 =12,

b2c22 + b3c

23 =

13,

que

b2 =

¯12c3

13c23

¯¯c2 c3c22 c23

¯ = c3¡c32− 1

3

¢c2c3(c3 − c2)

42

Page 49: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

b3 =

¯c2

12

c2213

¯¯c2 c3c22 c23

¯ = c2¡13− c2

2

¢c2c3(c3 − c2)

,

y de la última

a32 =1

6b3c2=c2c3(c3 − c2)6¡13− c2

2

¢ .De c3 = a31 + a32 tenemos que

a31 = c3 − a32 = c3 −c2c3(c3 − c2)6¡13− c2

2

¢ ,y de b1 + b2 + b3 = 1 concluimos

b1 = 1− b2 − b3 = 1−c3¡c32− 1

3

¢c2c3(c3 − c2)

−c2¡13− c2

2

¢c2c3(c3 − c2)

=c2c3(c3 − c2)− c3

¡c32− 1

3

¢− c2

¡13− c2

2

¢c2c3(c3 − c2)

=

¡c2c3 +

13

¢(c3 − c2)− 1

2(c23 − c22)

c2c3(c3 − c2)Así, obtenemos los métodos de Runge—Kutta de orden tres

012

12

340 3

429

13

49

y012

12

1 −1 216

23

16

Estas soluciones son válidas siempre que c2 y c3 sean no nulos y distintos. Existen métodos que seobtienen cuándo alguna de estas cantidades son nulas, y que se obtienen de igual manera.Como vemos, dado que el error local de los métodos de Runge—Kutta de tres etapas es de orden

4 [O(h4)], tenemos que el error global de los métodos de tres etapas es de orden 3.

2.6.2 El método de cuatro etapas

Procediendo como en los casos de dos y tres etapas, aumentando en un orden los desarrollos de Taylorde las funciones implicadas, tenemos que si la tabla de Butcher de un método de cuatro etapas es

0c2 a21c3 a31 a32c4 a41 a42 a43

b1 b2 b3 b4

43

Page 50: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

entonces han de satisfacerse la simplificación

cj =

j−1Xk=1

ajk, j = 2, 3, 4,

y las condiciones ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

b1 + b2 + b3 + b4 = 1,b2c2 + b3c3 + b4c4 =

12,

b2c22 + b3c

23 + b4c

24 =

13,

b3a32c2 + b4(a42c2 + a43c3) =16,

b2c32 + b3c

33 + b4c

34 =

14,

b3c3a32c2 + b4c4(a42c2 + a43c3) =18,

b3a32c22 + b4(a42c

22 + a43c

23) =

112,

b4a43a32c2 =124,

la primera de las cuales, como sabemos, viene de la condición de consistencia de los métodos deRunge—Kutta en general. Butcher en 1963 dio la simplificación

4Xi=1

biaij = bj(1− cj), j = 2, 3, 4, (2.12)

donde aij = 0 si i ≥ j, de la cual se tiene para j = 4 que

b4(1− c4) = 0,

de donde c4 = 1 ya que b4 6= 0. Como las ecuaciones 2, 3 y 5 son lineales en b2, b3 y b4, tenemos que

b2 =1− 2c3

12c2(1− c2)(c2 − c3),

b3 =1− 2c2

12c3(1− c3)(c3 − c2),

y

b4 =6c2c3 − 4(c3 + c2) + 312c2(1− c2)(1− c3)

.

Tomando ahora j = 3 en (2.12) obtenemos

a43 =(1− c2)(2c2 − 1)(1− c3)

c3(c2 − c3)(6c2c3 − 4(c2 + c3) + 3).

Finalmente, de la última ecuación y (2.12) con j = 2 obtenemos

a32 =c3(c2 − c3)2c2(2c2 − 1)

,

y

a42 =(1− c2)[2(1− c3)(1− 2c3)− (c2 − c3)]2c2(c2 − c3)[6c2c3 − 4(c2 + c3) + 3]

.

44

Page 51: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Como vemos, estas soluciones dependientes de dos parámetros son válidas siempre que c2 /∈ 0, 1/2, 1,c3 /∈ 0, 1 y c2 6= c3. Cuando alguna de estas condiciones no se satisfacen, existen no obstante méto-dos de Runge—Kutta con estos coeficientes.Estos métodos son de orden 4 (orden 5 tiene el error local de truncamiento) y representan una

familia de cinco parámetros de métodos cuyos ejemplos son

013

13

23−13

11 1 −1 1

18

38

38

18

y sobre todo, que cumple c2 = c3,012

12

120 1

2

1 0 0 116

13

13

16

que es el método debido a Kutta de 1905 y que usualmente se conoce como el método de Runge—Kutta.

2.6.3 Métodos de más etapas

En general, se conoce que un método de Runge—Kutta de m etapas tiene a lo sumo orden m. Dehecho, se tiene la siguiente tabla para los órdenes en función de las etapas

Etapas 1 2 3 4 5 6 7 8Orden 1 2 3 4 4 5 6 6

es decir, a partir de 5 etapas no aumenta el orden global del método. ¿Por qué entonces se construyenmétodos de más de 5 etapas? La razón es meramente computacional, ya que los errores debidos alredondeo aumentan con el número de pasos. Para fijar ideas, supongamos que el error global de unmétodo es

e = Chp,

donde p es el orden. Tomando logaritmos tenemos que

log e = logC + p log h,

y suponiendo que el tamaño del paso h = (tf − t0)/n se tiene

log e = logC + p logtf − t0n

= logC + p log(tf − t0)− p logn= B − p logn,

siendoB = logC + p log(tf − t0).

45

Page 52: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos de un paso

Si asumimos cierta la identidadlog e = B − p logn

y escirbimos otra análoga para un método de orden q

log e = B0 − q logn,

tenemos dos rectas que se cortarán en un punto, que marcarán la eficiencia de cada método ydeterminarán cuándo debe usarse cada uno.

46

Page 53: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Capítulo 3

Métodos multipaso

Sumario. Métodos multipaso generales. Convergencia y estabilidad de los métodosmultipaso. Métodos de Adams—Bashforth. Métodos de Adams—Moulton. Métodospredictor—corrector.

3.1 Introducción

Partimos de la ecuación diferencial con condiciones iniciales½y0 = f(t,y),y(t0) = y0,

que verifica tener unicidad de solución. Hasta ahora hemos visto métodos numéricos de un paso, esdecir, la sucesión que aproxima la solución yi se genera de forma recursiva a partir de los términosinmediatamente anteriores, esto es yi−1. Como veremos, en los métodos multipaso esta sucesión seconstruye a partir de una ecuación en diferencias con orden mayor que uno. Veamos a continuacióncómo construir tales aproximaciones.

3.2 Métodos multipaso lineales

Sea y(t; t0,y0) la solución del problema de condiciones iniciales anterior, y sean tf = t1 > t0, yh = t1 − t0. Sea y1 la aproximación de y(t1; t0,y0) dada por la expresión

y1 =

pXj=0

ajy−j + h

pXj=−1

bjf(t0 − jh,y−j), (3.1)

donde aj, bj y p son parámetros elegidos de acuerdo con unas condiciones de convergencia y estabilidaddetrminadas, e

y−j ≈ y(t0 − jh; t0,y0), j = 0, 1, ..., p.

Si p ≥ 1, entonces para j = 1, ..., p los valores y−j han de ser previamente estimados con unmétodo de orden uno, probablemente algún método de Runge—Kutta. Si b−1 = 0, el método se dirá

47

Page 54: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

explícito ya que y1 se obtiene directamente como

y1 =

pXj=0

ajy−j + h

pXj=0

bjf(t0 − jh,y−j).

Sin embargo, si b−1 6= 0 entonces el método se dice implícito porque hay que calcular y1 resolviendola ecuación (3.1), presumiblemente haciendo uso de algún método numérico para ello.En general, si tenemos n pasos, h = (tf − t0)/n y ti = t0+ ih, para cada i ∈ 1, ..., n construimos

yi+1 =

pXj=0

ajyi−j + h

pXj=−1

bjf(ti − jh,yi−j), (3.2)

junto con las condiciones yj, j = 0, 1, ..., p. Como vemos se trata de una ecuación en diferenciasde orden p que da lugar a la aproximación de la solución. Veamos a continuación cómo obtener losparámetros del método.Para ello, consideramos el error local de truncamiento

ti+1 =

pXj=0

ajy(ti − jh; t0,y0) + hpX

j=−1bjf(ti − jh,y(ti − ih; t0,y0))− y(ti + h; t0,y0)

=

pXj=0

ajy(ti − jh; t0,y0) + hpX

j=−1bjy

0(ti − jh; t0,y0)− y(ti + h; t0,y0),

y tomando el desarrollo en serie de Taylor en h = 0, tenemos

ti+1 =

pXj=0

ajy(ti − jh; t0,y0) + hpX

j=−1bjy

0(ti − jh; t0,y0)− y(ti + h; t0,y0)

=

pXj=0

aj

∞Xk=0

1

k!yk)(ti; t0,y0)(−1)k(−ih)k

+h

pXj=−1

bj

∞Xk=0

1

k!yk+1)(ti; t0,y0)(−1)k(−ih)k

−∞Xk=0

1

k!yk)(ti; t0,y0)h

k,

y reagrupando en distintas potencias de h concluimos que

ti+1 = y(ti; t0,y0)

ÃpXj=0

aj − 1!+ hy0(ti; t0,y0)

ÃpX

j=−1bj −

pXj=0

iaj − 1!

+h2y00(ti; t0,y0)

Ã−

pXj=−1

jbj +1

2

pXj=0

j2aj −1

2

!

+h3y3)(ti; t0,y0)

Ã1

2

pXj=−1

j2bj −1

6

pXj=0

j3aj −1

6

!

+...+ hkyk)(ti; t0,y0)

Ã(−1)k−1(k − 1)!

pXj=−1

jk−1bj +(−1)kk!

pXj=0

jkaj −1

k!

!+ ...

48

Page 55: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

y si fijamos a−1 = 0, podemos escribir de forma más compacta

ti+1 = y(ti; t0,y0)

ÃpXj=0

aj − 1!+

∞Xk=1

1

k!hkyk)(ti; t0,y0)

Ã(−1)k

pXj=−1

jk−1(jaj − kbj)− 1!,

con lo que el error local de truncamiento será de orden O(hq+1) si se satisfacen las ecuacionespXj=0

aj = 1,

(−1)kpX

j=−1jk−1(jaj − kbj) = 1, k = 1, 2, ..., q.

Veamos algunos ejemplos concretos de métodos multipaso.

3.3 Primeros ejemplos

Vamos a construir un método multipaso de 2 pasos y de orden 3. Supongamos en primer lugar queel método es explícito, esto es b−1 = 0. Será entonces un método de la forma

yi+1 = a0yi + a1yi−1 + hb0f(ti,yi) + hb1f(ti − h,yi−1),

satisfaciendo el sistema de ecuaciones ⎧⎪⎪⎨⎪⎪⎩a0 + a1 = 1,−a1 + b0 + b1 = 1,a1 − 2b1 = 1,−a1 + 3b1 = 1,

de donde b1 = 2, a1 = 5, b0 = 4 y a0 = −4, de donde

yi+1 = −4yi + 5yi−1 + 4hf(ti,yi) + 2hf(ti − h,yi−1).

Si elegimos un método implícito, esto es,

yi+1 = a0yi + a1yi−1 + hb−1f(ti + h,yi+1) + hb0f(ti,yi) + hb1f(ti − h,yi−1),

el sistema de ecuaciones anterior es de la forma⎧⎪⎪⎨⎪⎪⎩a0 + a1 = 1,−a1 + b−1 + b0 + b1 = 1,a1 + 2b−1 − 2b1 = 1,−a1 + 3b−1 + 3b1 = 1,

que es un sistema compatible indeterminado cuya solución es⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩a0 = 1− λ,a1 = λ,b−1 =

512− λ,

b0 =23− 3λ,

b1 = − 112+ 5λ,

λ ∈ R,

49

Page 56: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

por lo que si λ = 0, tenemos el método

yi+1 = yi + h5

12f(ti + h,yi+1) + h

2

3f(ti,yi)− h

1

12f(ti − h,yi−1).

El método implícito tiene la desventaja de que el valor de yi+1 ha de obtenerse a partir de lasolución aproximada de una ecuación algebraica, cosa que no ocurre con el método explícito. Esteúltimo no permite obtener aproximaciones de tanto orden como el implícito. Por ejemplo, el métodode dos pasos explícito no puede tener orden 4, ya que debería cumplir, además de las ecuacionesanteriores, la ecuación adicional

a1 − 4b1 = 1,y dado que el determinante ¯

¯ 1 −2 1−1 3 11 −4 1

¯¯ = 4,

el sistema dado por ⎧⎨⎩ a1 − 2b1 = 1,−a1 + 3b1 = 1,a1 − 4b1 = 1,

no tiene solución. Sin embargo, si planteamos el mismo sistema para el método implícito, hemos deañadir la ecuación

a1 + 4b−1 − 4b1 = 1,y ahora el determinate ¯

¯¯1 1 0 0 00 −1 1 1 10 1 2 0 −20 −1 3 0 30 1 4 0 −4

¯¯¯ = −12,

por lo que el sistema lineal anterior es compatible determinado y tiene un solución única que seráel único método de orden 4 y paso 2. Si intentáramos conseguir orden 5, tendríamos que añadir laecuación

−a1 + 5b−1 + 5b1 = 1,y tomando las últimas 4 ecuaciones, el determinante de la matriz ampliada sería¯

¯ 1 2 −2 1−1 3 3 11 4 −4 1−1 5 5 1

¯¯ = −8,

por lo que el sistema será incompatible y no habrá solución del mismo. Así pues, los métodos de dospasos pueden tener a lo sumo orden 3 si es explícito y orden 4 si es implícito.Ahora bien, si consideramos el problema½

y0 = y,y(0) = 1,

50

Page 57: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

y queremos aproximar y(1; 0, 1), esto es tf = 1, y aplicamos el método½yi+1 = −4yi + 5yi−1 + 4hyi + 2hyi−1,y0 = 1, y1,

donde y1 lo hemos elegido a partir de un método de Runge—Kutta de orden 3 para un tamaño depaso prefijado h, vemos que la aproximación empieza a oscilar, con lo cual, a pesar de tener unaaproximación local de orden 3, el error global crece de forma dramática. Veremos qué ocurre coneste método, pero antes veamos cómo deducir los métodos de multipaso a partir de la integraciónnumérica.

3.4 Métodos de multipaso deducidos a partir de la integra-ción numérica

Partamos de la ecuación diferencial ½y0 = f(t,y),y(t0) = y0,

y buscamos aproximar y(tf ; t0,y0). Para ello fijamos h = (tf − t0)/n y ti = t0 + hi, i = 0, 1, ..., n.Integrando respecto de la variable independiente

y(ti+1; t0,y0)− y(ti; t0,y0) =Z ti+1

ti

y0(t; t0,y0)dt =

Z ti+1

ti

f(t,y(t; t0,y0))dt.

Si queremos cosntruir un método de p pasos, sustituimos f(t,y(t; t0,y0)) por un polinomio de inter-polación de grado p, que denotaremos Q(t), y que cumplirá la condición

Q(ti − jh) = f(ti − jh,y(ti − jh; t0,y0)), j = i− p, ..., i.

Este polinomio de interpolación verifica que

f(t,y(t; t0,y0)) = Q(t) +E(t),

donde E(t) es el error cometido al aproximar la función por el polinomio interpolador, y que seráclave a la hora de determinar el error local cometido en la aproximación. El método numérico quehemos de construir tendrá la forma

yi+1 = yi +

Z ti+1

ti

q(t)dt,

dondeq(ti − jh) = f(ti − jh,yi−j), j = i− p, ..., i,

es decir, el polinomio interpolador sobre los datos anteriores que serán conocidos. El error local detruncamiento será en este caso

ti+1 = y(ti; t0,y0) +

Z ti+1

ti

Q(t)dt− y(ti+1; t0,y0) = −Z ti+1

ti

E(t)dt,

es decir, dependerá del error que se comete al calcular el polinomio interpolador.Vamos a ver a continuación cómo se construyen los métodos de multipaso explícitos e implícitos.

51

Page 58: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

3.4.1 Métodos de Adams—Bashforth

Para cosntruir estos métodos utilizamos la forma de Newton del polinomio interpolador dada por ladiferencias finitas. Dada la sucesión xi, se definen

∇1xi = ∇xi = xi − xi−1,

y para k > 1,∇kxi = ∇k−1xi −∇k−1xi−1.

Por ejemplo

∇2xi = ∇xi −∇xi−1 = (xi − xi−1)− (xi−1 − xi−2) = xi − 2xi−1 + xi−2,

y

∇3xi = ∇2xi −∇2xi−1= (xi − 2xi−1 + xi−2)− (xi−1 − 2xi−2 + xi−3)= xi − 3xi−1 + 3xi−2 − xi−3.

Por convenio, estableceremos que ∇0xi = xi.Si t = ti + sh, el polinomio de interpolación tiene la forma

q(t) = f(ti,yi) + s∇f(ti,yi) +µs+ 12

¶∇2f(ti,yi) + ...+

µs+ p− 1

p

¶∇pf(ti,yi)

=

pXj=0

µs+ j − 1

j

¶∇jf(ti,yi),

donde µmk

¶=m(m− 1)...(m− k + 1)

k!

para m ∈ R y k ∈ N, y µm0

¶= 1.

Además, el error del polinomio de interpolación

E(t) =

µs+ pp+ 1

¶hp+1fp+1)(ti,y(ti; t0,y0)) +O(hp+2).

Como s = t−xih, reescribimos

yi+1 = yi +

Z ti+1

ti

q(t)dt = yi + h

Z 1

0

q(xi + sh)ds.

52

Page 59: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

El método de Adams—Bashforth se construye a partir del desarrollo

yi+1 = yi + h

Z 1

0

q(xi + sh)ds

= yi + h

ÃZ 1

0

pXj=0

µs+ j − 1

j

¶∇jf(ti,yi)ds

!

= yi + h

ÃpXj=0

∇jf(ti,yi)Z 1

0

µs+ j − 1

j

¶ds

!

= yi + h

pXj=0

γj∇jf(ti,yi),

donde los coeficientes

γ0 = 1,

γj =

Z 1

0

µs+ j − 1

j

¶ds, j = 1, 2, ..., p,

se calculan de forma directa. De hecho, los primeros coeficientes son

γ1 γ2 γ3 γ4 γ5 γ612

512

38

251720

95288

1908760480

Además, el error local de truncamiento es de la forma

ti+1 = −hp+2γp+1yp+2(ti; t0,y0) +O(hp+3),

por lo que es orden O(hp+2). Así, si buscamos un método de error global O(h3), necesitaremos quep = 2, siendo el método de la forma

yi+1 = yi + h

µf(ti,yi) +

1

2∇f(ti,yi) +

5

12∇2f(ti,yi)

¶= yi + h

µf(ti,yi) +

1

2[f(ti,yi) + f(ti−1,yi−1)]

+5

12[f(ti,yi)− 2f(ti−1,yi−1) + f(ti−2,yi−2)]

¶= yi +

1

12h (23f(ti,yi)− 16f(ti−1,yi−1) + 5f(ti−2,yi−2)) .

Como vemos, al método de Adams—Bashforth le podemos aplicar el teorema de convergencia glo-bal, por lo que será convergente, al contrario de lo que ocurría con el primer ejemplo que estudiamos.

3.4.2 Métodos de Adams—Moulton

Los métodos de Adams—Moulton se obtienen de igual manera que los explícitos de Adams—Basfhforth,pero ahora tomando el polinomio interpolador en t = ti+1 + sh, con lo que

q∗(t) = f(ti+1,yi+1) + s∇f(ti+1,yi+1) +µs+ 12

¶∇2f(ti,yi) + ...+

µs+ p− 1

p

¶∇pf(ti+1,yi+1)

53

Page 60: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

=

pXj=0

µs+ j − 1

j

¶∇jf(ti+1,yi+1),

con lo que, como s = t−xi+1h, reescribimos

yi+1 = yi +

Z ti+1

ti

q∗(t)dt = yi + h

Z 0

−1q∗(xi + sh)ds.

Desarrollando, obtenemos

yi+1 = yi + h

Z 0

−1q(xi + sh)ds

= yi + h

ÃZ 0

−1

pXj=0

µs+ j − 1

j

¶∇jf(ti+1,yi+1)ds

!

= yi + h

ÃpXj=0

∇jf(ti+1,yi+1)Z 0

−1

µs+ j − 1

j

¶ds

!

= yi + h

pXj=0

γ∗j∇jf(ti+1,yi+1),

donde

γ∗0 = 1,

γ∗j =

Z 0

−1

µs+ j − 1

j

¶ds, j = 1, 2, ..., p,

y el error local de truncamiento es

ti+1 = −hp+2γ∗p+1yp+2(ti; t0,y0) +O(hp+3).

Los primeros coeficientes son en este caso

γ∗1 γ∗2 γ∗3 γ∗4 γ∗5 γ∗6−12− 112− 124− 19720

− 3160

− 86360480

Tomando p = 2 obtenemos el método de dos pasos y orden tres

yi+1 = yi + h

µf(ti+1,yi+1)−

1

2∇f(ti+1,yi+1)−

1

12∇2f(ti+1,yi+1)

¶= yi +

h

12(5f(ti+1,yi+1) + 8f(ti,yi)− f(ti−1,yi−1)) .

A la hora de aproximar yi+1, démonos cuenta de que si definimos

G(yi+1) = yi + h

pXj=0

γ∗j∇jf(ti+1,yi+1),

= yi + h

pXj=0

β∗j f(ti+1−j,yi+1−j),

54

Page 61: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

por lo que

||G(y)−G(z)|| = h|β∗0|||f(ti+1,y)− f(ti+1, z)||≤ h|β∗0|L||y− z||,

dado que f es Lispchitziana en la variable y. Así, para que se pueda aplicar el Teorema del puntofijo a G hemos de elegir tamaños de paso h suficientemente pequeños para que

h|β∗0|L < 1.

3.5 Estabilidad de los métodos multipaso lineales

Sea y(t; t0,y0) la solución del problema de condiciones iniciales½y0 = f(t,y),y(t0) = y0,

y sean tf > t0, y h = t1−t0n. Sea yi+1 la aproximación de y(tt+1; t0,y0) dada por el método multipaso

yi+1 =

pXj=0

ajyi−j + h

pXj=0

bjf(ti − jh,yi−j), (3.3)

donde los coeficientes se han escogido de manera que el error local de truncamiento esO(hk), k ≤ p+1.Como sabemos, la convergencia local no implica necesariamente la convergencia global. Vamos a verqué propiedad adicional hemos de añadir a la convergencia local para que el método sea globalmenteconvergente.Para ello, aplicamos el método al problema½

y0 = 0,y(0) = y0,

con lo que el método multipaso queda como

yi+1 =

pXj=0

ajyi−j,

o equivalentementeyi+1 − a0yi − a1yi−1 − ...− apyi−p = 0,

que es una ecuación en diferencias lineal cuyo polinomio característico es

p(λ) = λp+1 − a0λp − ...− ap.

Por la condición de convergencia local, sabemos que

p(1) = 1−pXj=0

aj = 0,

55

Page 62: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

por lo que 1 es solución particular de la ecuación en diferencias. Dicha ecuación, será entonces establesi las restantes raices de p(λ) tienen módulo menor o igual que uno, y si éste es uno, se trata de unaraíz simple. En este caso, el método (3.3) puede escribirse como⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

z1i+1 = z2i ,

z2i+1 = z3i ,

......

zpi+1 = zp+1i ,

zp+1i+1 =Pp

j=0 ajzp−j+1i + h

Ppj=−1 bjf(ti − jh, z

p−j+1i ),

donde zp−j+1i = yi−j, j = 0, 1, ..., p. Matricialmente lo escribimos como⎛⎜⎜⎜⎜⎝z1i+1z2i+1...zpi+1zp+1i+1

⎞⎟⎟⎟⎟⎠ =

⎛⎜⎜⎜⎜⎝0 1 0 ... 0 00 0 1 ... 0 0... ... ... ... ... ...0 0 0 ... 0 1a0 a1 a2 ... ap−1 ap

⎞⎟⎟⎟⎟⎠ ·⎛⎜⎜⎜⎜⎝

z1iz2i...zpizp+1i

⎞⎟⎟⎟⎟⎠+ h⎛⎜⎜⎜⎜⎝

00...0Pp

j=−1 bjf(ti − jh, zp−j+1i+1 )

⎞⎟⎟⎟⎟⎠ .Si la matriz

A =

⎛⎜⎜⎜⎜⎝0 1 0 ... 0 00 0 1 ... 0 0... ... ... ... ... ...0 0 0 ... 0 1a0 a1 a2 ... ap−1 ap

⎞⎟⎟⎟⎟⎠tiene radio espectral

ρ(A) = max |μ| : μ valor propio de A= max |μ| : p(μ) = 0 ≤ 1,

entonces si b−1 = 0, el método multipaso verifica las condiciones del teorema de convergencia global,por lo que si el método es estable de orden local de truncamiento O(hk+1), entonces será convergentede ordenO(hk+1). Si b−1 6= 0, la estabilidad también implica la convergencia, aunque la demostraciónsale fuera de los contenidos del curso.Si consideramos el método del ejemplo inicial,

yi+1 = −4yi + 5yi−1 + 4hf(ti,yi) + 2hf(ti − h,yi−1).

vemos quep(λ) = λ2 + 4λ− 5,

que tiene por raíces 1 y −5, por lo que el método no es estable, y de ahí su divergencia. Paraconseguir un método convergente, hemos de imponer que el orden local de truncamiento sea unaunidad menor, esto es, quedarnos con las ecuaciones⎧⎨⎩ a0 + a1 = 1,

−a1 + b0 + b1 = 1,a1 − 2b1 = 1,

56

Page 63: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

que nos da el conjunto uniparamétrico de soluciones⎧⎪⎪⎨⎪⎪⎩a0 = −2μ,a1 = 1 + 2μ,b0 = 2 + μ,b1 = μ,

μ ∈ R,

que da lugar a la familia de métodos

yi+1 = −2μyi + (1 + 2μ)yi−1 + (2 + μ)hf(ti,yi) + μhf(ti−1,yi−1),

con polinomio característicop(λ) = λ2 + 2μλ− (1 + 2μ),

que para ser estable de cumplir que−1 ≤ 1 + 2μ ≤ 1,

o equivalentemente−1 ≤ μ ≤ 0,

y eligiendo μ = 0, obtenemos el método

yi+1 = yi−1 + 2hf(ti,yi),

conocido como la regla del punto medio. Es obviamente estable ya que

p(λ) = λ2 − 1,

cuyas raices son ±1.

3.6 Fórmulas BDF

Las fórmulas BDF se basan en la utilización del polinomio interpolador en los puntos yi+1−j, j =0, 1, ..., p, h = tf−t0

n, de la solución aproximada dada por

q(s) =

pXj=0

µs+ j − 1

j

¶∇jyi+1,

cuyo error es

E(t) =

µs+ pp+ 1

¶hp+1fp+1)(ti,y(ti; t0,y0)) +O(hp+2).

y suponemos que se verifica la ecuación diferencial para dicho polinomio en ti+1, esto es,

q0(0) = f(ti+1,q(ti+1)).

Por una parte, q(ti+1) = yi+1, y por otra, dado que t = ti+1 + sh

q0(s) =d

ds

ÃpXj=0

µs+ j − 1

j

¶∇jyi+1

!

=

pXj=0

h−1d

dt

µs+ j − 1

j

¶∇jyi+1.

57

Page 64: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

Como µs+ j − 1

j

¶=(s+ j − 1)(s+ j − 2)...(s+ 1)s

j!= gj(s),

se tiene que

g0j(0) =

½ (j−1)!j!

= 1jsi j > 0,

0 si j = 0,

de dondepXj=1

1

j∇jyi+1 = hf(ti+1,yi+1),

que se conocen como las fórmulas BDF. Por ejemplo, si p = 2,

hf(ti+1,yi+1) =2Xj=1

1

j∇jyi+1 = ∇yi+1 +

1

2∇2yi+1

= yi+1 − yi +1

2(yi+1 − 2yi + yi−1)

=3

2yi+1 − 2yi +

1

2yi−1,

y como vemos es de dos pasos.Como estos métodos son implícitos, de igual manera que pasaba con los métodos de Adams

implícitos, el tamaño de paso h debe ser elegido para que el método iterativo sea convergente conconstante de Lipschitz menos que uno. En cuanto al error de truncamiento local, puede probarseque es de orden O(hp+1).

3.7 Metodos predictor—corrector

Los métodos de predictor corrector se basan en utilizar alternativamente métodos multipaso explícitose implícitos de un mismo orden para aproximar la solución. El método explícito se usa para obtenerla condición inicial con la que obtener el mediante un método iterativo, una mejor aproximación conel método implícito.Por ejemplo, consideramos como predictor el método explícito

yi+1 = −4yi + 5yi−1 + 4hyi + 2hyi−1, (3.4)

y como corrector, consideramos de entre la familia

yi+1 = a0yi + a1yi−1 + hb−1f(ti + h,yi+1) + hb0f(ti,yi) + hb1f(ti − h,yi−1),

dados por el sistema ⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩a0 = 1− λ,a1 = λ,b−1 =

512− λ,

b0 =23− 3λ,

b1 = − 112+ 5λ,

λ ∈ R.

58

Page 65: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

Para obtener un método convergente, calculamos las raices de

p(t) = t2 + (λ− 1)t− λ,

que son

t =1− λ±

p(1− λ)2 + 4λ

2

=1− λ±

p(1 + λ)2

2=1− λ± (1 + λ)

2,

que nos da 1 y −λ como soluciones, por lo que el método con λ = 0, dado por

yi+1 = yi + h5

12f(ti + h,yi+1) + h

2

3f(ti,yi)− h

1

12f(ti − h,yi−1), (3.5)

será convergente.Un esquema para aplicar estos métodos sería el siguiente:

• Como el método es de orden 2, utilizamos un método de Runge—Kutta de orden 3 para estimary1.

• Predecimos el valor de y2 por y∗2 con el método (3.4). Como el error local es de orden 4, estaaproximación será de este orden.

• Mejoramos la aproximación anterior calculando y2 con el método (3.5), tomando como puntoinicial para hacer las iteraciones el punto y∗2.

• Cuando el valor obtenido de y2 sea aceptable, volvemos a aplicar los dos puntos anteriores paraobtener y3, y así sucesivamente.

Hemos de destacar que el método (3.5) sí es estable y por tanto convergente.

3.8 Multipaso o Runge—Kutta

La elección del método numérico utilizado para obtener la solución aproximada depende en granmedida del coste de computación de la función f . Si este coste es bajo, en general utilizaríamosun método de Runge—Kutta, pero cuando este es alto utilizamos uno de multipaso, ya que el costecomputacional de cálculo de f es menor en este caso. Además, las distintas evaluaciones de f enetapas anteriores se pueden utilizar en varios pasos, por lo que no cada vez que se aplica el métodomultipaso hay que evaluar la función f en todos los pasos.

59

Page 66: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Métodos multipaso

60

Page 67: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Parte II

Bloque de práctica

61

Page 68: Métodos numéricos para las ecuaciones diferenciales Aplicaciones
Page 69: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Capítulo 4

Introducción a Mathematica

Sumario. Generalidades de Mathematica. Funciones, derivadas, representacióng ,trafica de funciones.

Mathematica es un programa que permite hacer cálculos matemáticos complicados con granrapidez. Para entendernos, es como una calculadora gigante a la que no sólo podemos pedirle que hagacálculos numéricos, sino que también hace derivadas, cálculo de primitivas, representación gráfica decurvas y superficies, etcétera.

Abordaremos en esta práctica una iniciación a Mathematica partiendo desde cero, intentandoponer de manifiesto su utilidad a la hora de trabajar con expresiones matemáticas complicadas, biensean éstas numéricas o simbólicas, permitiendo hacer operaciones en poco coste de tiempo y conbastante facilidad.

Pretendemos con esta práctica introducir al alumno en el manejo de este potente programa quepuede servirle de utilidad en futuros cálculos que deba realizar. Esencialmente vamos a aprender autilizar el programa, por lo que esta práctica trata de explicar como pedirle a Mathematica que hagaaquello que nosotros deseamos. Además, el programa puede utilizarse para corregir los problemaspropuestos al alumno en la clase de problemas.

A pesar de la utilidad del programa, debemos hacer hincapié en el hecho de que es necesariopor parte del alumno un conocimiento matemático teórico de todas las funciones y sentencias quevamos a usar. Por ejemplo, aunque una calculadora multiplica números con suma facilidad, sólo nospercatamos de su potencia en cuanto conocemos dicha operación y somos capaces de realizarla deun modo mucho más lento. Con Mathematica ocurre lo mismo. Sólo conociendo teóricamente lasoperaciones que Mathematica realiza nos percataremos de su utilidad.

4.1 Preliminares

Cuando se arranca Mathematica, aparece una pantalla blanca vacía. En ella podemos escribiraquellas operaciones que queremos que realice. Una vez tecleada la operación, hemos de pulsar lasteclas shift + enter para obtener el resultado. Por ejemplo, supongamos que queremos hacer la

63

Page 70: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

operación 2 + 2. Teclearemos entonces2 + 2

en la pantalla. A continuación pulsamos mayúsculas + enter o la tecla intro en el teclado numéricoy a continuación aparecerá en pantalla

In[1] := 2 + 2

Out[1] = 4.

Todas las operaciones realizadas por el programa cuando se pulsan las teclas mayúsculas + entertienen asignadas un número de entrada marcado por In[·] y el mismo número de salida cuando serealiza la operación marcado por Out[·]. Podrá aparecer únicamente un nú mero de entrada, comoveremos posteriormente. Al ir explicando las diferentes operaciones que Mathematica realiza, iremosescribiéndolas en la forma en que el programa lo escribe en la pantalla de ordenador.

Además de la suma se pueden realizar las siguientes operaciones algebraicas como si se tratarade una calculadora:

x+ y suma de númerosx− y resta de númerosx/y división de números

x y x ∗ y producto de númerosxˆy potencia xy

Cuando Mathematica realiza alguna de las siguientes operaciones, por ejemplo 1/3+2/7, operaráestos números ofreciendo siempre su valor exacto, es decir, se tiene

In[2] := 1/3 + 2/7

Out[2] =13

21.

Sin embargo, a veces nos es más útil tener el valor de este número expresado con cifras decimales.Para ello se tienen las sentencias

x//N N[x]

N[x, n].

Las primeras escriben el número x con seis cifras significativas, mientras que la segunda escribedicho número con un número n de cifras significativas que nosotros prefijamos (en la versión 4.0 delprograma y posteriores esta última sentencia no siempre funciona del modo deseado). Por ejemplo,si escribimos

In[3] := 1/3 + 2/7 //N

Out[3] = 0.619048,

obtendremos el resultado con 6 cifras significativas. Si por el contrario escribimos

In[4] := N [1/3 + 2/7, 10]

Out[4] = 0.619047619

64

Page 71: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

lo obtendremos con un número 10 cifras significativas.

En caso de las operaciones numéricas también tendremos una valor numérico aproximado con seiscifras significativas si en la operación escribimos algún número en forma decimal. Así, al teclear

In[5] := 1./3 + 2/7

Out[5] = 0.619048.

Mathematica distingue así entre operaciones algebraicas exactas y operaciones numéricas aproxi-madas.

4.2 Paréntesis, corchetes y llaves

Mathematica distingue entre paréntesis, corchetes y llaves. Cada uno de estos elementos realizauna labor bien diferenciada en la estructura interna del programa. A grosso modo podemos indicarlas siguientes generalidades:

• Los paréntesis se usan en las operaciones algebraicas para indicar la preferencia a la hora dehacer las operaciones. Así el paréntesis de

In[6] := (1 + 3)/7

Out[6] =4

7

se usa para indicar que primero hacemos la suma 1+3 y luego dividimos entre 7. Hemos deseñalar que Mathematica sigue el orden conocido de preferencia sobre las operaciones. Asi porejemplo, si escribimos

In[7] := 1 + 3/7

Out[7] =10

7

vemos como el resultado cambia notablemente al realizarse en primer lugar la división y pos-teriormente la suma.

• Los corchetes [·] se usan para escribir el argumento de una función bien sea matemática, biensea una operación específica del programa. Por ejemplo la función sinx se escribe Sin[x], ypara escribir un número x real con seis cifras significativas escribimos N[x].

• Las llaves · se utilizan para asignar valores numéricos a las variables, por ejemplo a la horade calcular límites de funciones. También se usan para construir conjuntos o listas de objetosmatemáticos, como por ejemplo matrices o vectores.

En general es conveniente tener claro en qué momento se han de emplear los paréntesis, loscorchetes y las llaves, ya que si confundimos su uso y escribimos por ejemplo Sinx o Sin(x) enlugar de Sin[x], el programa nos lo hará saber mandándonos un mensaje de error de color azul.

65

Page 72: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

Actividad 1 Realizar las siguientes operaciones con Mathematica:

(a) 2.4+32

4∗7.22 (b) (2− 3.1)23 (c) 3.75 + 8.987

(d) (3 + 4 ∗ 5)5.6 (e)µ2.3 ∗ 42− 4.52

¶56(f) 2× 102 + 3× 10−3

(g) (1 + i)(3− i) (h)1 + i

3− i (i) (1 + i)7

Actividad 2 Dar los resultados de la aplicación 1 con 15 cifras significativas.

4.2.1 Errores

Puede ocurrir que al teclear una operación en Mathematica y pulsar las teclas mayúscular +enter, el programa nos devuelva una salida conteniendo frases de color azul. Esto ocurre cuando hayalgún tipo de error o problema que el programa detecta. Estos errores pueden ser básicamente dedos tipos:

• Errores en la sintaxis de una sentencia. Por ejemplo al escribir [1 + 2] ∗ 3 en vez de (1 + 2) ∗ 3o N(π) en vez de N[π].

• Errores producidos porque la expresión matemática o la operación realizada tiene algún pro-blema, aunque esté bien escrita. Por ejemplo, si intentásemos calcular el determinante de unamatriz no cuadrada.

Otras veces, el programa puede devolver un resultado erróneo aunque no nos escriba frases azules.Es decir el programa no detecta ningún error a pesar de que éste existe. Por ésto es necesario saberqué estamos esperando de la operación que hemos pedido que el programa nos haga para así criticarel resultado y valorarlo en su justa medida. No debeis nunca de olvidar que el programa calcularápidamente, pero es tonto.

4.3 Funciones matemáticas de interés

Mathematica posee una serie de funciones matemáticas predefinidas que se escriben del siguientemodo:

Sqrt[x] =√x Exp[x] = ex

Log[x] = log x Log[b, x] = logb xSin[x] = sinx Cos[x] = cosx

ArcSin[x] = arcsinx ArcCos[x] = arccosxTan[x] = tanx ArcTan[x] = arctanx

n! = factorial de n Round[x] = parte entera de xAbs[x] = |x| FactorInteger[n] = factores primos de n

66

Page 73: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

Es importante destacar que hemos de escribir las funciones tal y como se detalla en la anterior ta-bla, respetando la sintaxis totalmente. Mathematica distingue entre letras mayúsculas y minúsculas,y todas las funciones empiezan con letra mayúscula. Entonces podemos calcular

In[7] := Sqrt[16]

Out[7] = 4

In[8] := Sqrt[2]

Out[8] =√2

In[9] := Sqrt[2] //N

Out[9] = 1.41421

In[10] := N[Sqrt[7], 10]

Out[10] = 2.6457513111.

Las constantes matemáticas más interesantes son:

Pi = π ' 3.14159E = e ' 2.71828

Infinity = ∞I = i =

√−1

Degree = conversion de grados a radianes

Por ejemplo, para calcular el seno de 20 grados escribiríamos

In[11] := Sin[20 Degree] //N

Out[11] = 0.34202.

Si quisiéramos mayor precisión en las anteriores constantes, debemos escribir

In[12] := N[Pi,10]

Out[12] = 3.1415926536,

que nos proporciona un valor del número π con diez cifras decimales.

Actividad 3 Calcular los siguientes valores con 6 cifras significativas:

(a) sin 30 + cos 15 (b) log2 256 (c) e10!

(d) (sin 1)2 (e)plog 34 + e12 (f)

¯arcsin 1

2+ log 2√

2

¯4.4 Aprovechando cálculos anteriores

A veces es posible que tengamos que hacer una sucesión de cálculos consecutivos de manera quecada nueva operación se base en la anterior. Parece necesaria entonces una sentencia que nos remita aresultados anteriores sin tener que escribir la operación de nuevo. Dicha sentencia es %. Por ejemplo,

67

Page 74: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

si queremos calcular cos (sin 20) tendríamos que calcular primero sin 20, para después calcular elcoseno de dicha cantidad. Esta operación podríamos hacerla del modo siguiente:

In[13] := Sin[20 Degree] //N

Out[13] = 0.34202

In[14] := Cos[%]

Out[14] = 0.942079.

Aquí Cos[%] nos calcula el coseno del resultado obtenido en la salida 13. Para remitirnos a unresultado obtenido dos pasos antes debemos escribir %%, y para resultados obtenidos k pasos antesescribiremos k símbolos %. Para remitirnos a un resultado obtenido en la salida n podemos tambiénescribir %n. Por ejemplo Cos[%13] también nos remite a la salida 13.

4.5 Definición de variables y funciones

Supongamos que tenemos que hacer una serie de cálculos en los cuales interviene repetidamenteuna constante, como por ejemplo la constante de la gravitación universal, o al estudiar valoresparticulares de la función f (x) = (1.45)x + sinx. Es útil entonces definir variables con estos valoresy funciones nuevas para minimizar el tiempo de escritura y hacer las operaciones de forma más ágil.

Las variables pueden ser designadas por letras o por sucesiones de letras. Supongamos quequeremos definir la constante de la gravitación universalG = 6.67×10−11 conMathematica. Entoncesdeberíamos hacer

In[15] := G = 6.67× 10ˆ− 11Out[15] = 6.67× 10−11

Si ahora tenemos dos cuerpos de masa 3 kilogramos separados a una distancia de 10 metros, la fuerzacon la que se atraen dichos cuerpos se calcula

In[16] := G ∗ 3ˆ2/(10ˆ2)Out[16] = 6.003× 10−12.

Para desposeer a G de su valor debemos teclear

In[17] := G = .

o bienIn[18] := Clear[G].

Algunas letras están asignadas ya por defecto por Mathematica y no pueden ser utilizadas paradefinir variables. Una de ellas es N. Si intentásemos escribir N=2, el programa devolverá una sentenciaazul de error.

A la hora de trabajar con variables en Mathematica, hemos de tener en cuenta las siguientesreglas. Si x e y son dos variables que hemos definido con anterioridad, entonces

68

Page 75: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

• x y representará el producto x · y.

• xy es una nueva variable formada por dos letras.

• 5x es el producto de 5 por x..

• xˆ2y es el producto x2y y no x2y.

Por otra parte, si en unamisma línea queremos definir varias variables, o escribir varias expresionesdebemos separar estas con ”;”. Por ejemplo

In[19] := x = 1; y = 2; z = x+ y

Out[19] = 3.

ha asignado el valor 1 a x, 2 a y y 3 a z, y sólo ha escrito el último valor. Si al final de la últimaexpresión ponemos también ”;” la operación no proporciona ninguna salida, es decir la expresión

In[20] := x = 1; y = 2; z = x+ y;

no proporciona a continuación un Out[20] al pulsar mayúsculas + enter y asigna los mismos valoresque en la sentencia anterior.Para definir nuevas funciones hemos de usar la siguiente estructura:

nombrefunción[x1 , x2 , ..., xn ] := expresión.

El símbolo _ se usa para indicar que la letra que lo antecede es una variable de la función. Porejemplo, para definir la función f (x) = (1.45)x + sinx debemos escribir

In[21] := f [x ] := 1.45ˆx+ Sin[x].

Entonces si tecleamos

In[22] := f [1]

Out[22] := 3.18975.

obtenemos el valor de dicha función en 1. Para eliminar la función debemos escribir

In[23] := Clear[f, x]

indicando tanto la variable como el nombre de la función.Hemos visto como introducir funciones escalares, pero a menudo es necesario trabajar con fun-

ciones vectoriales, por ejemplo la función

f(x, y, z) = (xy, x sin z),

que como vemos es una función f : R3 → R2. Para ello definimos la función como

In[24] := f [x , y , z ] := x ∗ y, x ∗ Sin[z].

69

Page 76: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

Si tecleamos ahora

In[25] := f [1, 1, P i]

Out[25] := 1, 0

obtenemos un vector del plano. Para obtener las funciones coordenadas debemos escribir

In[26] := f [1, 1, P i][[1]]

Out[26] := 1

o

In[27] := f [1, 1, P i][[2]]

Out[27] := 0

según queramos trabajar con la primera o segunda coordenada.

4.6 Derivadas de funciones

Supongamos que tenemos una función de una variable real f (x1, x2, ..., xn) a la que queremos calcularsu derivada o derivada parcial respecto de alguna de sus variables. El comando que realiza ese cálculocon Mathematica es

D[f, x] ó D[f, xi].

Por ejemplo si queremos calcular la derivada de f (x) = sinx escribiremos

In[24] := D[Sin[x], x]

Out[24] = Cos[x],

especificando tanto la función como la variable respecto de la cual vamos a derivar. Para calcular laderivada parcial con respecto a la variable y de la función f(x, y) = sin(x+ y) debemos escribir

In[25] := D[Sin[x+ y], y]

Out[25] = Cos[x+ y].

Para calcular la derivada n—ésima de f (x) , hemos de proceder con el comando

D[f, x, n].

Así la segunda derivada de f (x) = sinx se calcula tecleando

In[26] := D[Sin[x], x, 2]Out[26] = −Sin[x]

y ∂3f∂y3

de la función f(x, y) = sin(x+ y) sería

In[27] := D[Sin[x+ y], y, 3]Out[27] = −Cos[x+ y].

70

Page 77: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

Si ahora queremos calcular derivadas parciales de funciones respecto de diferentes variables hemosde indicarlo del modo siguiente

D[f, x1, x2, ..., xn].

Así por ejemplo∂2f

∂x∂yde la función f(x, y) = sin(x+ y) se calcula escribiendo

In[28] := D[Sin[x+ y], x, y]

Out[28] = −Sin[x+ y].

Exercise 1 Calcula las derivadas de las siguientes funciones:

(a) f (x) = log (sinx) . (b) f (x) = arcsinxex log4(x

2+10). (c) f (x) = 1 +

³3x+ex

x2+tan√x

´. (d) f(x) = xx.

Exercise 2 Demostrar que las funciones siguientes satisfacen la ecuación diferencial que aparece asu lado.

(a) y(x) = 2− x+ x2, de la ecuación y0 + y = x2.

(b) y(x) = 12(e−x

2+ 1), de la ecuación y0 + 2xy = x.

(c) y(x) =√1 + x2, de la ecuación y0y = x.

(d) y(x) = 14(ex − 2xe−x − e−x), de la ecuación y00 + 2y0 + y = ex.

4.7 Representación gráfica de funciones

Mathematica permite hacer representaciones gráficas de funciones de una y varias variables. Paraello hemos de darle tanto la función, como el dominio de definición de ésta.

Para la representación gráfica de funciones reales de variable real, tenemos el comando

Plot[f [x], x, x0, x1],

donde indicamos la función, la variable de la función, y un intervalo [x0, x1] donde hacer la represen-tación. Así, para representar la función f (x) = sinx en el dominio [0, 2π] escribimos

In[30] := Plot[Sin[x], x, 0, 2Pi].

1 2 3 4 5 6

-1

-0.5

0.5

1

71

Page 78: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Introducción a Mathematica

Para representar varias funciones a la vez hemos de escribir todas las funciones que deseemosrepresentar entre llaves y separadas por comas, es decir

Plot[f1[x], f2[x], ..., fn[x], x, x0, x1].Si escribimos entonces

In[31] := Plot[Sin[x],Sin[2x], x, 0, 2Pi]

1 2 3 4 5 6

-1

-0.5

0.5

1

generaremos una representación gráfica simultánea de las funciones sinx y sin 2x.Para volver a representar gráfica una función ya representada previamente tenemos el comando

Show[%n].

Así, si escribimosIn[33] := Show[%31],

1 2 3 4 5 6

-1

-0.5

0.5

1

obtenemos una nueva representación gráfica simultánea de las funciones sinx y sin 2x.

Exercise 3 Representar gráficamente las siguientes funciones de una variable:

(a) f (x) = 1+x1−x2 en el dominio [−2, 2] .

(b) f (x) = ex2 1+x1−x2 en el dominio [−2, 2] .

(c) f (x) = sin¡1+x1−x2

¢en el dominio [−2, 2] .

(d) f (x) = ex cosx en el dominio [−5, 5] .

(e) f (x) = ex

cosxen el dominio [−π,π] .

Exercise 4 Representar conjuntamente las gráficas de los apartados (a), (b) y (c) del ejercicio an-terior.

72

Page 79: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Capítulo 5

Ecuaciones diferenciales con Mathematica

Sumario. Resolución de ecuaciones diferenciales: orden uno y ecuaciones linales.

5.1 Ecuaciones diferenciales de primer orden

Veamos cómo Mathematica es capaz de resolver ecuaciones diferenciales ordinarias. Podemos resolvertanto ecuaciones diferenciales de la forma

y0 = f(x, y)

como problemas de condiciones iniciales de la forma½y0 = f(x, y)y(x0) = y0.

En primer lugar, hemos de aprender a escribir ecuaciones diferenciales de manera que Mathema-tica las entienda. Esto se hace siguiendo la siguiente forma

y0[x] == f [x, y[x]].

Para calcular todas las soluciones de dicha ecuación diferencial tenemos la sentencia

DSolve[y0[x] == f [x, y[x]], y[x], x],

indicando la ecuación y las variables dependiente e independiente. Así para resolver la ecuacióny0 = xy escribiremos

In[1] := DSolve[y0[x] == x ∗ y[x], y[x], x]Out[1] = y[x]→ E

x2

2 C[1]

y la solución de la ecuación diferencial es de la forma y(x) = C[1]ex2/2, donde C[1] es la constante

que proviene de la integración.

73

Page 80: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

Para resolver problemas de condiciones tenemos que utilizar la sentencia anterior escribiendo laecuación diferencial y la condición inicial entre llaves y separadas por comas. Así el problema½

y0 = xyy(1) = 2

se resuelve escribiendo

In[2] := DSolve[y0[x] == x ∗ y[x], y[1] == 2, y[x], x]Out[2] = y[x]→ 2E−

12+x2

2

cuya solución es y(x) = 2e−12+x2

2 .

Exercise 5 Resolver las siguientes ecuaciones diferenciales de orden uno:

(a) yy0 = cos t, y(π) = 3.

(b) y0 = (1 + x)(1 + y).

(c)y2

2+ 2yex + (y + ex)y0 = 0.

(d) 2xy3 + 3x2y2y0 = 0.

(e) y0 = x− y, y(0) = 0.

(f) 2xy3 + 3x2y2y0 = 0, y(2) = 4.

Exercise 6 Hallar la familia de curvas que cumple que para todo punto (x, y) de la misma, ladistancia entre (x, y) y el origen de coordenadas es igual a la longitud del segmento de la rectanormal comprendido entre (x, y) y el punto de corte de la recta normal con el eje x.

Exercise 7 La población de medusas del Mar Menor varía de manera proporcional a la cantidad demedusas que hay en ese momento. Si inicialmente la población de medusas era de 100.000 individuosy al cabo de 2 años dicha población se triplicó, calcular la población al cabo de 10 años. Calcular lapoblación de medusas para cada instante de tiempo t y calcula su límite cuando t→ +∞. En virtuddel resultado obtenido ¿te parece acertado el modelo? ¿qué pegas le encuentras?

Exercise 8 Un tanque contiene 40 l. de agua pura. Una solución salina con 100 gr. de sal por litroentra en el tanque a razón de 1.6 l/min. y sale del tanque a razón de 2.3 l/min. Se pide:

(a) Determinar la concentración de sal en el tanque en cualquier tiempo.

(b) Hallar la cantidad de agua en el tanque cuando la concentración de sal sea máxima.

(c) Calcular la mayor cantidad de sal que llega a haber en el tanque en un momento dado.

(d) Encontrar la concentración de sal en el tanque cuando éste tenga 25 l. de agua.

Exercise 9 La velocidad a la que se transmite un noticia en un grupo es directamente proporcional alnúmero de individuos que aun no la conocen. Si inicialmente había 10 personas que sabían la noticiay a los 3 dias la conocían 100 personas, determinar cuanta gente lo sabrá al mes de producirse lanoticia (tomar como población de España 40.000.000).

74

Page 81: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

5.2 Ecuaciones diferenciales lineales.

Finalizaremos estas prácticas indicando como resolver ecuaciones diferenciales lineales de orden mayorque uno, es decir, expresiones de la forma

yn) + p1(x)yn−1) + ...+ pn−1(x)y

0 + pn(x)y = f(x), (5.1)

donde f(x) y las funciones pi(x), 1 ≤ i ≤ n, son funciones continuas. En primer lugar, hemos deaprender a escribir la ecuación (5.1) de manera que el programa Mathematica la entienda. Esto sehace escribiendo:

y0n...0[x] + p1[x]y

0n−1... 0[x] + ...+ pn−1[x]y0[x] + pn[x]y[x] == f [x]. (5.2)

Nuevamente, la sentencia que se utiliza para resolver ecuaciones de este tipo es DSolve. Así, pararesolver la ecuación (5.1) hemos de escribirla de la forma presentada en (5.2) dentro de una sentenciaDSolve indicando la variable dependiente en primer lugar y la independiente a continuación. Porejemplo, para resolver la ecuación

y00 − y = xhemos de escribir

In[1] := DSolve[y00[x]− y[x] == x, y[x], x]que proporciona la siguiente respuesta

Out[1] = y[x]→ −x+E−xC[1] + ExC[2],

de donde la solución general de la ecuación diferencial es y(x) = −x+C[1]e−x +C[2]ex, donde C[1]y C[2] son dos constantes que provienen de la integración. Podemos además resolver problemas decondiciones iniciales escribiendo éstas entre llaves. Por ejemplo, para resolver el problema anterior½

y00 − y = xy(0) = 1; y0(0) = 0,

hemos de escribir lo siguiente:

In[2] := DSolve[y00[x]− y[x] == x, y[0] == 1, y0[0] == 0, y[x], x]

obteniendoOut[2] = y[x]→ (E−xx)(E2x − Exx).

Notemos aquí que las condiciones iniciales C[1] y C[2] han desaparecido al aplicar las condicionesy(0) = 1 e y0(0) = 0.

Exercise 10 Resolver las siguientes ecuaciones diferenciales lineales con coeficientes constantes:

(a) 2y00 + y0 + y = x.

(b) y00 + 2y0 + y = xex, y(0) = 0, y0(0) = 1.

(c) y000 + 3y00 + 3y0 + y = ex.

(d) y00 + 5y0 + 6y = x3 cosx, y(1) = 1, y0(1) = 0.

(e) 2x2y00 + xy0 + y = 0.

75

Page 82: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

5.3 Aplicaciones de las ecuaciones lineales con coeficientesconstantes.

5.3.1 Movimiento armónico simple.

Como sabemos, el movimiento armónico simple es aquél producido al colocar una masa en muellecomo muestra la siguiente figura

Entonces, si suponemos el cuerpo libre de rozamiento y lo desplazamos verticalmente respecto de suposición de equilibrio, dicho cuerpo comienza a moverse según la ecuación diferencial

my00 + ky = 0, (5.3)

donde m es la masa del objeto y k es la constante de recuperación del muelle. Dado que la masa my la constante k son positivas, puede comprobarse que para cualquier condición inicial, la soluciónde la ecuación (5.3) es de la forma

y(t) = c1 sin(pk/mt) + c2 cos(

pk/mt),

donde c1 y c2 son dos constantes reales que se calcularán una vez tengamos las condiciones inicialesy(0) e y0(0). Si expresamos c1 y c2 en coordenadas polares½

c1 = A cosϕ,c2 = A sinϕ,

obtenemos la expresióny(t) = A sin(ωt+ ϕ), (5.4)

donde A recibe el nombre de amplitud, ω = +pk/m se conoce como frecuencia y ϕ como fase inicial.

Exercise 11 Supongamos que desplazamos el cuerpo de la posición de equilibrio 1m. Se pide calcularlas ecuaciones del movimiento para los siguientes valores de la masa y la constante de recuperacióndel muelle:

(a) m = 1 kg. k = 1 N/m. e y0(0) = 0.

(b) m = 2 kg. k = 0.5 N/m. e y0(0) = 1.

76

Page 83: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

(c) m = 1 kg. k = 4 N/m. e y0(0) = 2.

Dibujar las gráficas de las funciones obtenidas al resolver las ecuaciones anteriores en el intervalo[0, 10π] y comprobar que son periódicas, calculando el periodo de éstas. Obtener además la amplitud,frecuencia y fase inicial de los movimientos anteriores.

5.3.2 Movimiento amortiguado.

Si suponemos que sobre el cuerpo colgado del muelle anterior se ejerce una fuerza de rozamiento pro-porcional a la velocidad con constante de proporcionalidad c, sabemos que la ecuación del movimientose escribe de la forma

my00 + cy0 + ky = 0. (5.5)

En este caso se presentan tres situaciones perfectamente diferenciadas:

• Movimiento sobreamortiguado. c2 − 4mk > 0.

• Movimiento críticamente amortiguado. c2 − 4mk = 0.

• Movimiento subamortiguado. c2 − 4mk < 0.

En esta sección, pedimos resolver el siguiente problema.

Exercise 12 Desplazamos de nuevo el cuerpo de la posición de equilibrio 1 m. Calcular las ecuacio-nes del movimiento en los siguientes casos:

(a) m = 1 kg.; c = 1 N · sg/m y k = 4 N/m.

(b) m = 1 kg.; c = 2 N · sg/m y k = 1 N/m.

(c) m = 1 kg.; c = 3 N · sg/m y k = 1 N/m.

(d) m = 1 kg.; c = 4 N · sg/m y k = 4 N/m.

(e) m = 1 kg.; c = 3 N · sg/m y k = 5 N/m.

Determinar qué tipo de movimiento se obtiene en cada caso y hacer sucesivas representacionesgráficas de las funciones anteriores en los intervalos [0, 2π], [0, 4π], [0, 8π] y [0, 20π]. ¿Qué infor-mación puedes obtener de las gráficas de las funciones? Caracteriza cualitativamente el movimientosobreamortiguado, críticamente amortiguado y subamortiguado.

Exercise 13 Hacer un estudio comparativo de los movimientos generados por los apartados de laActividad 12 con el de un movimiento armónico simple tal que m y k tengan el valor que teníanen el apartado y c = 0. Representar a la vez las gráficas de las funciones obtenidas al resolver laecuación amortiguada y la no amortiguada. Como orientación podeis tomar los intervalos dados enel ejercicio 12 para hacer las comparaciones.

77

Page 84: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

5.3.3 Movimiento forzado.

Supondremos ahora que el cuerpo que inicialmente considerábamos colgado de un muelle, además deestar sujeto a fuerzas de rozamiento, está afectado por una fuerza F (t) que modifica y condiciona sumovimiento. Hablaremos entonces de movimiento forzado, cuya ecuación de movimiento viene dadapor la ecuación diferencial

my00 + cy0 + ky = F (t). (5.6)

Exercise 14 Resolver el problema de condiciones iniciales½y00 + 4y = F (t)y(0) = y0(0) = 0

en los siguientes casos:

(a) F (t) = 1. (b) F (t) = cos t. (c) F (t) = sin t.

(d) F (t) = cos(2t). (e) F (t) = sin(2t). (f) F (t) = et.

(g) F (t) = t. (h) F (t) = sin(2.1t). (i) F (t) = cos(1.9t).

Hacer un estudio de las gráficas de las funciones resultantes en un intervalo de la forma [0, T ],aumentando el valor de T progresivamente, como en el ejercicio 12. ¿Qué gráficas parecen acotadas?¿Qué explicación le das para el caso en que las gráficas no estén acotadas?

Exercise 15 Resolver la ecuación diferencial correspondiente a un muelle donde m = 1, c = 2 yk = 2

y00 + 2y0 + 2y = 0.

Obtener a continuación para cada uno de los siguientes apartados la solución particular de la ecuaciónno homogénea correspondiente y la representación gráfica por separado y conjunta de la soluciónparticular de la ecuación no homogénea y de la solución de los problemas de condiciones inicialescorrespondientes en los intervalos [0, 1], [0, 2], [0, 5] y [0, 10].

(a) y00 + 2y0 + 2y = cos t, x(0) = 1, x0(0) = 0.

(b) y00 + 2y0 + 2y = e−t, x(0) = 1, x0(0) = 0.

(c) y00 + 2y0 + 2y = t2 + 1, x(0) = 1, x0(0) = 0.

¿Qué consecuencias puedes sacar a partir de las gráficas obtenidas?

5.4 Aplicación a los circuitos eléctricos

Consideremos un circuito eléctrico que lleve en serie una bobina de inductancia L, una resistencia R,un condensador de capacidad C y que es alimentado por una f.e.m. V (t), según muestra la siguiente

78

Page 85: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

figura

Suponiendo que L, R y C son constantes, mediante física elemental se sabe que el voltaje generadoV (t) se consume en todos los elementos del circuito, es decir,

V (t) = VC + VR + VL

donde VC, VR y VL representan la diferencia de potencial entre el condensador, la resitencia y labobina respectivamente. Sabiendo que

VC =q(t)

C,

donde q(t) es la carga en cada instante de tiempo,

VR = Rq0(t)

yVL = Lq

00(t),

obtenemos la ecuación lineal de orden dos

Lq00(t) +Rq0(t) + q(t)/C = V (t). (5.7)

Teniendo en cuenta que la intensidad i(t) se define como la derivada de la carga q(t) obtenemos laecuación en términos de la intensidad

Li00(t) +Ri0(t) + i(t)/C = V 0(t) (5.8)

Como puede apreciarse, las ecuaciones (5.7) y (5.8) son idénticas a la ecuación que proviene de lavibración de un muelle. Así, cabe el mismo análisis para circuitos que hicimos en el apartado anterior.

Exercise 16 Consideremos el circuito eléctrico de la figura.

79

Page 86: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones diferenciales con Mathematica

Calcular la intensidad de corriente que pasa por los cables de dicho circuito en los siguientes casos,haciendo un estudio gráfico de la misma, suponiendo que el circuito está descargado (i(0) = i0(0) = 0):

(a) C = 1F ; R = 1Ω; L = 0H; V (t) = sin t.

(b) C = 1F ; R = 2Ω; L = 0H; V (t) = et cos(2t).

(c) C = 2F ; R = 3Ω; L = 1H; V (t) = e3t.

(d) C = 1F ; L = 1H; V (t) = sin t.

(e) C = 0.5F ; R = 1Ω; L = 1H; V (t) = t2.

(f) C = 0.25F ; R = 4Ω; L = 2H; V (t) = −t cos t.

80

Page 87: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Capítulo 6

Programación en Mathematica

Sumario. Generalidades de la programación en Mathematica. Representacióngráfica de datos discretos.

A continuación vamos a explicar algunas sentencias que se utilizan para hacer programas conMathematica. Las principales herramientas que vamos a necesitar para hacer los programas son lassiguientes:

• ¿Cómo establecer comunicación entre el ordenador y quien ejecuta el programa?

• ¿Cómo contruir bucles con Mathematica?

• ¿Cómo definir funciones y variables?

• ¿Cómo interrumpir la ejecución de un programa cuando éste esté bloqueado?

Vamos a explicar como hacer cada una de estas cosas, para poder construir nuestro programa.En primer lugar, vamos a contestar a la primera pregunta: para interrumpir un programa o unaevaluación de Mathematica basta con pulsar las teclas

Alt + coma.

Para las otras cuestiones, se necesita una explicación más amplia que a continuación desarrollamos.

6.1 Operaciones y definición de variables.

6.1.1 Definición de variables y funciones

Como sabemos, para definir una variable numérica basta con tomar una letra o conjunto de letras eigualarlas al valor deseado. Por ejemplo, si queremos asignar a la letra q el valor 6.5, escribiremos enla pantalla

q = 6.5

los que producirá la siguiente respuesta en la pantalla del ordenador

In[1] := q = 6.5

Out[1] = 6.5

81

Page 88: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Si lo que queremos es definir una función, hemos de hacerlo indicando la variable entre corchetessegún el siguiente esquema:

Nombre[var ] = funcion.

Así, para definir la función f(x) = ex cosx hemos de escribir

In[2] := f[x ] = Exp[x] ∗ Cos[x]Out[2] = Exp[x] ∗ Cos[x].

Otro tipo de variables bastante interesantes son las vectoriales. Podemos definir una variablevectorial, por ejemplo de dimensión tres haciendo la siguiente operación

In[3] := a[1] = 5

Out[3] = 5

In[4] := a[2] = 2

Out[4] = 2

In[5] := a[1] = 9

Out[5] = 9

y habremos introducido el vector (5, 2, 9). Si queremos saber el valor de la variable a hemos deescribir

In[6] := ?a

Global 0a

a[1] = 5

a[2] = 2

a[3] = 9

o bien

In[7] := Table[a[i], i, 3]Out[7] = 5, 2, 9.

Podemos dejar sin asignar valores al vector. Si hacemos

In[8] := Clear[a[2]]

y

In[7] := Table[a[i], i, 3]Out[7] = 5, a[2], 9

dejando el valor de a[2] vacio.Para borrar las variables o las funciones utilizaremos la sentencia Clear[var o func]. Escribiendo

Clear[q]

desposeemos a q del valor 6.5 asignado anteriormente.

82

Page 89: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

6.1.2 Operaciones

Como sabemos las cuatro operaciones básicas que tenemos son

+ Suma− Resta∗ Multiplicación/ División

junto con el símbolo =. Podemos combinar esta operaciones para obtener otros tipos de operaciones yestructuras lógicas muy usadas en programación. Como las más interesantes resumimos las siguientes:

Operaciones de Test== Igual! = Distinto< Menor que> Mayor que<= Menor o igual que>= Mayor o igual que

Operaciones Lógicas! o Not Negación&& Y|| OTrue VerdadFalse Falsedad

Por ejemplo, si escribimos 10 < 8, aparecerá en pantalla

In[1] := 10 < 8

Out[1] = False

indicando la falsedad de la afirmación. Si escribimos 7 > 4 y 26= 3 aparecerá

In[2] := 7 > 4 && 2 ! = 3

Out[2] = True

indicando que las dos sentencias son verdaderas. Si ponemos una verdadera y una falsa y escribimos

In[3] := 7 > 4 && 2 = 3

Out[3] = False

mientras que

In[4] := 7 > 4 || 2 = 3Out[4] = True

83

Page 90: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Finalmente

In[5] := Not[7 < 4]

Out[5] = True

dado que lo contrario de 7 < 4 es 7 > 4, que es verdadero.Otras combinaciones de símbolos que pueden resultar útiles son las siguientes:

x++ Aumenta el valor de x una unidadx−− Disminuye el valor de x una unidad++ x Preincrementa x una unidad−− x Predisminuye x una unidadx+ = k Aumenta el valor de x k unidadesx− = k Disminuye el valor de x k unidadesx∗ = k Multiplica x por kx/ = k Divide x por k

Por ejemplo, si hacemos x = 7 y realizamos las siguientes operaciones, obtenemos

In[6] := x++

Out[6] = 7

donde el valor de x ahora es 8, pero en pantalla se escribe su antiguo valor. Si hubiéramos escrito

In[6] := + + x

Out[6] = 8

ahora el valor de x sigue siendo 8 y el programa escribe el valor actual. De un modo parecido funcionacon −−. Si escribimos

In[6] := x+ = 2

Out[6] = 9

el valor de x será 9, igual que el que aparece en pantalla.

6.2 Construcción de programas con Mathematica.

Uno de los temas centrales en los programas que vamos a realizar es la construcción de bucles oprocesos iterativos, los cuales han de ejecutarse un número de terminado de veces. Para la unacorrecta creación de bucles, explicamos a continuación una serie de sentencias útiles. Recuerdan engran medida a expresiones de lenguajes de programación como el Pascal, Basic o C.

6.2.1 If

La sentencia ”If” se emplea para establecer elementos condicionantes en un programa. Las diferentessintaxis con las que puede manejarse son las siguientes.

If[condicion, f ].

84

Page 91: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Si la condición es verdadera el programa ejecutará f , y si es falsa no hará nada. Por ejemplo,

In[1] := If[2 > 1, 2 + 2]

Out[1] = 4

pero si escribimosIn[2] := If[2 > 1, 2 + 2]

no se obtendrá ninguna salida. Otro tipo de expresión es la siguiente

If[condicion, f1, f2].

Ahora, si la condición es cierta el programa ejecutará f1 y si es falsa ejecutará f2. Por ejemplo

In[3] := If[1 > 2, 2 + 1, 2 + 2]

Out[3] = 4.

6.2.2 Which

La sentencia ”which” también se emplea para introducir elementos de toma de decisiones en unprograma. La estructura de la sentencia es la siguiente

Which[test1, f1, test2, f2, ...].

Es útil a la hora de definir funciones a trozos. Por ejemplo

In[1] := h[x ] = Which[x < 0, xˆ2, x > 5, xˆ3,True, 0],

definirá la función

h(x) =

⎧⎨⎩ x2 si x < 0x3 si x > 50 si 0 ≤ x ≤ 5.

6.2.3 Switch

Esta sentencia también es útil para producir toma de decisiones en un programa. Es otra sentenciamuy utilizada para definir funciones a trozos. Su estructura es la siguiente

Switch[condicion, C1, f1, C2, f2, ...],

y funciona de la siguiente manera. Evalúa la condición y la compara con C1. Si ambas coincidenejecuta f1. A continuación, compara la condición con C2 y si ambas coinciden ejecuta f2 y asísucesivamente. Por ejemplo

In[1] := Switch[3, 0, a, 1, b, 3, c]

Out[1] = c.

85

Page 92: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

6.2.4 Do

Esta sentencia es útil para la construcción de bucles o procesos repetitivos, como por ejemplo calcularla suma

10Xi=0

i2. (6.1)

Veamos como hacerla empleando esta sentencia. Para ello necesitamos en primer lugar saber comose comporta y cual es su sintaxis. Son las siguientes:

Do[expresion, i, imax], (6.2)

Do[expresion, i, imin, imax, di], (6.3)

Do[expresion, i]. (6.4)

La sentencia (6.2) evalúa la expresión desde el valor i = 1 hasta el valor i = imax, aumentando suvalor de uno en uno. En la segunda sentencia (6.3) evaluamos la expresión desde un valor mínimoque nosotros escogemos, i = imin, hasta un valor máximo i = imax, pero ahora aumentamos el valorde i en cada paso de di en di unidades. Por último, (6.4) ejecuta la expresión i veces. Así, paraobtener el valor de la suma (6.1) hemos de escribir

In[1] := s = 0;Do[s = s+ iˆ2, i, 0, 10, 1]; sOut[1] = 385.

Hemos de remarcar que la sentencia Do no escribe nada en pantalla, sólo ejecuta la operación quese le indica. Es por ello que al final escribimos s en In[1]. Para obtener la suma de los cubos de losnúmeros pares entre el uno y el 100 debemos escribir

In[2] := s = 0;Do[s = s+ iˆ3, i, 2, 100, 2]; sOut[2] = 13005000.

6.2.5 While

Otra manera de construir bucles es empleando la sentencia While. A diferencia de la anterior, estasentencia incorpora la posibilidad de toma de decisiones. La sintaxis es la siguiente:

While[test, expresion],

que produce la ejecución de la expresión mientras es test de un resultado positivo. Por ejemplo, paraobtener la suma de (6.1) podríamos escribir

In[1] := s = 0; i = 0;While[(i = i+ 1) <= 10, s = s+ iˆ2]; s

Out[1] = 385.

Nótese que, al igual que pasaba con Do, la sentencia While no escribe nada en la pantalla, por loque hemos de indicarle al final que lo escriba. Es importante también darse cuenta de como escribirla condición y el papel que juegan los paréntesis en la misma.

86

Page 93: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

6.2.6 For

Otro modo de construir un bucle combinado con toma de decisiones es la sentencia For, cuya sintaxises la siguiente:

For[inicio, test, incremento, expresion],

que partiendo de un valor inicial, evalúa la expresión a la vez que incrementa el valor inicial hastaque el test falla. Nuevamente no escribe nada en pantalla, por lo que para obtener la suma (6.1)hemos de escribir

In[1] := s = 0;For[i = 0, i <= 10, i++, s = s+ iˆ2]; s

Out[1] = 385.

6.2.7 Break

Frecuentemente al trabajar con bucles puede llegarse a una situación que provoca la repeticiónindefinida del mismo. Por ejemplo, si escribimos

For[i = 1, i < 0, i++, s = s+ iˆ2]

sumaríamos indefinidamente ya que i nunca va a ser menor que cero. Esto provocaría una situaciónen la cual el ordenador se ”cuelga”. La sentencia Break puede ser empleada para impedir este proceso,teniendo la sintaxis

Break[ ].

Así, si escribimosFor[i = 1, i < 0, i++, If[s > 400,Break[ ]]; s = s+ iˆ2],

que producirá una salida del bucle al superar s el valor 400. Escribiendolo en pantalla tendríamos

In[1] := s = 0; For[i = 1, i < 0, i++, If[s > 400,Break[ ]]; s = s+ iˆ2]; s

Out[1] = 0.

6.2.8 Goto, Label

Estas dos sentencias se emplean para conectar dos sitios determinados de un programa. La sintaxisde ambas es

Label[etiqueta],

Goto[etiqueta].

Por ejemplo, si escribimos

In[1] := s = 0; i = 0; Label[hola]; s = s+ iˆ2;

i++; If[i <= 10,Goto[hola]]; s

Out[1] = 385

que nos vuelve a calcular la suma (6.1). Estas sentencias han de emplearse en último lugar, paraintentar escribir bucles que no seamos capaces de construir usando las sentencias anteriores.

87

Page 94: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

6.2.9 Print

Esta sentencia se utiliza exclusivamente para escribir en la pantalla. Como hemos visto, hay senten-cias que no escriben nada en la pantalla. Con Print podemos conocer el valor de las evaluacionesproducidas. Así, por ejemplo, podemos ir viendo paso a paso cómo se calcula el valor de la suma

4Xi=0

i2

escribiendo

In[1] := s = 0; i = 0;While[(i = i+ 1) <= 4, s = s+ iˆ2; Print[s]]

1

5

14

30.

Puede suceder que al escribir frases con la sentencia Print el programa cambie las palabras deorden. Para evitar esto basta con escribir la frase entre comillas, utilizando la expresión

Print[”Frase”].

6.2.10 Input

La sentencia Input se emplea para introducir datos al programa desde el exterior del mismo cuandoéste está en ejecución. Se utiliza para establecer un diálogo entre el programa y el usuario. Lasintaxis es la siguiente:

Input[ ] (6.5)

o

Input[Anotacion]. (6.6)

Cuando se escribe (6.5) aparecerá un cuadro de diálogo que habrá que rellenar y que suelen serdatos útiles del programa. Cuando se escribe (6.6) aparecerá el mismo cuacdro, pero con la anotaciónque hayamos decidido poner. Por ejemplo, se escribimos

Input[escribe tu edad]

88

Page 95: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

aparecerá un cuadro de la siguiente forma

que habrá que cumplimentar y aceptar para que desaparezca. Una vez introducido el valor, porejemplo 22, y aceptado, aparecerá en pantalla lo siguiente:

In[1] := Input[escribe tu edad]

Out[1] = 22.

6.3 Un programa

Vamos a diseñar un programa que aproxime numéricamente mediante el método de Euler la solucióndel problema de condiciones iniciales ½

y0 = ty,y(t0) = y0,

donde las condiciones iniciales t0 e y0, el instante final tf en el queremos conocer el valor de la solución,y el número de pasos con el que este valor se aproximada han de introducirse tras la ejecución delprograma.

f[t , y ] := t ∗ y;t0 = Input[“Tiempo inicial”];

y0 = Input[“Valor de inicial de la funcion”];

tf = Input[“Tiempo final”];

n = Input[“Numero de pasos”];

h = (tf − t0)/n;For[i = 1, i < n+ 1, i++, y1 = y0 + h ∗ f[t0, y0];t1 = t0 + h; y0 = y1; t0 = t1];

Print[“El valor aproximado es ” y0];

89

Page 96: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

6.4 Presentaciones gráficas

A menudo, aparte de los datos numéricos en sí, es interesante tener una representación gráfica delos mismos. En el caso de la aproximación numérica de soluciones de ecuaciones diferenciales, éstosson dados en forma de sucesión de números reales yn, con n variando de 1 a un valor N , de maneraque yN es la aproximación a la solución para el tiempo tf que hemos elegido. En el caso de sistemasde ecuaciones diferenciales, tendremos una sucesión de vectores de los cuales, cada coordenada secorresponde con la aproximación de la función solución en el instante de tiempo dado. En cualquierade los dos casos, es conveniente tener una manera de presentar los datos obtenidos mediante laintegración numérica de una manera gráfica.En general, el comando ListPlot permite hacer tales presentaciones mediante la estructura, pero

previamente, tenemos que tener una manera de introducir en Mathematica las sucesiones con las quedeseamos trabajar.Dada una sucesión de números reales yn, ésta se puede introducir en Mathematica de dos maneras.

La primera es hacerlo como una lista en una variable, que se haría con la sintaxis

In[1] := Y = y1, y2, ..., ynOut[1] = y1, y2, ..., yn

No obstante, si tenemos muchos datos, digamos 1000, no es operativo introducirlos de esta manera.Para ello tenemos la sentencia Append, que tiene la sintaxis

Append[Y, yn+1]

que agrega el dato yn+1 al final de la lista Y . Veamos cómo:

In[1] := Y = 2, 5, 6Out[1] = 2, 5, 6In[2] := Append[Y, 8]

Out[2] = 2, 5, 6, 8

Supongamos ahora que deseamos introducir los mil primeros términos de la sucesión dada por larecurrencia yn+1 = yn + 2, donde y1 = 1, es decir, yn = (1, 3, 5, 7, ...). Escribimos el siguienteprograma

Y = 1;x0 = 1; For[i = 1, i < 1000, i++, x1 = x0 + 2;Z = Append[Y, x1];x0 = x1;Y = Z]

Una vez ejecutamos el programa, almacenaremos en Y el valor de la sucesión.Una manera alternativa de introducir dicha sucesión es mediante los arrays, que en dimensión

uno se escriben comoArray[Y, n].

Esta sentencia genera automáticamente un vector que tiene por coordenadas Y [1],Y [2],...,Y [n], queen principio estará vacío de contenido. Para introducir la sucesión anterior escribiríamos el programa

Array[Y, 1000];x0 = 1; For[i = 1, i < 1001,

i++, Y [i] = x0;x1 = x0 + 2;x0 = x1]

90

Page 97: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Figura~6.1: Representación gráfica proporcionada por la salida del comando ListPlot.

Si deseamos que en el array anterior el índice empiece a contar de cero, debemos usar la forma

Array[Y, n, 0].

Diferentes alternativas para estas sentencias pueden consultarse en la ayuda del programa. Pase-mos a ver cómo representar gráficamente la información con el comando ListPlot, que tiene cualquierade las siguientes estructuras

ListPlot[Y ]

óListPlot[Array[Y, 1000]]

según hallamos introducido la sucesión de una u otra manera. Así, tanto el programa

Y = 1;x0 = 1; For[i = 1, i < 1000, i++, x1 = x0 + 2;Z = Append[Y, x1];x0 = x1;Y = Z]; ListPlot[Y ]

como su alternativa

Array[Y, 1000];x0 = 1; For[i = 1, i < 1001, i++, Y [i] = x0;

x1 = x0 + 2;x0 = x1]; ListPlot[Array[Y, 1000]]

nos devuelven la gráfica dada en la figura 6.1.

El comando ListPlot tiene la opción de unir dos puntos consecutivos con una recta. Tendría lasintaxis

ListPlot[Y,PlotJoined− > True]

óListPlot[Array[Y, n],PlotJoined− > True]

Veamos como obtener una información gráfica de de aproximación que obtuvimos del problema decondiciones iniciales generado a partir de la ecuación y0 = ty. Para ello, basta modificar el programa

91

Page 98: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Figura~6.2: Aproximación de la solución del problema de condiciones inciales.

anterior según se indica

f[t , y ] := t ∗ y;t0 = Input[“Tiempo inicial”];

y0 = Input[“Valor de inicial de la funcion”];

tf = Input[“Tiempo final”];

n = Input[“Numero de pasos”]; Array[s, n+ 1, 0]

h = (tf − t0)/n; s[0] = y0;For[i = 1, i < n+ 1, i++, s[i] = y0 + h ∗ f[t0, s[i− 1]]; t1 = t0 + h; t0 = t1];ListPlot[Array[s, n, 0],PlotJoined− > True];

obtenemos la figura 6.2 como aproximación de la solución con condición inicial y(0) = 1, donde eltiempo final es 10 y el número de pasos 100.

Como puede apreciarse en la gráfica 6.2, en el eje x aparecen datos hasta 100, que se correspondencon el número de pasos. Si hubiésemos elegido 1000 pasos, aparecería obviamente 1000 al ser éstosen número de elementos en la sucesión generada. Podemos hacer una representación gráfica dondeel eje x recorra el intervalo de definición de la función solución de la siguiente manera

f[t , y ] := t ∗ y;t0 = Input[“Tiempo inicial”];

y0 = Input[“Valor de inicial de la funcion”];

tf = Input[“Tiempo final”];

n = Input[“Numero de pasos”]; Array[s, n+ 1, 0]

h = (tf − t0)/n; s[0] = y0; r = t0, s[0]For[i = 1, i < n+ 1, i++, s[i] = y0 + h ∗ f[t0, s[i− 1]]; t1 = t0 + h; t0 = t1; r1 = Append[r, t0, s[i]]; r = r1];ListPlot[r,PlotJoined− > True];

es decir, definiendo una sucesión r de vectores del plano, y representando ésta como muestra la figura6.3

92

Page 99: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Figura~6.3: Representación de la solución en el dominio de definición.

A veces, es necesario tener que representar a la vez dos sucesiones. Por ejemplo, las solucionesaproximadas y exacta de una ecuación diferencial para conocer o estimar la bondad de la aproxima-ción. Por ejemplo, la solución del problema½

y0 = ty,y(0) = 1,

esy(t) = et

2/2.

Supongamos que queremos ver una representación gráfica conjunta de dicha función y su aproxima-ción en el intervalo [0, 1] mediante 100 pasos. Para ello, generamos los valores de la solución exactaen los 100 puntos donde obtenemos la aproximación numérica con el programa

g[t ] := Exp[tˆ2/2]; t0 = 0.; tf = 1;n = 100;h = (tf − t0)/n;graf = t0, g[t0];For[i = 1, i < 101, i++, t1 = t0 + h; t0 = t1;graf1 = Append[graf, t0, g[t0]], graf = graf1]

Igualmente, ejecutamos el programa anterior para obtener la solución aproximada almacenada en lavariable r. Sin embargo, para representar ambas funciones a la vez hemos de activar un paqueteespecial de Mathematica tecleando

<< Graphics‘MultipleListPlot‘

A continuación utilizamos la sentencia MultipleListPlot, que permite representar varias sucesionescon la siguiente sintaxis

MultipleListPlot[r, graf,PlotJoined− > True]

que da lugar a la gráfica 6.4. Otras opciones para esta sentencia pueden verse en el manual delprograma.

93

Page 100: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Programación en Mathematica

Figura~6.4: Representación conjunta de las soluciones aproximada y exacta del problema de condi-ciones iniciales.

94

Page 101: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Apéndice A

Ecuaciones en diferencias

Sumario. Ecuaciones en diferencias. Solución de una ecuación en diferencias.Ecuaciones lineales: teoría general. Transformada Z. Estabilidad de ecuaciones endiferencias lineales. Estabilidad local de ecuaciones en diferencias no lineales.

A.1 Introducción

Una ecuación en diferencias es una expresión de la forma

F (n, yn, yn+1, ..., yn+k) = 0,

donde F : Ω ⊆ Rk+2 → R es una función definida sobre un subconjunto Ω de Rk+1. El número krecibe el nombre de orden de la ecuación. Por ejemplo, las ecuaciones

yn+2 − yn = 0,

nyn+3 − eyn+3yn = yn+1,

son de órdenes 2 y 3, respectivamente. Aparte del orden, existe una gran diferencia entre las ecua-ciones anteriores. En la primera se puede despejar el término yn+2, quedando la ecuación

yn+2 = yn,

mientras que en la segunda ecuación tal operación no puede realizarse, es decir, no se va a poderdespejar explícitamente el término yn+3. Nosotros vamos a centrarnos en el primer tipo de ecuaciones,que llamaremos resueltas respecto de el mayor término de la sucesión yn. A partir de este momento,consideraremos ecuaciones en diferencias de la forma

yn+k = f(n, yn, yn+1, ..., yn+k−1), (A.1)

siendo f : Λ ⊆ Rk → R una función.Por una solución de la ecuación (A.1) entenderemos una solución xn de números reales de manera

que verifiquexn+k = f(n, xn, xn+1, ..., xn+k−1).

95

Page 102: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

Así, por ejemplo la sucesión constante xn = 1 es solución de la ecuación yn+2 = yn. También lo esla sucesión xn = (−1)n. Como vemos, una ecuación puede tener distintas soluciones, pero ésta esúnica si imponemos una serie de k condiciones iniciales. Así, xn = (−1)n es la única solución de laecuación ½

yn+2 = yn,y1 = −1, y2 = 1.

Llamaremos a estos problemas de condiciones iniciales, por su analogía con las ecuaciones diferen-ciales ordinarias.Dentro de las ecuaciones en diferencias, tienen un espcial interés las llamadas ecuaciones lineales,

que son de la formayn+k + a

1nyn+k−1 + ...+ a

knyn = bn,

donde a1n, ..., akn, bn son sucesiones de números reales. En el caso de que las sucesiones a

1n, ..., a

kn sean

constantes, esto es, ain = ai para todo n ≥ 0 y para todo i ∈ 1, ..., k, la ecuación lineal se dirá decoeficientes constantes. En general, también distinguiremos entre ecuaciones homogéneas si bn = 0para todo n ≥ 0, y no homogéneas en caso contrario. Las ecuaciones

yn+3 + nyn+1 − yn = 1,

yn+2 − yn+1 − yn = 0,

son ecuaciones en diferencia lineales, siendo la primera no homogénea y la segunda homogénea y concoeficientes constantes.Las ecuaciones lineales juegan un importante papel en la modelización de circuitos digitales.

Veámoslo con el siguiente ejemplo que proviene de la electrónica (ver [Oga2]). Para fijar ideas,consideremos el siguiente ejemplo.

Este dispositivo genera una sucesión de salida yk para una sucesión de entrada xk de la siguientemanera. El elemento marcado con una a dentro de un círculo amplifica el dato de entrada la magnituda ∈ R. Por ejemplo

El segundo elemento, una D dentro de un rectángulo, retarda la señal o sucesión de entrada una

96

Page 103: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

unidad temporal. Así

Finalmente, el elemento marcado con un símbolo S dentro de un círculo, suma los datos que le llegan:

Combinando varios de estos elementos, construimos los llamados circuitos digitales, como el dela figura anterior. Ésta representa uno de los tipos más sencillos de retroalimentación de una señal.Los datos de entrada vienen dados por la sucesión xk y los de salida por

yk+1 = rk. (A.2)

En el proceso, los datos intermedios rk vienen dados por la expresión

rk = xk − ayk, (A.3)

donde a es un número real. Combinando (A.2) y (A.3) obtenemos la ecuación en diferencias de ordenuno

yk+1 + ayk = xk.

Si complicamos el dispositivo, como se muestra en la figura,

se obtiene una ecuación de orden dos. Aquí

yk+1 = vk,

97

Page 104: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

vk+1 = rk,

rk = xk + byk − avk,

de donde se obtiene la ecuaciónyk+2 + ayk+1 − byk = xk.

Por ejemplo supongamos la ecuación½yk+2 + yk+1 − 2yk = 0;y0 = 0, y1 = 1.

Veremos a continuación cómo abordar el estudio de estas ecuaciones.

A.2 Transformada Z

A.2.1 Definición y propiedades básicas

Consideremos una sucesión de números complejos xk. Se define la transformada Z de la misma comola serie

Z[xk](z) =∞Xn=0

xnzn. (A.4)

Nótese que (A.4) es una serie de Laurent con parte regular x0 y parte singularP∞

n=1 xnz−n, y que

por tanto convergerá en un disco de convergencia de la forma

A(0, r,+∞) = z ∈ C : |z| > r

donde r es el radio de convergencia de la serie de potenciasP∞

n=1 xnzn.

Por ejemplo, si δ = (1, 0, 0, 0, ...) entonces su transformada Z es

Z[δ](z) = 1

definida en todo el plano complejo. Si xk = (1, 1, 1, ...), entonces

Z[1](z) =∞Xn=0

1

zn=

1

1− 1z

=z

z − 1 ,

siempre que |z| > 1.Propiedades básicas.

• Linealidad. Dadas las sucesiones xk e yk y α, β ∈ C, se verifica

Z[αxk + βyk](z) = αZ[xk](z) + βZ[yk](z)

para todo z en el dominio de definición de Z[xk](z) y Z[yk](z).

98

Page 105: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

Demostración. Basta calcular

Z[αxk + βyk](z) =∞Xn=0

αxn + βynzn

= α∞Xn=0

xnzn+ β

∞Xn=0

ynzn= αZ[xk](z) + βZ[yk](z).

• Dada la sucesión xk, definimos la nueva sucesión yk = xk+1. Entonces

Z[yk](z) = Z[xk+1](z) = zZ[xk](z)− zx0.

En general, si k0 ∈ N y definimos yk = xk+k0 , tenemos la fórmula

Z[xk+k0](z) = zk0Z[xk](z)−k0−1Xn=0

xnzk0−n.

Demostración. Calculamos

Z[xk+1](z) =∞Xn=0

xn+1zn

= z∞Xn=0

xn+1zn+1

= z∞Xn=1

xnzn

= z∞Xn=0

xnzn− zx0 = zZ[xk](z)− zx0.

• Dada la sucesión xk y a ∈ C \ 0, se verifica

Z[akxk](z) = Z[xk](z/a).

Dmostración. Calculamos

Z[akxk](z) =∞Xn=0

anxnzn

=∞Xn=0

xn(z/a)n

= Z[xk](z/a).

Por ejemplo, si xk = (1, 2, 22, 23, ...), se tiene que

Z[2k](z) =∞Xn=0

2n

zn=

1

1− 2z

=z

z − 2 .

99

Page 106: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

• Dadas las sucesiones xk y km, m ∈ N, se verifica

Z[kmxk](z) = [−zd

dz]mZ[xk](z),

donde por −z ddzse entiende la operación derivada y luego multiplicación por −z.

Demostración. Hacemos la demostración por inducción en m. Si m = 1, entonces

Z[kxk](z) =∞Xn=0

nxnzn

=∞Xn=1

nxnzn

= z∞Xn=1

nxnzn+1

= z∞Xn=1

d

dz

−xnzn

= zd

dz

Ã−

∞Xn=1

xnzn

!= −z d

dz

à ∞Xn=0

xnzn− x0

!= −z d

dzZ[xk](z).

Si suponemos el resultado cierto para m, veamos que también lo es para m+1. Para esto calculamos

Z[km+1xk](z) = Z[k · kmxk](z) = −zd

dzZ[kmxk](z)

= (−z ddz)[−z d

dz]mZ[xk](z) = [−z

d

dz]m+1Z[xk](z).

Por ejemplo, si xk = k2, entonces

Z[k2](z) = [−z ddz]2Z[1](z) = [−z d

dz]2

z

z − 1

= −z ddz

µ−z ddz

z

z − 1

¶= −z d

dz

µ−zz − 1 +

z2

(z − 1)2¶

=z

z − 1 −3z2

(z − 1)2 +2z3

(z − 1)3 ,

si |z| > 1.

A.2.2 Transformada Z inversa

Es interesante obtener transformadas Z inversas de funciones de variable compleja F (z), es decir,qué sucesiones verifican que

Z[xn](z) = F (z),o equivalentemente

xn = Z−1[F (z)].Para calcular la transformada Z de una función F (z) basta calcular el desarrollo en serie de Laurentcentrada en cero de manera que tenga un anillo de convergencia de la forma z ∈ C : |z| > r, donder ≥ 0. Por ejemplo, si F (z) = 1

z−1 , entonces desarrollando en serie de Laurent

1

z − 1 =1

z

1

1− 1z

=1

z

∞Xn=0

1

zn=

∞Xn=0

1

zn+1

100

Page 107: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

si |z| > 1. Entonces la sucesión

xk = Z−1[1/(z − 1)] = (0, 1, 1, 1, ...).

A.2.3 Aplicación a la resolución de la ecuación en diferencias linealescon coeficientes constantes

Consideramos el problema ½yk+2 + yk+1 − 2yk = 1;y0 = 0, y1 = 1,

obtenido anteriormente. Tomando la transformada Z en la ecuación, usando las propiedades de éstay tomando en consideración las condiciones iniciales obtenemos

Z[yk+2 + yk+1 − 2yk](z) = Z[1](z),

y desarrollando

Z[yk+2 + yk+1 − 2yk](z) = Z[yk+2](z) +Z[yk+1](z)− 2Z[yk](z)= z2Z[yk](z)− z + zZ[yk](z)− 2Z[yk](z)= (z2 + z − 2)Z[yk](z)− z.

Por otra parteZ[1](z) = z

z − 1 .

Entonces

(z2 + z − 2)Z[yk](z) = z +z

z − 1 =z2

z − 1 ,

con lo que

Z[yk](z) =z2

(z2 + z − 2)(z − 1) .

Pasamos a fracciones simples

Z[yk](z) =z2

(z − 1)2(z + 2) =−1

(z − 1)2 −3

z − 1 +4

z + 2,

y calculamos la transformada inversa obteniendo los desarrollos en series de Laurent

1

z + 2=1

z

1

1− −2z

=1

z

∞Xn=0

µ−2z

¶n=

∞Xn=0

(−2)nzn+1

si |z| > 2.1

z − 1 =1

z

1

1− 1z

=1

z

∞Xn=0

1

zn=

∞Xn=0

1

zn+1

si |z| > 1. Finalmente

−1(z − 1)2 =

d

dz

µ1

z − 1

¶=d

dz

à ∞Xn=0

1

zn+1

!=

∞Xn=0

d

dz

1

zn+1= −

∞Xn=0

n+ 1

zn+2

101

Page 108: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

si |z| > 1. Entonces si |z| > 2 se tiene que

Z[yk](z) =−1

(z − 1)2 −3

z − 1 +4

z + 2

= −∞Xn=0

n+ 1

zn+2− 3

∞Xn=0

1

zn+1+ 4

∞Xn=0

(−2)nzn+1

=1

z−

∞Xn=0

n+ 1

zn+2−

∞Xn=0

3

zn+2+

∞Xn=0

4(−2)n+1zn+2

=1

z+

∞Xn=0

−n− 4 + 4(−2)n+1zn+2

,

por lo que si k ≥ 2yk = 4(−2)k+1 − 4 + k.

Veamos a continuación el siguiente ejemplo, en que las raices son complejas:½xn+2 − 2xn+1 + 2xn = 1,x0 = x1 = 0.

Si aplicamos la transformada Z a la ecuación, tenemos que

Z[xn+2 − 2xn+1 + 2xn](z) = Z[1](z).

Por un lado

Z[1](z) =∞Xn=0

1

zn=

1

1− 1z

=z

z − 1 ,

mientras que

Z[xn+2 − 2xn+1 + 2xn](z) = Z[xn+2](z)− 2Z[xn+1](z) + 2Z[xn](z)= z2Z[xn](z)− z2x0 − zx1 − 2zZ[xn](z)− 2zx0 + 2Z[xn](z)= (z2 − 2z + 2)Z[xn](z),

de dondeZ[xn](z) =

z

(z − 1)(z2 − 2z + 2) .

Desarrollamos la función en serie de Laurent para calcular xn. Para ello en primer lugar

z

(z − 1)(z2 − 2z + 2) =z

(z − 1)(z − 1− i)(z − 1 + i)

=1

z − 1 −1

2

1 + i

z − 1− i −1

2

1− iz − 1 + i .

Calculamos de forma separada

1

z − 1 =1

z

1

1− 1z

=1

z

∞Xn=0

1

zn=

∞Xn=1

1

zn,

102

Page 109: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

1

z − 1− i =1

z

1

1− 1+iz

=1

z

∞Xn=0

µ1 + i

z

¶n=

∞Xn=1

(1 + i)n−11

zn,

1

z − 1 + i =1

z

1

1− 1−iz

=1

z

∞Xn=0

µ1− iz

¶n=

∞Xn=1

(1− i)n−1 1zn,

con lo que agrupando

z

(z − 1)(z2 − 2z + 2) =∞Xn=1

1

zn− 12

∞Xn=1

(1 + i)n1

zn− 12

∞Xn=1

(1− i)n 1zn

=∞Xn=1

µ1− 1

2(1 + i)n − 1

2(1− i)n

¶1

zn,

y teniendo en cuenta que

(1 + i)n = 2n/2(cosnπ

4+ i sin

4),

(1− i)n = 2n/2(cosnπ

4− i sin nπ

4),

obtenemosz

(z − 1)(z2 − 2z + 2) =∞Xn=1

³1− 2n/2 cos nπ

4

´ 1zn,

y por tanto

xn = 1− 2n/2 cosnπ

4.

A.2.4 Fórmula de inversión compleja

Supongamos que

Z[xk](z) =∞Xk=0

xkz−k,

y multipliquemos ambos miembros de la igualdad por zn−1, de donde

Z[xk](z)zn−1 =∞Xk=0

xkzn−k−1.

Supongamos una circunferencia del plano complejo γ que contiene todas las singularidades de lafunción Z[xk](z)zn−1, para todo n ≥ 1. Por la fórmula integral de Cauchy

1

2πi

Z[xk](z)zn−1dz =1

2πi

∞Xk=0

xkzn−k−1dz

(∗) =1

2πi

∞Xk=0

xkzn−k−1dz = xn,

103

Page 110: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

dado que Zγ

xkzn−k−1dz =

½0 si n− k 6= 2,

2πixn si n− k = 2.Por el Teorema de los residuos

xn =1

2πi

Z[xk](z)zn−1dz =mXi=1

Res(Z[xk](z)zn−1, zi)

donde si zi es un polo de orden m, entonces el residuo es

Res(Z[xk](z)zn−1, zi) =1

(m− 1)! limz→zidm−1

dzm−1¡(z − zi)mZ[xk](z)zn−1

¢.

Vamos a modo de ejemplo a obtener la transformada inversa de

f(z) =z(z − 1)

(z − 2)2(z + 3) .

Sus polos son 2, de orden dos, y −3 que es de orden uno. Entonces

Res(f(z)zn−1, 2) =1

1!limz→2

d

dz

µ(z − 2)2 zn(z − 1)

(z − 2)2(z + 3)

¶= lim

z→2

d

dz

µzn(z − 1)(z + 3)

¶= lim

z→2

(nzn−1(z − 1) + zn)(z + 3)− zn(z − 1)(z + 3)2

=(n2n−1 + 2n)5− 2n

25=4

252n +

1

50n2n,

y

Res(f(z)zn−1,−3) = limz→−3

(z − 3) zn(z − 1)(z − 2)2(z + 3)

= limz→−3

zn(z − 1)(z − 2)2 = −

4

25(−3n).

De esta formaxn =

4

252n +

1

50n2n − 4

25(−3n).

Sea ahoraf(z) =

1

z2 + 1,

cuyos polos simples son ±i. Entonces

Res(f(z)zn−1, i) = limz→i(z − i) zn−1

(z − i)(z + i)

= limz→i

zn−1

(z + i)=1

2iin−1 = −1

2in,

104

Page 111: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

y

Res(f(z)zn−1,−i) = limz→−i

(z + i)zn−1

(z − i)(z + i)

= limz→−i

zn−1

(z − i) = −1

2i(−i)n−1 = 1

2(−i)n,

por lo que

xn = −1

2in +

1

2(−i)n.

Expresando los números complejos en forma trigonométrica y utilizando la fórmula de De Moivre,obtenemos

xn = −12in +

1

2(−i)n

= −12(cos

π

2+ i sin

π

2)n +

1

2(cos−π2+ i sin

−π2)n

= −12(cos

2+ i sin

2) +

1

2(cos−πn2

+ i sin−πn2),

y dado quesinnπ

2= − sin πn

2y

cosnπ

2= − cos −πn

2

obtenemosxn = − cos

2.

A.2.5 Funciones de transferencia.

La función de transferencia asociada a la transformada Z se define de forma análoga a la función detransferencia asociada a la transformada de Laplace. Consideremos en este contexto una ecuaciónen diferencias finitas de la forma

anyk+n + an−1yk+n−1 + ...+ a1yk+1 + a0yk = xk, (A.5)

siendo ai ∈ R, 0 ≤ i ≤ n. Entonces, suponiendo que yi = 0 i < k, tomando la transformada Zobtenemos que

(anzn + an−1z

n−1 + ...+ a1z + a0)Z[yk](z) = Z[uk](z),por lo que

Z[yk](z) =1

anzn + an−1zn−1 + ...+ a1z + a0Z[uk](z).

Se define enotnces la función de transferencia asociada a la ecuación como

T (z) =Z[yk](z)Z[uk](z)

=1

anzn + an−1zn−1 + ...+ a1z + a0.

105

Page 112: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Ecuaciones en diferencias

Podemos estudiar entonces la estabilidad de la ecuación entendiendo ésta de forma análoga al casocontinuo estudiada en el tema anterior, es decir, si para toda solución asociada a una condición inicialdada se verifica que

limk→∞

yk = 0.

El siguiente resultado caracteriza la estabilidad del sistema en base a los polos de la función detransferencia.

Theorem 3 El sistema dado por la ecuación (A.5) es estable si y sólo si todos los polos de la funciónde transferencia verifican que |z| < 1.

A.3 Ecuaciones no lineales

Consideremos ahora una ecuación en diferencias de orden k no lineal

yn+k = f(n, yn, ..., yn+k−1),

donde f : Λ ⊆ Rk+1 → R es una función continua. Esta ecuación puede reducirse a un sistemade orden uno de la manera siguiente. Definimos las variables z1n = yn, z2n = yn+1, ..., z

kn = yn+k−1.

Entonces ⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩z1n+1 = z

2n,

z2n+1 = z3n,

............zk−1n+1 = z

kn,

zkn+1 = f(n, z1n+1, ..., z

kn+1).

Esto es, si zn = (z1n, ..., zkn), entonces de forma compacta el sistema se puede escribir como

zn+1 = f(n, zn)

dondef(n, z1n, ..., z

kn) = (z

2n, z

3n, ..., z

kn, f(n, z

1n+1, ..., z

kn+1)).

Si la ecuación o sistema de orden uno no depende explícitamente de n, se dice que dicha ecuacióno sistema es autónomo. Por ejemplo,

yn+1 = 4yn(1− yn−1),

es una ecuación autónoma y

xn+1 = xn + yn,

yn+1 = xn − yn,

es un sistema autónomo de orden uno.Las ecuaciones y sistemas de orden uno han tenido un reciente desarrollo debido a que son modelos

de ciencias experimentales como la ecología y la economía. Con frecuencia, presentan lo que se conocecomo comprotamiento caótico o complicado.

106

Page 113: Métodos numéricos para las ecuaciones diferenciales Aplicaciones

Bibliografía

[AbBr] M.L. Abell y J.P. Braselton, Differential Equations with Mathematica, Ed. AP Proffessional.

[BuFa] R. Burden y J. D. Faires, Métodos numéricos, Thomson.

[Cas] E. Castillo y otros, Mathematica, Ed. Paraninfo.

[Dor] J. R. Dormand, Numerical methods for differential equations, CRC Press.

[Ela] S. N. Elaydi, An introduction to difference equations, Springer—Verlag.

[Jim] V. Jiménez López, Apuntes de ecuaciones diferenciales, Servicio de publicaciones, Universi-dad de Murcia, 2000.

[Lam] J. D. Lambert, Numerical methods for ordinary differential equations, Wiley.

[MaMy] B. M. Mahan y R. J. Myers, Química, curso universitario, Addison—Wesley Iberoamericana,1990.

[McPo] M. P. McDowell y J. M. Powers, Mathematical modeling of the Brusselator, Preprint Uni-versidad de Notre Dame (2008).

[NaSa] R. K. Nagle y E. B. Saff, Fundamentos de ecuaciones diferenciales (2a edición), AddisonWesley Longman, 1992.

[Oga2] K. Ogata, Discrete—time control systems, Prentice Hall, 1995.

[Sim] G. F. Simmons, Ecuaciones diferenciales (con aplicaciones y notas históricas), 2a Edición,McGraw—Hill, 1993.

[VJAP] L. Vázquez, S. Jiménez, C. Aguirre y P. J. Pascual, Métodos numéricos para la Física y laIngeniería, McGraw—Hill.

[Wol] Stephen Wolfram, ”The Mathematica Book”, Wolfram Media, Cambridge University Press.

107