Métodos numéricos para las ecuaciones diferenciales Aplicaciones ...
Transcript of 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
Í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
Índice General
ii
Í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
Í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
Í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
Parte I
Bloque de teoría
1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Introducción a las ecuaciones diferenciales
22
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Métodos multipaso
60
Parte II
Bloque de práctica
61
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Programación en Mathematica
Figura~6.4: Representación conjunta de las soluciones aproximada y exacta del problema de condi-ciones iniciales.
94
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
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
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
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
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
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
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
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
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
nπ
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γ
Z[xk](z)zn−1dz =1
2πi
Zγ
∞Xk=0
xkzn−k−1dz
(∗) =1
2πi
∞Xk=0
Zγ
xkzn−k−1dz = xn,
103
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γ
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
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
nπ
2+ i sin
nπ
2) +
1
2(cos−πn2
+ i sin−πn2),
y dado quesinnπ
2= − sin πn
2y
cosnπ
2= − cos −πn
2
obtenemosxn = − cos
nπ
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
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
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