Está en la página 1de 113

Mtodos numricos para las ecuaciones diferenciales

Aplicaciones a la Qumica

Jose S. Cnovas Pea

5 de febrero de 2010
ndice General

Advertencia: Esta es la primera versin de los apuntes de mtodos numricos del cuarto curso
de Ingeniera Industrial. No han sido corregidos y probablemente contengan numerosos errores, pero
he decidido colgarlos en la web para que sirva de guia de estudio. Para corregir errores, podeis
escribir a mi direccin de correo Jose.Canovas@upct.es.

i
ndice General

ii
ndice General

I Bloque de teora 1
1 Introduccin a las ecuaciones diferenciales: modelos de la Qumica 3
1.1 Ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Soluciones de ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Modelos de la qumica descritos por una ecuacin . . . . . . . . . . . . . . . . . . . . 8
1.4.1 Descomposicin radioactiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.2 Ley de enfriamiento de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.3 Problemas de mezclas qumicas. . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.4 Cintica de las reacciones qumicas . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Modelos de la qumica descritos por un sistema de ecuaciones . . . . . . . . . . . . . 14
1.5.1 Problemas de mezclas con varios recipientes . . . . . . . . . . . . . . . . . . . 14
1.5.2 Climatizacin de edificios con varias estancias . . . . . . . . . . . . . . . . . . 16
1.5.3 Cintica de las reacciones qumicas . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Mtodos de un paso 23
2.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Mtodos de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Mtodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Mtodo de Taylor de orden 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Mtodos de RungeKutta de orden dos . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Anlisis del error en los mtodos de orden uno . . . . . . . . . . . . . . . . . . . . . . 33
2.4.1 Error local de truncamiento en el mtodo de Taylor . . . . . . . . . . . . . . . 35
2.4.2 Error local de truncamiento en los mtodos de RungeKutta . . . . . . . . . . 35
2.4.3 Relacin entre el error local de truncamiento y el error global . . . . . . . . . . 36
2.4.4 Relacin entre el error local y el error local de truncamiento . . . . . . . . . . 37
2.5 Extrapolacin de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6 Ms sobre los mtodos RungeKutta . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.1 El mtodo de 3 etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.2 El mtodo de cuatro etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.6.3 Mtodos de ms etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

iii
ndice General

3 Mtodos multipaso 47
3.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Mtodos multipaso lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3 Primeros ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4 Mtodos de multipaso deducidos a partir de la integracin numrica . . . . . . . . . . 51
3.4.1 Mtodos de AdamsBashforth . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4.2 Mtodos de AdamsMoulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.5 Estabilidad de los mtodos multipaso lineales . . . . . . . . . . . . . . . . . . . . . . 55
3.6 Frmulas BDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.7 Metodos predictorcorrector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.8 Multipaso o RungeKutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

II Bloque de prctica 61
4 Introduccin a Mathematica 63
4.1 Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2 Parntesis, corchetes y llaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.1 Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.3 Funciones matemticas de inters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.4 Aprovechando clculos anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.5 Definicin de variables y funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.6 Derivadas de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.7 Representacin grfica de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5 Ecuaciones diferenciales con Mathematica 73


5.1 Ecuaciones diferenciales de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2 Ecuaciones diferenciales lineales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Aplicaciones de las ecuaciones lineales con coeficientes constantes. . . . . . . . . . . . 76
5.3.1 Movimiento armnico simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.2 Movimiento amortiguado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.3 Movimiento forzado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4 Aplicacin a los circuitos elctricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6 Programacin en Mathematica 81
6.1 Operaciones y definicin de variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.1 Definicin de variables y funciones . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.2 Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2 Construccin de programas con Mathematica. . . . . . . . . . . . . . . . . . . . . . . 84
6.2.1 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2.2 Which . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2.3 Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2.4 Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.5 While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.6 For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.7 Break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

iv
ndice General

6.2.8 Goto, Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87


6.2.9 Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.10 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.4 Presentaciones grficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

A Ecuaciones en diferencias 95
A.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
A.2 Transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
A.2.1 Definicin y propiedades bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . 98
A.2.2 Transformada Z inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
A.2.3 Aplicacin a la resolucin de la ecuacin en diferencias lineales con coeficientes
constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.2.4 Frmula de inversin compleja . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.2.5 Funciones de transferencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
A.3 Ecuaciones no lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

v
Parte I
Bloque de teora

1
Captulo 1
Introduccin a las ecuaciones
diferenciales: modelos de la Qumica

Sumario. Ecuacin y sistemas de ecuaciones diferenciales. Concepto de solu-


cin. Descomposicin radioactiva. Problemas de mezclas. Ley del calor de Newton.
Cintica de las reaciones qumicas.

1.1 Ecuaciones diferenciales


Una ecuacin diferencial una expresin de la forma
F (x, y, y 0 , ..., y n) ) = 0, (1.1)
donde F es una funcin real definida en un cierto abierto A Rn+2 , e y(x) es una funcin real de
variable real. Como vemos, una ecuacin diferencial es una expresin en la que aparecen ligadas una
variable x, que llamaremos variable independiente y las n primeras derivadas respecto de x de una
variable y, que se llama variable dependiente por ser una funcin dependiente de la variable x. Se
llama orden de la ecuacin (1.1) al valor de la derivada ms alta en dicha expresin. Ejemplos de
ecuaciones diferenciales son los siguientes:
y 00 + log(xy) x = y,
y 3) + xy 0 + ex sinh y = 0,
y y 0 y 00 = x,
que tienen rdenes 2, 3 y 2, respectivamente.

Diremos que una funcin y : (a, b) R R es solucin de la ecuacin (1.1) si existe la derivada
nsima de y en todo punto del intervalo (a, b), (x, y(x), y 0 (x), ..., y n) (x)) A para todo x (a, b) y
F (x, y(x), y 0 (x), ..., y n) (x)) = 0
para todo x (a, b). Por ejemplo tomemos la ecuacin diferencial de orden uno
y 0 y tan x = 0. (1.2)

3
Introduccin a las ecuaciones diferenciales

Esta ecuacin viene definida por la funcin F : A R3 R dada por F (x, y, y 0 ) = y 0 y tan x. El
dominio de definicin de F es en este caso A = {(/2 + 2k, /2 + 2k) : k Z} R2 . Entonces
la funcin y : (/2, /2) R dada por y(x) = cosc x , donde c es una constante arbitraria es una
solucin de dicha ecuacin diferencial. En efecto, esta funcin es una vez derivable con derivada
c sin x
y 0 (x) = cos 0
2 x , se verifica que (x, y(x), y (x)) A para todo x (/2, /2), y adems satisface que

c sin x c
y 0 (x) y(x) tan x = 2
tan x = 0,
cos x cos x
para todo punto x (/2, /2).

Con frecuencia las soluciones de la ecuacin (1.1) no podrn obtenerse de forma explcita y vendrn
2
dadas de forma mplicita por una ecuacin de la forma g(x, y) = 0. As las curvas x +y2 = c > 0
0
definen implcitamente las soluciones de la ecuacin yy + x = 0 definidas en ( c, c), como
puede verse fcilmente derivando de forma implcita la expresin x2 + y 2 = c respecto a la variable
independiente x.

A lo largo del curso estudiaremos fundamentalmente ecuaciones resueltas respecto de la derivada


de mayor orden de la ecuacin, es decir, ecuaciones de la forma

y n) = f (x, y, y 0 , ..., y n1) ),

donde f : A Rn+1 R. Estas ecuaciones son obtenidas cuando sea posible despejar y n) en (1.1).
Sern tambin de especial inters para nosotros las ecuaciones autnomas, de la forma

F (y, y 0 , ..., y n) ) = 0,

donde F no depende de la variable independiente explcitamente aunque sta se encuentre impcita


en la funcin y, y las ecuaciones lineales

a0 (x)y n) + a1 (x)y n1) + ... + an1 (x)y 0 + an (x)y = b(x)

con an , an1 , ..., 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 ecuacin diferencial en caso de existir no son
nicas, sino que dependen de ciertas constantes arbitrarias provenientes de la integracin. En general,
dada una ecuacin diferencial de la forma

F (x, y, y 0 , ..., y n) ) = 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 ecuacin diferencial de orden n generan una
familia nparamtrica de curvas en el plano. En el ejemplo anterior, la solucin y(x) = c/ cos x define

4
Introduccin a las ecuaciones diferenciales

una familia de curvas en el plano dependiente del valor o parmetro de c. Recprocamente, a partir
de una familia nparamtrica de curvas definida por (1.4) puede construirse una ecuacin diferencial
de la manera siguiente. Derivando n veces (1.4) respecto de x obtenemos n + 1 ecuaciones de las que,
eliminando los parmetros c1 , c2 , ..., cn , obtendremos una ecuacin diferencial de orden n dada por
(1.3). Las soluciones obtenidas como familia nparamtrica de curvas se llaman soluciones generales
de la ecuacin diferencial. Por ejemplo, si consideramos la familia de las curvas del plano dependiente
de dos parmetros dada por la ecuacin y = c1 ex +c2 ex , c1 , c2 R, derivando implcitamente respecto
de x tenemos que
y 0 = c1 ex c2 ex ,
y 00 = c1 ex + c2 ex .
Despejando c1 y c2 y sustituyendo en la primera ecuacin tenemos que y 00 = y es la ecuacin diferencial
que define a la familia de curva anteriores. Ntese que es una ecuacin de orden dos dado que la
familia depende de dos parmetros.
Sin embargo, no siempre las ecuaciones diferenciales de orden n presentan una solucin general
que se expresa mediante familias nparamtricas. Por ejemplo, la ecuacin y 2 + (y 0 )2 = 1 no posee
ninguna solucin, mientras que y 2 + (y 0 )2 = 0 tiene como nica solucin y(x) = 0, que no depende de
parmetro alguno. Adems la ecuacin de orden uno (y 0 y)(y 0 2y) = 0 tiene por soluciones a las
funciones dadas por la expresin (y c1 et )(y c2 e2t ) = 0. Mencin aparte merecen aquellas que no
aparecen comprendidas en la familia nparamtrica, las llamadas soluciones singulares. Por ejemplo
y 0 = 2y 3/2 tiene como solucin general y(x) = 1/(t + c)2 y como solucin singular y(x) = 0. Ntese
que esta definicin es ambigua y depende de la familia de curvas al ser y(x) = C 2 /(Cx + 1)2 una
familia uniparamtrica de soluciones de y 0 = 2y 3/2 conteniendo la solucin nula.
De acuerdo con lo visto anteriormente, las soluciones de las ecuaciones diferenciales vienen dadas
por una familia nparamtrica de curvas y por lo tanto la solucin no es en general nica. Para
evitar este hecho, suele acompaarse a una ecuacin diferencial
F (x, y, y 0 , ..., y n) ) = 0
n1)
de n condiciones iniciales de la forma y(x0 ) = y0 , y 0 (x0 ) = y00 ,...,y n1) (x0 ) = y0 donde las cons-
0 n1)
tantes x0 , y0 , y0 , ..., y0 son nmeros reales, de manera que encontremos la solucin de la ecuacin
diferencial satisfaga adicionalmente estas condiciones. Se define un problema de condiciones iniciales
o de Cauchy al problema de la forma


F (x, y, y 0 , ..., y n) ) = 0;



y(x 0 ) = y0 ;
y (x0 ) = y00 ;
0

..

.

n1) n1)
y (x0 ) = y0 .
Lo que se espera aadiendo estas condiciones es eliminar los parmetros de la familia nparamtrica
de soluciones, obteniendo entonces una solucin que sea nica. Ntese que se aaden tantas condicio-
nes iniciales como orden tiene la ecuacin. Por ejemplo, tomemos la ecuacin de orden uno (1.2), que
recordemos, tena por solucin y : (/2, /2) R dada por y(x) = cosc x , donde c es una constante
arbitraria. Si consideramos el problema de condiciones iniciales
0
y y tan x = 0
y(0) = 1,

5
Introduccin a las ecuaciones diferenciales

tendramos que necesariamente 1 = y(0) = c/ cos(0) = c, por lo que c = 1 y la nica solucin del
problema de condiciones iniciales es y(x) = 1/ cos x.
Sin embargo esta estrategia no siempre produce los frutos deseados. Sin ir ms lejos, el problema
2
y + (y 0 )2 = 0
y(0) = 0

no tiene solucin y
y 0 = 3y 2/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 expresin de la forma


F1 (x, y1 , y10 , y2 , y20 , ..., ym , ym
0
) = 0;

F2 (x, y1 , y 0 , y2 , y 0 , ..., ym , y 0 ) = 0;
1 2 m
..

.

F (x, y , y 0 , y , y 0 , ..., y , y 0 ) = 0;
m 1 1 2 2 m m

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 nmero de
ecuaciones que de incgnitas de manera que todas las ecuaciones son independientes, es decir, ninguna
puede deducirse de las dems. Estamos interesados en aquellos sistemas de ecuaciones diferenciales
en los que podemos despejar la primera derivada de cada una de las funciones incgnita, es decir,
sistemas de la forma

y10 = f1 (x, y1 , y2 , ..., ym );

y 0 = f2 (x, y1 , y2 , ..., ym );
2
..

.

y 0 = f (x, y , y , ..., y );
m m 1 2 m

donde fi : A R1+m R, 1 i m, son funciones reales. Ejemplos de estos sistemas son


0
y1 = xy1 + y22 ;
y20 = x + y1 + y2 ;
0
y1 = xy1 + y22 y3 ;
y 0 = x + y1 + y2 y3 ;
20
y3 = y1 y2 y3 ;
En general la resolucin de estos sistemas no es posible, salvo en casos excepcionales. Slo para el
caso de los sistemas de ecuaciones diferenciales lineales con coeficientes constantes, que veremos un
poco ms tarde existen algoritmos que permiten el clculo explcito de las soluciones. Sin embargo,
es relativamente sencillo saber cundo un sistema tiene solucin, o ms precisamente cundo un
problema de condiciones iniciales asociado tiene solucn. Primero claro est, debemos definir qu

6
Introduccin a las ecuaciones diferenciales

entendemos por un problema de condiciones iniciales para sistemas de ecuaciones diferenciales. Dicho
problema es un sistema de ecuaciones diferenciales


y10 = f1 (x, y1 , y2 , ..., ym );

0

y2 = f2 (x, y1 , y2 , ..., ym );
..
.

0
ym
= fm (x, y1 , y2 , ..., ym );
y (x ) = y , y (x ) = y , ..., y (x ) = y
1 0 1 2 0 2 m 0 m

junto con las condiciones yi (x0 ) = yi , donde x0 , y1 , y2 , ..., ym son nmeros reales. Por ejemplo
0

y = xy1 + y22 y3 ;
10
y2 = x + y1 + y2 y3 ;
y30 = y1 y2 y3 ;


y1 (0) = 2, y2 (0) = 0, y3 (0) = 1,
es un problema de condiciones iniciales. Ntese que todas las condiciones iniciales implican el cono-
cimiento de la funcin en 0, es decir, lo siguiente
0

y = xy1 + y22 y3 ;
10
y2 = x + y1 + y2 y3 ;

y 0 = y1 y2 y3 ;
3
y1 (0) = 2, y2 (1) = 0, y3 (0) = 1,
no sera 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 anlogo al de ecuaciones diferenciales de orden uno, cuya prueba puede
verse en [Jim], aunque pensamos que sta es de un nivel excesivo para alumnos de primer curso.

Theorem 1 Sea el problema de condiciones iniciales




y10 = f1 (x, y1 , y2 , ..., ym );

0

y2 = f2 (x, y1 , y2 , ..., ym );
..
.

ym0
= fm (x, y1 , y2 , ..., ym );


y (x ) = y , y (x ) = y , ..., y (x ) = y
1 0 1 2 0 2 m 0 m

donde (x0 , y1 , ..., ym ) A, fi : A R1+m R, 1 i m, son funciones reales continuas en el


fi
abierto A. Supongamos adems que las funciones y j
existen y son continuas en A. Entonces existe
una solucin del problema de condiciones iniciales anterior yi : I R, 1 i m, definido en un
intervalo abierto I de la recta real.

Este resultado es fcil de aplicar. Por ejemplo el problema que consideramos anteriormente
0

y = xy1 + y22 y3 ;
10
y2 = x + y1 + y2 y3 ;

y 0 = y1 y2 y3 ;
3
y1 (0) = 2, y2 (0) = 0, y3 (0) = 1,

7
Introduccin a las ecuaciones diferenciales

es tal que f1 (x, y1 , y2 , y3 ) = xy1 + y22 y3 , f2 (x, y1 , y2 , y3 ) = x + y1 + y2 y3 y f3 (x, y1 , y2 , y3 ) = y1 y2 y3


son funciones definidas en R4 , continuas y las derivadas parciales de cada funcin respecto de y1 , y2
e y3 son continuas. Entonces este problema de condiciones iniciales tiene solucin nica, aunque no
tengamos ni idea de cmo calcularla.
El Teorema 1 tiene una aplicacin inmediata a los problemas de condiciones iniciales de orden n.
Por ejemplo, consideremos el problema
n)

y = f (x, y, y 0 , ..., y n1) );



y(x 0 ) = y0 ;
y (x0 ) = y00 ;
0

..

.

n1) n1)
y (x0 ) = y0 ,

y introduzcamos las variables y1 = y, y2 = y 0 , y3 = y 00 ,...yn = y n1) , con las que el sistema anterior
queda como 0

y1 = y2 ;



y20 = y3 ;

..
.


0
yn1 = yn ;



y 0
= f (x, y1 , y2 , ..., yn );


n
n1)
y1 (x0 ) = y0 , y2 (x0 ) = y00 , ..., yn (x0 ) = y0 ,
y entonces el Teorema 1 nos garantiza la existencia y unicidad de soluciones siempre que la funcin
f sea continua y de clase C 1 respecto de las variables y1 , ..., yn , es decir, la funcin y y sus n 1
primeras derivadas.

1.4 Modelos de la qumica descritos por una ecuacin


1.4.1 Descomposicin radioactiva
Consideremos un istopo radioactivo del cual tenemos una cantidad y(t) que vara con el tiempo
t. Una sustancia radioactiva tiende a descomponerse con el tiempo formando nuevas sustancias
y liberando a su vez una gran cantidad de energa. Se ha comprobado experimentalmente que la
velocidad con que una sustancia radioactiva se descompone es directamente proporcional a la cantidad
de sustancia existente en dicho instante, es decir, satisface la ecuacin diferencial

y 0 = Ky

donde K es una constante que depende de la sustancia considerada. Esta ecuacin es de variables
separadas, y proporciona las soluciones

y(t) = CeKt ,

con C la constante proveniente de la integracin.

8
Introduccin a las ecuaciones diferenciales

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

y 0 = Ky
y(0) = N0
que proporciona la solucin
y(t) = N0 eKt ,
y posteriormente la ecuacin
N0
= N0 eKtm ,
2
con lo que la vida media es
log 2
tm = .
K
Como podemos observar, la vida media de la sustancia depende de la constante K, que es intrn-
seca de cada sustancia.

1.4.2 Ley de enfriamiento de Newton.


Los contenidos de esta seccin pueden verse en [NaSa]. Supongamos que tenemos un cuerpo inerte
que no produce calor de manera autosuficiente, cmo por ejemplo el agua, una piedra o un reloj.
De observaciones experimentales se sabe que la temperatura superficial de dicho cuerpo vara con
una rapidez proporcional a la diferencia de temperatura entre el objeto y su entorno. Es decir, si
denotamos por y(t) la temperatura del cuerpo con el tiempo, sta verifica la ecuacin diferencial

y 0 = K(T y),

donde K es una constante de proporcionalidad y T es la temperatura ambiente en ese momento.


Dicho comportamiento es conocido cmo la ley de enfriamiento de Newton. Por ejemplo, si servimos
una taza de caf a una temperatura de 950 C y al minuto est a 850 C, y suponiendo que la habitacin
est a 200 C, cundo podremos tomar el caf si la temperatura idnea para tomarlo es de 650 C ?
Para responder a esta pregunta, basta con resolver el problema de condiciones iniciales

y 0 = K(20 y)
y(0) = 95.
Obtenemos la solucin de la ecuacin diferencial, que es de variables separadas calculando
Z Z
y 0 (t)
dt = Kdt,
20 y(t)
que nos proporciona la solucin
y(t) = CeKt + 20,
donde K es una constante proveniente de la integracin. Imponiendo ahora que y(0) = 95, calculamos
dicha constante resolviendo la ecuacin

95 = y(0) = C + 20,

9
Introduccin a las ecuaciones diferenciales

con lo que C = 75. Por otra parte, como al minuto de haber servido el caf la temperatura de ste
haba descendido hasta los 850 C tenemos que
85 = y(1) = 75eK + 20,
que permite obtener el valor de la constante K = log(13/15). La funcin
y(t) = 75et log(13/15) + 20
define entonces la evolucin de la temperatura de la taza de caf con el tiempo. Para averiguar el
momento en el cual la temperatura de dicha taza es de 650 C basta resolver la ecuacin
65 = 75et log(13/15) + 20,
que da la solucin
log(9/15)
t= = 3.57 minutos.
log(13/15)
Es decir, aproximadamente unos tres minutos y medio despus de haber servido el caf.

Aplicacin a la climatizacin de edificios


Supongamos que tenemos un edificio que en un principio vamos a considerar como una unidad, es
decir, no vamos a tener en cuenta el nmero de habitaciones que tiene (ya veremos posteriormente
este caso). Si T (t) es la temperatura del edificio vaco en un instante de tiempo t y E(t) es la
temperatura 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 ecuacin puede escribirse como
dT d
T 0 (t) = (t) = (T (t) E0 ) = K(T (t) E0 ),
dt dt
que nos proporciona la solucin
T (t) E0 = ceKt ; c R.
Si T (0) es la temperatura inicial del edificio c = T (0) E0 y la solucin es
T (t) E0 = (T (0) E0 )eKt .
El tiempo que transcurre desde el valor T (0) E0 hasta el valor (T (0) E0 )/e es t0 = 1/K, que
recibe el nombre de constante de tiempo del edificio, y que suele medirse en horas. Un valor normal
para un edificio cerrado oscila entre la 2 y las 4 horas para la constante 1/K.

Si el edificio no esta vaco se produce un calentamiento adicional debido al calor corporal, luces,
mquinas en funcionamiento, etctera, cuya razn denotaremos por H(t). Si adicionalmente el edificio
dispone de un sistema de calefaccin o de aire acondicionado, se produce un aumento o disminucin
de la temperatura que denotaremos por U(t). Entonces, la ecuacin anterior queda como
T 0 (t) = K(E(t) T (t)) + H(t) + U(t),
que escribindola como
T 0 (t) = KT (t) + (KE(t) + H(t) + U(t))
vemos claramente que es lineal.

10
Introduccin a las ecuaciones diferenciales

Example 1 Supongamos una maana de sbado caluroso que en una tienda, mientras las personas
estn trabajando el aire acondicionado mantiene la temperatura de la tienda a 20 o C. A mediodia
se apaga el aparato de aire acondicionado y la gente se va a sus casas. La temperatura exterior
permanece constante a 35 o C. Si la constante de tiempo del edificio es de 4 horas, cul ser la
temperatura del edificio a las 2 de la tarde? En que momento la temperatura en el interior ser de
27 o C?
Para responder a esta pregunta planteamos la ecuacin diferencial
1
T 0 (t) = (35 T (t)),
4
dado que H(t) = U (t) = 0, junto con la condicin inicial T (0) = 20, que se corresponde con la
temperatura al medioda. La solucin de la ecuacin diferencial ser
T (t) = cet/4 + 35,
y con la condicin inicial obtenemos c que nos proporciona la solucin
T (t) = 15et/4 + 35.
As a las dos de la tarde la temperatura ser de

T (2) = 15/ e + 35 ' 25.9 o C.
El momento t0 en que la temperatura ser de 27 o C se obtendr al resolver la ecuacin
27 = 15et0 /4 + 35,
que nos da
8
t0 = 4 log ' 2.51 horas
15
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 tanque
se encuentra bien aislado y tiene una constante de tiempo de 64 horas. El panel solar genera 2000
kilocaloras por hora durante el da y el tanque tiene una capacidad calorfica de 2 o C por cada 1000
kilocaloras. Si el agua se encuentra inicialmente a 30 o C y la temperatura ambiente es de 20 o C,
cul ser la temperatura del tanque al cabo de 12 horas de luz solar?
En este caso
U(t) = 2 o C/1000 Kcal 2000 Kcal/h = 4 o C/h,
con lo que la ecuacin diferencial que modeliza el fenmeno es
1
T 0 (t) = (20 T (t)) + 4,
64
junto con la condicin inicial T (0) = 30 o C. La solucin de dicha ecuacin diferencial es
T (t) = cet/64 + 276,
de donde la solucin del problema de condiciones iniciales es
T (t) = 246et/64 + 276.
Al cabo de 12 horas la temperatura del agua del tanque es
T (12) = 72.06 o C.

11
Introduccin a las ecuaciones diferenciales

1.4.3 Problemas de mezclas qumicas.


Las ecuaciones diferenciales tambin tienen aplicacin dentro de los problemas de mezclas. En estos
problemas aparecen involucradas sustancias, las cuales se mezclan dentro de un recipiente de volumen
dado V0 . Supongamos que inicialmente tenamos una cantidad de X0 kilogramos de una sustancia
diluida en una concentracin de X0 /V0 Kg/m3 , y que introducimos otra solucin que contiene una
concentracin b Kg/m3 de dicha sustancia la cual es introducida en el recipiente a una velocidad de
e m3 /sg. Adems sacamos parte de la solucin que se produce dentro del recipiente a una velocidad
de f m3 /sg. Si denotamos por y(t) la cantidad de sustancia en cuestin dentro del recipiente por
unidad de tiempo, tenemos que la variacin de dicha cantidad viene dada por

y 0 = ve vs ,

donde ve y vs son las velocidades de entrada y salida de dicha sustancia respectivamente. Como
ve = be Kg/sg y vs = f y(t)/V (t) Kg/sg donde V (t) = V0 + et f t es el volumen de disolucin en
el recipiente por unidad de tiempo, el problema de condiciones iniciales
y
y 0 = be V0 +etf t
f
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 litros
por minuto, y se deja que la mezcla salga del recipiente a la misma rapidez. Vamos a determinar la
cantidad de sal que habr en el recipiente al cabo de 20 minutos. Para ello, teniendo en cuenta que
el volumen se mantiene constante, planteamos el problema de condiciones iniciales
y

y 0 = 0.4 400
y(0) = 0.
y
La ecuacin diferencial implicada es lineal. La ecuacin homognea y 0 = 400 tiene por solucin
t/400
y(t) = Ke , donde K es la constante procedente de la integracin. Por el mtodo de variacin
de constantes calculamos la solucin de la ecuacin no homognea imponiendo que y(t) = K(t)et/400
sea solucin de la misma. Entonces
et/400 et/400
K 0 (t)et/400 + K(t) = 0, 4 + K(t) ,
400 400
con lo que Z
K(t) = 0.4 et/400 dt = 160et/400 + C.

As la solucin de la ecuacin diferencial ser

y(t) = 160 + Cet/400 .

Adems, como y(0) = 0, tenemos que


0 = 160 + C,

12
Introduccin a las ecuaciones diferenciales

con lo que C = 160, y la solucin 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 Cintica de las reacciones qumicas


Esta seccin esta obtenida de [MaMy].Suponemos una reaccin qumica de forma que dos reactivos
A y B dan lugar a unos productos C y D, esquematizado como

aA + bB cC + dD.

Si denotamos por [A] la concentracin en moles por litro del reactivo A, se verifica que las velocidades
de descomposicin o formacin de cada uno de los elementos de la reaccin satisfacen la relacin
1 d[A] 1 d[B] 1 d[C] 1 d[D]
= = = .
a dt b dt c dt d dt

Ntese que d[A]


dt
ser negativo al estar desapareciendo el reactivo mientras que por ejemplo d[C]
dt
ser
positivo. La ley de velocidad diferencial establece que
1 d[A] 1 d[C]
= = k[A]n [B]m ,
a dt c dt
donde n y m son enteros positivos o la mitad de nmeros enteros positivos. En general no puede
establecerse una relacin directa entre dichos nmeros y los coeficientes estequeomtricos a y b. La
constante k recibe el nombre de constante de reaccin.
No obstante, hay reacciones que se llaman elementales, como

NO + O3 NO2 + O2 ,

en las cuales dos molculas chocan para dar lugar a los productos, y en las que los nmero n y m
son iguales a uno, es decir, podemos escribir que
d[NO] d[NO2 ]
= = k[NO2 ][O2 ].
dt dt
A modo de ejemplo, consideremos la reaccin elemental

A + B C + D,

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

d[A] d[B] d[C]


= = ,
dt dt dt
13
Introduccin a las ecuaciones diferenciales

las concentraciones de los reactivos son 4 x(t) y 2 x(t), respectivamente. Por otra parte, la
ecuacin
d[C]
= k[A][B],
dt
se reduce a
x0 = k(4 x)(2 x),
siendo x(0) = 0. Resolvemos la ecuacin diferencial
Z Z
1 x(t) 4 x0 (t)dt
log = = kdt = kt + c,
2 x(t) 2 (4 x(t))(2 x(t))
y de la condicin inicial x(0) = 0, tenemos que
1
c= log 2.
2
Por otra parte, como x(1) = 1, tenemos que
1 1
log 3 = k + log 2,
2 2
por lo que la constante de la reaccin es
1 3
k= log .
2 2
Entonces !
t
x(t) 4 3 3
log = t log + log 2 = log 2 ,
x(t) 2 2 2
de donde 3 t
1
x(t) = 4 23 t ,
12 2
y por lo tanto 3 2
1 10
x(2) = 4 23 2 = moles/litro.
12 7
2

1.5 Modelos de la qumica 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 disolucin.
Podemos pensar por ejemplo en agua salada. Los recipientes estan conectados entre s, de manera
que puede pasar cierta cantidad de sustancia de un recipiente al otro y viceversa. Adems, cada
recipiente puede estar en contacto con el exterior, permitiendo que entren sustancias del exterior y
dejando salir tambin sustancias de los recipientes al exterior. En este tipo de problemas se trata
de determinar la concentracin de sustancia disuelta en cada recipiente. Consideremos el siguiente
ejemplo.

14
Introduccin a las ecuaciones diferenciales

Example 3 Dos grandes tanques, cada uno con 100 litros de lquido se encuentran interconectados
por medio de tubos. El lquido fluye del tanque A (ver dibujo posterior) hacia el tanque B a razn
de 3 l/m y de B hacia A a razn de 1 l/m. El lquido contenido en el interior de cada tanque se
mantiene bien agitado. Una solucin de salmuera con una concentracin de 2 Kg/l fluye del exterior
hacia el tanque A a razn de 6 l/m. La solucicin (diluida) fluye hacia el exterior del tanque A a
razn de 4 l/m del tanque B a 2 l/m. Si inicialmente el tanque A contena agua pura y el B 200 kg
de 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 los
tanques A y B, respectivamente. Recordemos los problemas de mezclas con un nico recipiente
vistos anteriormente. De estos problemas, vemos que la variacin 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 A
se tiene que
y(t)
ve = 6 l/m 2 Kg/l + 1 l/m Kg/l
100
y
x(t) x(t) x(t)
vs = 4 l/m Kg/l + 3 l/m Kg/l = 7 l/m Kg/l
100 100 100
de donde obtenemos la ecuacin diferencial
7 1
x0 (t) = x(t) + y(t) + 12.
100 100
Procediendo de igual manera con el tanque B se tiene que

y 0 (t) = ve vs

donde ahora
x(t)
ve = 3 l/m Kg/l
100
y
y(t) y(t) y(t)
vs = 1 l/m Kg/l + 2 l/m Kg/l = 3 l/m Kg/l,
100 100 100
15
Introduccin a las ecuaciones diferenciales

de donde obtenemos la ecuacin


3 3
y 0 (t) = x(t) y(t),
100 100
y por consiguiente el problema de condiciones iniciales


0 7 1
x (t) = 100 x(t) + 100 y(t) + 12,

0 3 3

y (t) = x(t) y(t),

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

El sistema es no autnomo, y puede escribirse de forma matricial como


0 7 1

x (t) 100 100
x(t) 12
= 3 3 + .
y 0 (t) 100
100 y(t) 0
Dejamos la resolucin del sistema al alumno. Otros problemas de este tipo se propondrn al final
del tema.

1.5.2 Climatizacin de edificios con varias estancias


Anteriormente vimos una aplicacin de las ecuaciones diferenciales a la climatizacin de edificios con
una sola estancia. Esta aplicacin se basaba en la ley de enfriamiento de los cuerpos de Newton.
Vamos a ver qu pasa si el edificio tiene ms de una estancia, como el del siguiente ejemplo.

Example 4 Un edificio consta de dos zonas A y B (vese la siguiente figura). La zona A es calentada
por un calefactor que genera 80000 Kcal/h. La capacidad calorfica de la zona A es de 1/4 o C por
cada 1000 Kcal. Las constantes de tiempo de transferencia de calor son entre la zona A y el esterior
4 horas, 2 horas entre las zonas A y B y 5 horas entre la zona B y el exterior. Si la temperatura
exterior es de 0 o C, 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
1 1
x0 (t) = (0 x(t)) + (y(t) x(t)) + U(t),
4 2
donde
1
U(t) = o C/1000 Kcal 80.000 Kcal/h = 20 o C/h,
4
16
Introduccin a las ecuaciones diferenciales

de donde conseguimos la ecuacin


3 1
x0 (t) = x(t) + y(t) + 20.
4 2
Por otra parte, para la zona B tenemos
1 1
y 0 (t) = (0 y(t)) + (x(t) y(t)),
5 2
con lo que tenemos el sistema

x0 (t) = 34 x(t) + 12 y(t) + 20,
y 0 (t) = 12 x(t) 10
7
y(t).
Dejamos la resolucin del sistema al alumno. Otros ejemplos de este tipo sern estudiados en los
ejercicios.

1.5.3 Cintica de las reacciones qumicas


No todas las reacciones qumicas son elementales, aunque la mayora de stas pueden describirse
mediante varias de ellas. Por ejemplo, la reaccin en solucin acuosa
H2 O2 + 2Br + 2H + Br2 + 2H2 O
no es el resultado del choque simultneo de dos iones hidrgeno, dos iones bromuro y una molcula
de perxido de hidrgeno (la probabilidad de que cinco especies estn en el mismo lugar al mismo
tiempo es muy pequea), por lo que el proceso sigue las dos estapas siguientes:
Br + H + + H2 O2 HOBr + H2 O,
H + + HOBr + Br H2 O + Br2 ,
en ninguna de las cuales se produce la interaccin de ms de tres partculas. Otras reacciones pueden
implicar muchos ms pasos.
Consideremos ahora la reaccin hipottica
2A + B 2C + D,
de la que suponemos el siguiente mecanismo
A + B E + C,
A + E D + C.
Como sabemos de la primera reaccin
d[A1 ] d[B] d[C1 ] d[E1 ]
= = = = k1 [A][B],
dt dt dt dt
donde los subndices indican la variacin de cada substancia como consecuencia de la primera reac-
cin. Por otra parte, de la segunda reaccin
d[A2 ] d[E2 ] d[C2 ] d[D]
= = = = k2 [A][E].
dt dt dt dt
17
Introduccin a las ecuaciones diferenciales

Es obvio que

d[A] d[A1 ] d[A2 ]


= + ,
dt dt dt
d[C] d[C1 ] d[C2 ]
= + ,
dt dt dt
d[E] d[E1 ] d[E2 ]
= .
dt dt dt
Entonces
d[A]
= k1 [A][B] + k2 [A][E] = [A](k1 [B] + k2 [E]),
dt
d[E]
= k1 [A][B] k2 [A][E] = [A](k1 [B] k2 [E]).
dt
Si suponemos que la concentracin del elemento B permanece constante, tenemos un sistema de dos
ecuaciones diferenciales. Se tratara de un sistema que no podramos resolver analticamente, aunque
tendra solucin.

La reaccin del Brusselator


La reaccin 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 ] siguen
la ley

d[X]
= k1 [A] k2 [B][X] + k3 [X]2 [Y ] k4 [X],
dt
d[Y ]
= k2 [B][X] k3 [X]2 [Y ],
dt
siendo ki las cosntantes de reaccin de las cuatro reacciones que definen la reaccin global, y siento
las concentraciones iniciales de X e Y nulas (ver [McPo]). Este modelo da lugar a reacciones en las
que no es predecible el comportamiento a largo plazo y que podramos denominar caticos.

1.6 Ejercicios
1. El istopo radioactivo del Torio 234 se desintegra a una rapidez proporcional a la cantidad
existente en ese instante de tiempo. Si 100 miligramos de este material se reducen a 82.04
miligramos en un semana, cunto Torio tendremos al cabo de tres semanas? Cunto tiempo
tiene que transcurrir para que la cantidad de Torio se reduzca a la mitad?

18
Introduccin a las ecuaciones diferenciales

2. De observaciones experimentales se sabe que la temperatura superficial de un objeto cambia


con una rapidez proporcional a la diferencia de temperatura del objeto y su entorno. Este
hecho es conocido como la ley de enfriamiento de Newton. Si la temperatura de una taza de
caf es de 950 C recin servida, y al minuto se enfri a 880 C en un cuarto que est a 200 C,
cunto tiempo debe de transcurrir para que se enfrie hasta los 650 C?
3. Supongamos que decids matar al profesor de ecuaciones diferenciales. Una vez perpetrado el
hecho, se encuentra el cuerpo en el despacho del mismo que est a una temperatura de 200 C
a las 6 de la tarde. La temperatura corporal de cadver era de 350 C en dicho momento. Una
hora ms tarde la temperatura era de 330 C. A que hora se produjo el horripilante y brutal
suceso?
4. Un tanque contiene originalmente 400 litros de agua limpia. Entonces se vierte en el tanque
agua que contiene 0.05 kilogramos de sal por litro a una velocidad de 8 litros por minuto, y se
deja que la mezcla salga del tanque con la misma rapidez. Determinar la sal que habr en el
tanque despus de 20 minutos.
5. Un tanque contiene inicialmente 1000 litros de solucin salina que contiene 10 Kg. de sal. Otra
solucin salina que contiene 25 Kg. de sal por litro se vierte en el tanque a la razn de 10 l/ min
mientras que simultaneamente, la solucin bien mezclada sale del tanque a razn de 15 l/ min .
Encontrar la cantidad de sal que hay en el tanque en un momento t.
6. En una galera subterranea de 15 15 1.2m hay un 0.2% de CO2 , mientras que el aire del
exterior tiene un 0.055% de CO2 . Se instalan ventiladores que introducen en la galera 9 metros
cbicos de aire del exterior por minuto, de forma que por el otro extremo de la galera sale la
misma cantidad de aire. Qu concentracin de CO2 habr al cabo de 20 minutos en la galera?
7. En una maana de sbado, mientras las personas trabajan, un calefactor mantiene la tempe-
ratura interior de un edificio a 21 o C. A medioda se apaga el calentador y la gente regresa a
casa. La temperatura exterior permanece constante a 12 o C durante el resto de la tarde. Si la
constante de tiempo del edificio es de 3 horas, en qu momento la temperatura interior del
edificio ser de 16 o C?
8. Un taller mecnico sin calefaccin ni aire acondicionado tiene una constante de tiempo de 2
horas. Si la temperatura exterior vara segn la funcin E(t) = 30 15 cos(2t/24), determinar
la temperatura del taller a lo largo del da.
9. En un da caluroso con una temperatura exterior de 40 o C, se enciende dentro de un edificio
un aparato aire acondicionado que disipa 24000 kilocaloras por hora. El aprovechamiento es
de medio grado por cada 1000 kilocaloras y la constante de tiempo del edificio es de 3 horas.
Si inicialmente la temperatura del edificio era de 35 o C, determinar la temperatura al cabo
de 3 horas. Cul es el valor mximo de temperatura que puede tener el edificio en estas
condiciones?
10. Dos tanques que contienen cada uno 50 litros de lquido se ecuentran interconectados por medio
de dos tubos. El lquido fluye del tanque A hacia el tanque B a razn de 4 litros por minuto y
del tanque B al tanque A a 1 litro por minuto. El lquido contenido en cada tanque se mantiene
prefectamente agitado. Hacia el tanque A entra del exterior agua a razn de 3 litros por minuto

19
Introduccin a las ecuaciones diferenciales

y la solucin fluye hacia el exterior por el tanque B a la misma velocidad. Si inicialmente el


tanque A contiene 25 kilos de sal y el tanque B no contiene nada de sal, determinar la cantidad
de sal en cada instante de tiempo.

11. Dos grandes tanques, cada uno de 50 litros se encuentran interconectados por un tubo. El
lquido fluye del tanque A hacia el B a razn de 5 litros por minuto. El lquido contenido en el
interior de cada tanque se mantiene bien agitado. Una salmuera con concentracin de 3 kilos
por litro fluye del exterior hacia el tanque A a razn de 5 litros por minuto, saliendo hacia
el exterior a la misma velocidad por un tubo situado en el tanque B. Si el tanque A contiene
inicialmente 50 kilos de sal y el tanque B contiene 100 kilos, determinar la cantidad de sal en
cada instante.

12. Un edificio consta de dos zonas A y B. Solamente la zona A es calentada por un calefactor, que
genera 80.000 kilocalorias por hora. La capacidad calorfica de la zona A es de 1/4 de grado
Celsius por cada 1000 kilocalorias. Las constantes de transferencia de calor son 4 horas entre
la zona A y el exterior, 5 horas entre la zona B y el exterior y 3 horas entre las dos zonas. Si la
temperatura exterior es de 0 grados Centgrados, a qu temperatura puede llegar a enfriarse
la zona B?
Nota: las constantes de transferencia de calor son las inversas de las constantes que aparecen
el la ley de enfriamiento de Newton.

20
Introduccin a las ecuaciones diferenciales

13. Para fines de refrigeracin una casa consta de dos zonas: la zona de tico A y la zona B o
habitacional. El rea habitacional es refrigerada por medio de una unidad de aire acondicionado
de 2 toneladas que disipa 24000 kilocalorias por hora. La capacidad calorfica de la zona B es
de 1/2 grado centgrado por cada 1000 kilocalorias. La constantes de transferencia de calor son
2 horas entre la zona A y el exterior, 4 horas entre la zona B y el exterior y 4 horas entre ambas
zonas. Si la temperatura exterior permanece a 40 grado centgrados, a qu temperatura puede
llegar a calentarse la zona del tico?

21
Introduccin a las ecuaciones diferenciales

22
Captulo 2
Mtodos de un paso

Sumario. Mtodos de Taylor. Mtodos de RungeKutta: tablas de Butcher.


Anlisis del error global. Extrapolacin de Richardson.

2.1 Introduccin
Consideramos un problema de condiciones iniciales de la forma
0
y = f(t, y),
(2.1)
y(t0 ) = y0 ,
donde la funcin f : Rm+1 Rm es suficiente regular para que dicho problema tenga solucin
f
nica. Por ejemplo, f y y i
, i = 1, ..., m continuas. Sin embargo, dada un problema de condiciones
iniciales arbitrario, es muy posible que no sepamos cmo hallar dicha solucin. Basta considerar el
problema 0 2
y = ey ,
y(0) = 4.
Es por ello importante determinar mtodos que permitan obtener aproximaciones de dichas solucio-
nes, que existen, pero son desconocidas.
En esencia, dado el problema (2.1), denotemos su solucin por y(t; t0 , y0 ) y buscamos cmo
aproximar el valor de y(tf ; t0 , y0 ), para un cierto tf > t0 (anlogamente se hara para tf < t0 ). Los
mtodos que vamos a estudiar consisten en generar una sucesin y0 , y1 , ..., yn de manera que yn sea
un valor aproximado de y(tf ; t0 , y0 ). Vamos a ver en este tema varias maneras de construir dicha
sucesin.

2.2 Mtodos de Taylor


Este mtodo se basa en suponer que la solucin y(t; t0 , y0 ) es suficientemente diferenciable en un
entorno de t0 . Si t1 est en dicho entorno y denotando h = t1 t0 , entonces
1 1
y(t1 ; t0 , y0 ) = y(t0 ; t0 , y0 ) + y0 (t0 ; t0 , y0 )h + y00 (t0 ; t0 , y0 )h2 + ... +
1! 2!
1 n)
+ y (t0 ; t0 , y0 )hn + O(hn ),
n!
23
Mtodos de un paso

donde O(hn ) es denota una funcin g(h) para la cual existe una constante positiva k tal que |g(h)|
k|hn |. Entonces
y(t0 ; t0 , y0 ) = y0 ,
y0 (t0 ; t0 , y0 ) = f(t0 , y0 ) = f1 (t0 , y0 ),

d 0 d
y00 (t0 ; t0 , y0 ) = y (t0 ; t0 , y0 ) = f1 (t0 , y0 )
dt dt

= f1 (t0 , y0 ) + f1 (t0 , y0 )y0 (t0 ; t0 , y0 )
t y

= f1 (t0 , y0 ) + f1 (t0 , y0 )f(t0 , y0 )
t y
= f2 (t0 , y0 ),

donde por f (t , y0 )
y 1 0
denotamos el gradiente de f1 (t0 , y0 ).
d 00 d
y3) (t0 ; t0 , y0 ) = y (t0 ; t0 , y0 ) = f2 (t0 , y0 )
dt dt

= f2 (t0 , y0 ) + f2 (t0 , y0 )y0 (t0 ; t0 , y0 )
t y

= f2 (t0 , y0 ) + f2 (t0 , y0 )f(t0 , y0 )
t y
= f3 (t0 , y0 ).
Inductivamente, si yn1) (t0 ; t0 , y0 ) = fn1 (t0 , y0 ), entonces
d n1) d
yn) (t0 ; t0 , y0 ) = y (t0 ; t0 , y0 ) = fn1 (t0 , y0 )
dt dt

= fn1 (t0 , y0 ) + fn1 (t0 , y0 )y0 (t0 ; t0 , y0 )
t y

= fn1 (t0 , y0 ) + fn1 (t0 , y0 )f(t0 , y0 )
t y
= fn (t0 , y0 ).
As, sustituyendo en la frmula original
1 1
y(t1 ; t0 , y0 ) = y0 + f1 (t0 , y0 )h + f2 (t0 , y0 )h2 + ... +
1! 2!
1
+ fn (t0 , y0 )hn + O(hn ),
n!
con lo que
1 1 1
y1 = y0 + f1 (t0 , y0 )h + f2 (t0 , y0 )h2 + ... + fn (t0 , y0 )hn
1! 2! n!
es una aproximacin de y(t1 ; t0 , y0 ), esto es
1 1 1
f1 (t0 , y0 )h + f2 (t0 , y0 )h2 + ... + fn (t0 , y0 )hn .
y(t1 ; t0 , y0 ) y1 = y0 + (2.2)
1! 2! n!
Veamos qu forma particular tiene esta aproximacin para diferentes valores de n.

24
Mtodos de un paso

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

2.2.1 Mtodo de Euler


El mtodo de Taylor con n = 1, recibe el nombre de mtodo de Euler y fue quizs el primer mtodo
numrico generado mucho antes de la existencia de ordenadores. Como vemos, la expresin (2.2)
queda de la forma
1
y(t1 ; t0 , y0 ) y1 = y0 + f(t0 , y0 )h, (2.3)
1!
y tiene un claro significado geomtrico. Imaginemos que m = 1, es decir, se trata de una ecuacin
diferencial. Entonces la recta tangente de la solucin y(t; t0 , y0 ) para t = t0 tiene la forma

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

y sustituyendo cada elemento de la expresin 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 expresin (2.3) para ecuaciones de dimensin uno. La figura 2.1 nos muestra grficamente
el mtodo.

Veamos cmo funciona el mtodo de Euler con un ejemplo. Consideremos el problema de condi-
ciones iniciales 0
y = y,
y(0) = 1,

25
Mtodos de un paso

que como sabemos, tiene por solucin y(t; 0, 1) = et . Tomemos t1 = 0.1, y estimemos por el mtodo
de Euler y(0.1; 0, 1). Como h = 0.1, entonces
y1 = y0 + y0 h = 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 + y0 h = 1 + 1 = 2,
y el error
e1 = |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 particin P del intervalo [t0 , tf ], esto es P = t0 < t1 < t2 < ... <
tn1 < tn = tf . Definimos hi = ti+1 ti , i = 0, 1, ..., n 1. Construimos la sucesin yn de la siguiente
manera
y1 = y0 + f(t0 , y0 )h0 .
Ahora bien, y1 es una aproximacin de y(t1 ; t0 , y0 ). Para construir y2 , tomamos la aproximacin
mediante el mtodo de Euler del problema
0
y = f(t, y),
y(t1 ) = y1 ,
dado por
y2 = y1 + f(t1 , y1 )h1 ,
y de forma recurrente para i = 1, ..., n,
yi = yi1 + f(ti1 , yi1 )hi1 .
En general, suele tomarse hi = h, i = 0, 1, ..., n 1, cantidad que suele llamarse tamao de paso y n
el nmero de pasos. En este caso el mtodo de Euler queda como
yi = yi1 + f(ti1 , yi1 )h = yi1 + f(t0 + (i 1)h, yi1 )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
Mtodos de un paso

y ahora los errores son


ei = |ei0.1 yi |,
para i = 1, ..., 10, que nos da la siguiente tabla aproximada

e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
0.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-
ximacin del mtodo de Euler no coincide en su condicin inicial con la solucin del problema de
condiciones original. Vemos no obstante que los errores se van acumulando desde e1 hasta e10 , de ma-
nera que estos van creciendo. Sin embargo, si disminuimos el tamao de paso, vemos en la siguiente
tabla como los errores al final dismuyen

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.00001


0.718 0.125 0.013 0.001 0.00014 0.000014

Como vemos, al dividir el tamao de paso h por diez, el error final aproximadamente tambin hace
esta operacin. Veremos posteriormente una explicacin a este hecho.

2.2.2 Mtodo de Taylor de orden 2


Si hacemos n = 2, observamos que el mtodo de Taylor queda de la siguiente forma:
1 1
y(t1 ; t0 , y0 ) y1 = y0 + f1 (t0 , y0 )h + f2 (t0 , y0 )h2 ,
1! 2!
y dado que
f1 (t0 , y0 ) = f(t0 , y0 )
y

f2 (t0 , y0 ) = f(t0 , y0 ) + f(t0 , y0 ) f(t0 , y0 ),
t y
se puede reescribir como

1
y(t1 ; t0 , y0 ) y1 = y0 + f(t0 , y0 )h + f(t0 , y0 ) + f(t0 , y0 ) f(t0 , y0 ) h2 .
2 t y
Si dividimos el intervalo [t0 , tf ] en n intervalos igualmente espaciados siendo el tamao de paso
h = (tf t0 )/n, el valor y(tf ; t0 , y0 ) con yn , que puede estimarse con la recurrencia

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



1
+ f(t0 + (i 1)h, yi1 ) + f(t0 + (i 1)h, yi1 ) f(t0 + (i 1)h, yi1 ) h2 ,
2 t y
para i = 1, ..., n.
Si consideramos el problema de condiciones iniciales anterior
0
y = y,
y(0) = 1,

27
Mtodos de un paso

f f
tenemos que f (t, y) = y, por lo que t
(t, y) =0y = 1, y as la recurrencia anterior se expresa
y
(t, y)
de la forma
1 2 h2
yi = yi1 + yi1 h + yi1 h = 1 + h + yi1 ,
2 2
para i = 1, ..., n. Tomando h = 0.1 (n = 10) y calculando obtenemos

h2
y1 = 1+h+ y0 = 1.105,
2

h2
y2 = 1+h+ y1 = 1.22103,
2

h2
y3 = 1+h+ y2 = 1.34923,
2

h2
y4 = 1+h+ y3 = 1.4909,
2

h2
y5 = 1+h+ y4 = 1.64745,
2

h2
y6 = 1+h+ y5 = 1.82043,
2

h2
y7 = 1+h+ y6 = 2.01157,
2

h2
y8 = 1+h+ y7 = 2.22279,
2

h2
y9 = 1+h+ y8 = 2.45618,
2

h2
y10 = 1+h+ y9 = 2.71408,
2

y ahora los errores son


ei = |ei0.1 yi |,
para i = 1, ..., 10, que nos da la siguiente tabla aproximada

e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
0.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 comparacin al obtenido al aplicar el mtodo de


Euler. Adems, los errores para diferentes tamaos de paso son

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.00001


0.2183 0.0042 0.000045 4.5 107 4.5 109 4.5 1011

Como vemos, se mejora notablemente el error con respecto al mtodo de Taylor, siendo ste adems
de orden dos, es decir, al dividir por 10 el tamao de paso, el error es aproximadamente el del paso
anterior al cuadrado.

28
Mtodos de un paso

Aumentando el orden del mtodo de Taylor, seguimos disminuyendo el error producido. Sin
embargo, el mtodo de Taylor presenta el problema de que hay que derivar sucesivamente las funciones
que determinan la ecuacin o sistema de ecuaciones diferenciales, y esto frecuentemente no es tarea
fcil. Adems, en el caso del ejemplo anterior para la ecuacin y 0 = y, el incremento del orden
no mejora el algoritmo dado que fm (t, y) = 0 para m 3. Veamos a continuacin una familia de
mtodos que presentan un avance en este sentido, y que se conocen como mtodos de RungeKutta.

2.3 Mtodos de RungeKutta de orden dos


Este mtodo se basa en la ecuacin integral asociada al problema de condiciones iniciales
0
y = f(t, y),
y(t0 ) = y0 ,

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

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


Z t Z t
= y(s; t0 , y0 )ds = f(s, y(s; t0 , y0 ))ds.
t0 t0

Entonces, dicha funcin puede calcularse a partir de la ecuacin integral


Z t
y(t) y0 = f(s, y(s))ds.
t0

Los mtodos de RungeKutta se basan en obtener aproximaciones de la integral


Z t
f(s, y(s))ds
t0

mediante algn mtodo de integracin numrica apropiado.


A modo de primer ejemplo, supongamos que dicha integral se aproxima mediante el mtodo del
trapecio, esto es Z tf
h
f(s, y(s))ds [f(t0 , y(t0 )) + f(tf , y(tf ))] ,
t0 2
siendo h = tf t0 . El valor f(t0 , y(t0 )) = f(t0 , y0 ) es conocido. Sin embargo f(tf , y(tf )) es desconocido
dado que y(tf ) = y(tf ; t0 , y0 ) es precisamente el valor que tenemos que aproximar mediante el
mtodo. Para obtener un valor aproximado de dicho valor para poder aplicar el mtodo, obtenemos
ste por un algoritmo de los estudiados anteriormente para tamao de paso h, por ejemplo

y1 = y0 + hf(t0 , y0 ),

que es el mtodo de Euler. Entonces

h
y1 = y0 + [f(t0 , y0 ) + f(tf , y1 )] ,
2
29
Mtodos de un paso

ser la aproximacin de y(tf ; t0 , y0 ) que buscbamos. Si tomamos un tamao de paso h = (tf t0 )/n,
se tiene que de forma compacta

yi+1 = y0 + hf(t0 + ih, yi ),
h

yi+1 = y0 + f(t0 + ih, yi ) + f(t0 + (i + 1)h, yi+1 )
2
que se conoce como mtodo de Heun. Como vemos, hay dos etapas, una inicial donde se calcula
yi y otra posterior donde ya se obtiene la aproximacin propiamente dicha. Por ello, se dice que
es un mtodo de RungeKutta de dos etapas, y como veremos posteriormente de orden dos. Suele
escribirse de forma ms compacta como

g1 = hf(ti1 , yi1 ),
g2 = hf(ti1 + h, yi1 + g1 ),

yi = yi1 + 12 (g1 + g2 ).
Veamos cmo se implementa este mtodo en nuestro ejemplo de costumbre
0
y = y,
y(0) = 1.
Los valores que obtenemos para tamao de paso h = 0.1 son

y1 = (1 + h) y0 = 1.1,
y1 = y0 + h2 (y0 + y1 ) = 1.105,

y2 = (1 + h) y1 = 1.2155,
y2 = y1 + h2 (y1 + y2 ) = 1.22103,

y3 = (1 + h) y2 = 1.34313,
y3 = y2 + h2 (y2 + y3 ) = 1.34923,

y4 = (1 + h) y3 = 1.48416,
y4 = y3 + h2 (y3 + y4 ) = 1.4909,

y5 = (1 + h) y4 = 1.63999,
y5 = y4 + h2 (y4 + y5 ) = 1.64745,

y6 = (1 + h) y5 = 1.81219,
y6 = y5 + h2 (y5 + y6 ) = 1.82043,

y7 = (1 + h) y6 = 2.00247,
y7 = y6 + h2 (y6 + y7 ) = 2.01157,

y8 = (1 + h) y7 = 2.21273,
y8 = y7 + h2 (y7 + y8 ) = 2.22279,

y9 = (1 + h) y8 = 2.44507,
y9 = y8 + h2 (y8 + y9 ) = 2.45618,

y10 = (1 + h) y9 = 2.7018,
y10 = y9 + h2 (y9 + y10

) = 2.71408,
cuyos errores son
e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
0.00017 0.0004 0.0006 0.0009 0.0013 0.0017 0.0022 0.0028 0.0034 0.0042

30
Mtodos de un paso

Obsrvese que son similares a los obtenidos en el mtodo de Taylor de segundo orden. Si variamos
el tamao de paso, obtenemos los siguientes errores para los siguientes valores

h = 1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.00001


0.2183 0.0042 0.000045 4.5 107 4.5 109 4.5 1011

que reproducen los obtenidos en el mtodo de Taylor anteriormente mencionado.


La forma ms general posible para un mtodo de RungeKutta de orden dos es

g1 = hf(ti1 , yi1 ),
g2 = hf(ti1 + c2 h, yi1 + a21 g1 ),

yi = yi1 + b1 g1 + b2 g2 ,

donde los tiempos ti1 no tienen porqu ser uniformemente distribuidos, y b2 6= 0. Si tomamos
g2 (h)/h y desarrollamos mediante la serie de Taylor de primer orden obtenemos

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



f f
= f(ti1 , yi1 ) + h c2 (ti1 , yi1 ) + a21 (ti1 , yi1 )f(ti1 , yi1 ) + O(h),
t y
por lo que

yi = yi1 + b1 g1 + b2 g2

2 f f
= yi1 + (b1 + b2 )hf(ti1 , yi1 ) + b2 h c2 (ti1 , yi1 ) + a21 (ti1 , yi1 )f(ti1 , yi1 ) .
t y
Por otra parte, la aproximacin mediante la serie de Taylor de orden dos de y(t; ti1 , yi1 ) era

1
yi = yi1 + f(ti1 , yi1 )h + f(ti1 , yi1 ) + f(ti1 , yi1 ) f(ti1 , yi1 ) h2 ,
2 t y
e igualando coeficientes obtenemos que

b1 + b2 = 1,
b2 c2 = 1/2,

b2 a21 = 1/2.

Como b2 6= 0, tenemos que a21 = c2 = 2b12 y b1 = 1 b2 , lo cual nos proporciona una familia de
mtodos de RungeKutta de orden dos segn los valores de b2 . As, cuando b2 = 1/2, obtenemos el
mtodo de Heun anteriormente descrito. Cuando b2 = 1, tenemos

g1 = hf(ti1 , yi1 ),
g2 = hf(ti1 + h2 , yi1 + 12 g1 ),
e
h 1
yi = yi1 + hg2 = yi1 + hf(ti1 + , yi1 + g1 )
2 2
h h
= yi1 + hf(ti1 + , yi1 + f(ti1 , yi1 )),
2 2
31
Mtodos de un paso

que es el algoritmo de Runge de 1895.


En general, un mtodo de RungeKutta explcito de m etapas es de la forma
X
m
yi = yi1 + bj gj ,
j=1

donde

g1 = hf(ti1 , yi1 ),


2 = hf(ti1 + c2 h, yi1 + a21 g1 ),
g
g3 = hf(ti1 + c3 h, yi1 + a31 g1 + a32 g2 ),



................

gm = hf(ti1 + cm h, yi1 + am1 g1 + am2 g2 + ... + amm1 gm1 ),
siendo cj , j = 2, ..., m, bj , j = 1, ..., m y ajk , j = 1, ..., m, k = 1, ..., j 1, los coeficientes del mtodo.
Normalmente, estos coeficientes se agrupan segn la tabla

0
c2 a21
c3 a31 a32
... ... ... ...
cm am1 am2 ... amm1
b1 b2 ... bm1 bm

y en forma matricial
ct A
b
donde c = (0, c2 , ..., cm ), b = (b1 , b2 , ..., bm ) y A = (ajk ) Mmm (R) con ajk = 0 si k > j.
As, el mtodo dado por la tabla
0
1 1
2 2
1 1
2
0 2
1 0 0 1
1 1 1 1
6 3 3 6
y concretado en

g1 = hf(ti1 , yi1 ),

g2 = hf(ti1 + h2 , yi1 + 12 g1 ),

g = hf(ti1 + h2 , yi1 + 12 g2 ),
3
g4 = hf(ti1 + h, yi1 + g3 ),
que da
1 1 1 1
yi = yi1 + g1 + g2 + g3 + g4
6 3 3 6
es el mtodo de Kutta de 1905, que es el mtodo clsico de RungeKutta de cuatro etapas, y como
veremos posteriormente, cuarto orden. Si aplicamos este mtodo a nuestro ejemplo
0
y = y,
y(0) = 1,

32
Mtodos de un paso

tenemos que los valores que obtenemos para tamao 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 son
e1 = 8.4 108 e2 = 1.8 107
e3 = 3.1 107 e4 = 4.6 107
e5 = 6.3 107 e6 = 8.3 107
e7 = 1.1 106 e8 = 1.4 106
e9 = 1.7 106 e10 = 2.1 106
Obsrvese que son similares a los obtenidos en el mtodo de Taylor de segundo orden. Si variamos
el tamao de paso, obtenemos los siguientes errores para los siguientes valores
h=1 h = 0.1 h = 0.01 h = 0.001 h = 0.0001 h = 0.00001
0.00995 2.1 106 2.25 1010 1.38 1014 6.22 1015 6.26 1014

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

2.4 Anlisis del error en los mtodos de orden uno


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

donde la funcin f : Rm+1 Rm es suficiente regular para que dicho problema tenga solucin
nica. Como hemos visto hasta ahora, los mtodos numricos de Taylor y RungeKutta se basan
en, fijado t1 > t0 y un tamao de paso h = t1 t
n
0
, construir una sucesin y0 , y1 , ..., yn de manera que
sean una aproximacin de la solucin y(t; t0 , y0 ) en los tiempos ti = t0 + hi. Como hemos puesto de
manifiesto con algunos ejemplos, estos mtodos tienen inherentemente asociados unos errores que se
deben a dos causas bien diferenciadas:

Errores matemticos debidos al mtodo numrico empleado.


Errores de redondeo al trabajar los computadores con precesin finita.

En general, los mtodos que conocemos son de la forma

yi = yi1 + h(ti1 , yi1 , h), i = 1, ..., n, (2.4)

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

33
Mtodos de un paso

Definimos el error global de la solucin aproximada como


ei = yi y(ti ; t0 , y0 ), i = 0, 1, ..., n,
y el mtodo numrico en cuestin se dir convergente si
lim max ||ei || = 0.
h0 0in

Bsicamente, la convergencia implica que el error global tiende a cero cuando lo hace el tamao de
paso.
Otro concepto importante es el de consistencia. Un mtodo numrico dado por (2.4) se dice
consistente si
(t, y, 0) = f(t, y). (2.5)
Por ejemplo, en el caso de los mtodos de Taylor de orden n, la funcin dada por (2.5) es
X
n
hj1
(t, y, 0) = yj) = y0 = f(t, y).
j=1
j!

En el caso de los mtodos de RungeKutta, dicho mtodo es consistente si


X
n
bj = 1.
j=1

En el estudio del error global de un mtodo, tienen gran importancia dos errores locales que a
continuacin describimos. Se llama error local del paso i como
li = yi y(ti ; ti1 , yi1 ),
es decir, la diferencia entre el valor proporcionado por el mtodo yi y el valor exacto proporcionado
por la solucin exacta del problema de condiciones iniciales
0
y = f(t, y),
y(ti1 ) = yi .
El ltimo tipo de error local que vamos a introducir es lo que llamaremos el error local de
truncamiento, que definimos como
ti = y(ti1 ; t0 , y0 ) + h(ti1 , y(ti1 ; t0 , y0 ), h) y(ti ; t0 , y0 ),
es decir, aquel error que se obtendra al sustituir la solucin real del problema de condiciones iniciales
y(t; t0 , y0 ) en el mtodo numrico implementado
yi = yi1 + h(ti1 , yi1 , h).
Si el mtodo numrico es consistente, entonces el error de local de truncaminento converge a cero
cuando se divide por h. En efecto
ti y(ti1 ; t0 , y0 ) y(ti1 + h; t0 , y0 )
lim = lim
h0 h h0 h
+ lim (ti1 , y(ti1 ; t0 , y0 ), h)
h0
= y0 (ti1 ; t0 , y0 ) + f(ti1 , y(ti1 ; t0 , y0 )) = 0,

34
Mtodos de un paso

por ser y(ti1 ; t0 , y0 ) solucin de la ecuacin diferencial. Bsicamente, la consistencia indica que ||ti ||
es al menos O(h2 ). Diremos que un mtodo es consistente de orden n si es consistente y el error local
de truncamiento es de orden O(hn+1 ).
Vamos a analizar este ltimo tipo de error para los mtodo numricos que conocemos.

2.4.1 Error local de truncamiento en el mtodo de Taylor


Recordemos que el mtodo de Taylor es de la forma

1 1 1
yi = yi1 + f1 (ti1 , yi1 )h + f2 (ti1 , yi1 )h2 + ... + fn (ti1 , yi1 )hn
1! 2! n!
Xn
hj
= yi1 + fj (ti1 , yi1 ).
j=1
j!

Entonces, el error local de truncamiento es

ti = y(ti1 ; t0 , y0 ) + h(ti1 , y(ti1 ; t0 , y0 ), h) y(ti ; t0 , y0 )


Xn
hj j) X
hj j)
= y (ti1 ; t0 , y0 ) y (ti1 ; t0 , y0 )
j=1
j! j=1
j!
X
hj j)
= y (ti1 ; t0 , y0 )
j=n+1
j!
hn+1 n+1)
= y (ti1 + h; t0 , y0 ),
(n + 1)!

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

||ti || Ahn+1 ,

o equivalentemente
||ti || = O(hn+1 ),
con lo que el mtodo de Taylor truncado en el paso n es de orden n + 1.

2.4.2 Error local de truncamiento en los mtodos de RungeKutta


Por simplicidad, vamos a considerar slamente los mtodos de dos etapas dados por

g1 = hf(ti1 , yi1 ),
g2 = hf(ti1 + c2 h, yi1 + a21 g1 ),

yi = yi1 + b1 g1 + b2 g2 ,
1
donde a21 = c2 = 2b2
y b1 = 1 b2 . Entonces

(t, y, h) = b1 f(t, y) + b2 f(t + c2 h, y + a21 hf(t, y)).

35
Mtodos de un paso

Ahora bien

ti = y(ti1 ; t0 , y0 ) + h(ti1 , y(ti1 ; t0 , y0 ), h) y(ti ; t0 , y0 )


X
hj j)
= y(ti1 ; t0 , y0 ) + h(ti1 , y(ti1 ; t0 , y0 ), h) y (ti1 ; t0 , y0 )
j=0
j!
!
Xh j1
= h (ti1 , y(ti1 ; t0 , y0 ), h) yj) (ti1 ; t0 , y0 )
j=1
j!
h3 3)
= y (ti1 + h; t0 , y0 ),
3!
debido a los valores de los coeficientes del mtodo de RungeKutta, siendo (0, 1). De esta
manera, vemos que
||ti || = O(h3 ).
En general, el error local de truncamiento en un mtodo de RungeKutta de n pasos es O(hn+1 ).

2.4.3 Relacin entre el error local de truncamiento y el error global


Vamos a ver cmo podemos controlar el error global a partir del error local de truncamiento. Como
sabemos
ei = yi y(ti ; t0 , y0 ).
Entonces

ei = yi1 + h(ti1 , yi1 , h) + ti y(ti1 ; t0 , y0 ) h(ti1 , y(ti1 ; t0 , y0 ), h)


= ti + ei1 + h ((ti1 , yi1 , h) (ti1 , y(ti1 ; t0 , y0 ), h)) .

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

||ei || M + ||ei1 || + h||(ti1 , yi1 , h) (ti1 , y(ti1 ; t0 , y0 ), h)||. (2.6)

Supongamos ahora que satisface una condicin de Lipschitz con constante L > 0 en la variable
y, esto es
||(ti1 , yi1 , h) (ti1 , y(ti1 ; t0 , y0 ), h)|| L||yi1 y(ti1 ; t0 , y0 )||,
con lo que la expresin (2.6) se reduce a

||ei || M + ||ei1 || + h||(ti1 , yi1 , h) (ti1 , y(ti1 ; t0 , y0 ), h)||


M + ||ei1 || + hL||yi1 y(ti1 ; t0 , y0 )||
= M + ||ei1 ||(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
Mtodos de un paso

y en general
X
i1
i
||ei || ||e0 ||(1 + hL) + M (1 + hL)j .
j=0

Como
X
i1
(1 + hL)i 1
(1 + hL)j = ,
j=0
hL

sustituyendo en la expresin anterior,

(1 + hL)i 1
||ei || ||e0 ||(1 + hL)i + M
hL
M M
= (1 + hL)i ||e0 || + .
hL hL

De la nocin de exponencial real tenemos que

0 (1 + hL)i ehLi ,

y teniendo en cuenta que e0 = 0, concluimos que

M hLi
||ei || (e 1).
hL
Ahora bien ih = tf t0 , donde tf es el tiempo final donde deseamos conocer la solucin de la ecuacin
diferencial, por lo que
M L(tf t0 )
||ei || (e 1).
hL
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 Relacin 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 ; ti1 , yi1 )


X hj
= yi1 + h(ti1 , yi1 , h) yj) (ti1 ; ti1 , yi1 )
j0
j!
!
X hj1
j)
= h (ti1 , yi1 , h) y (ti1 ; ti1 , yi1 ) .
j1
j!

37
Mtodos de un paso

Entonces
!
X hj1
li ti = h (ti1 , yi1 , h) yj) (ti1 ; ti1 , yi1 )
j1
j!
!
X hj1
h (ti1 , y(ti1 ; t0 , y0 ), h) yj) (ti1 ; t0 , y0 )
j1
j!

2.5 Extrapolacin de Richardson


Supongamos que y(ti ) = y(ti , h) es la solucin aproximada del problema de condiciones iniciales
0
y = f(t, y),
y(t0 ) = y0 ,

con tamao 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 funcin d(t) no depende de h. Puede comprobarse, aunque queda lejos de los objetivos de
este curso, que el error global tanto en los mtodos de Taylor como en los de RungeKutta tiene esta
estructura. Si calculamos ahora la aproximacin con paso h/2, tendremos
p
h
ei (h/2) = y(ti , h/2) y(ti ; t0 , y0 ) = d(ti ) + O(hp+1 ). (2.8)
2
Restando

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



p 1
= d(ti )h p
1 + O(hp+1 )
2
p
h
= d(ti ) (1 2p ) + O(hp+1 ),
2
con lo que p
y(ti , h/2) y(ti , h) h
p
= d(ti ) + O(hp+1 ).
12 2
Por otra parte, si multiplicamos

2p ei (h/2) = 2p y(ti , h/2) 2p y(ti ; t0 , y0 ) = d(ti )hp + O(hp+1 ),

y calculando

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

de donde
y(ti , h) 2p y(ti , h/2)
y(ti ; t0 , y0 ) p
= O(hp+1 ),
12

38
Mtodos de un paso

por lo que
y(ti , h) 2p y(ti , h/2)
1 2p
es una aproximacin de y(ti ; t0 , y0 ) que tiene al menos orden O(hp+1 ). De este modo, aumentamos
en uno el orden de convergencia, sin por ellos aumentar la cantidad de operaciones de una forma
drstica. Esto es lo que se conoce como el mtodo de extrapolacin de Richardson.
A modo de ejemplo, tomemos el problema
0
y = y,
y(0) = 1,
y calculemos y(1; 0, 1) por el mtodo de Euler con tamao de paso h = 10000 y h/2 = 5000.
Obtenemos los errores e(h) = 0.000135902 y e(h/2) = 0.0000679539. Teniendo en cuenta que el
mtodo de Euler es de orden uno, calculamos
y(ti , h) 2y(ti , h/2)
= 2 2.71821 2.71815 = 2.71828,
12
que nos da un error de 6.22853 109 , con lo que el error ha disminuido notablemente con una serie
de operaciones sencillas.

2.6 Ms sobre los mtodos RungeKutta


Partimos de la ecuacin diferencial con condiciones iniciales
0
y = f(t, y),
y(t0 ) = y0 .
En general, un mtodo de RungeKutta explcito de m etapas es de la forma
X
m
yi = yi1 + bj gj ,
j=1

donde

g1 = hf(ti1 , yi1 ),


g2 = hf(ti1 + c2 h, yi1 + a21 g1 ),
g3 = hf(ti1 + c3 h, yi1 + a31 g1 + a32 g2 ),



................

gm = hf(ti1 + cm h, yi1 + am1 g1 + am2 g2 + ... + amm1 gm1 ),
siendo cj , j = 2, ..., m, bj , j = 1, ..., m y ajk , j = 1, ..., m, k = 1, ..., j 1, los coeficientes del mtodo.
Normalmente, estos coeficientes se agrupan segn la tabla
0
c2 a21
c3 a31 a32
... ... ... ...
cm am1 am2 ... amm1
b1 b2 ... bm1 bm

39
Mtodos de un paso

y en forma matricial
ct A
b
donde c = (0, c2 , ..., cm ), b = (b1 , b2 , ..., bm ) y A = (ajk ) Mmm (R) con ajk = 0 si k > j. Se
satisfacen en general las condiciones de simplificacin
j1
X
cj = cjk , j = 2, ..., m.
k=1

2.6.1 El mtodo de 3 etapas


Veamos cmo se genera el mtodo de RungeKutta de tres etapas que tendr error local de trunca-
miento ti O(h4 ). Como sabemos, su tabla de Butcher ser
0
c2 a21
c3 a31 a32
b1 b2 b3
y el mtodo ser de la forma
g1 = hf(ti1 , yi1 ),
g2 = hf(ti1 + c2 h, yi1 + a21 g1 ),
g3 = hf(ti1 + c3 h, yi1 + a31 g1 + a32 g2 ),
y
yi = yi1 + b1 g1 + b2 g2 + b3 g3 . (2.9)
Por otra parte, la aproximacin mediante la serie de Taylor de orden tres de y(t; ti1 , yi1 ) era

1
yi = yi1 + f(ti1 , yi1 )h + f(ti1 , yi1 ) + f(ti1 , yi1 ) f(ti1 , yi1 ) h2 (2.10)
2 t y

1 2 2
+ f(t i1 , yi1 ) + 2f(t i1 , yi1 ) f(ti1 , y i1 ) + f(t i1 , yi1 ) f(ti1 , yi1 )
6 t2 yt t y
2

2 2
+ f(ti1 , yi1 ) f(ti1 , yi1 ) + f(ti1 , yi1 ) 2
f(ti1 , yi1 ) h3 + O(h4 ). (2.11)
y y
Tomamos la funcin
G2 (h) = f(ti1 + c2 h, yi1 + a21 g1 ),
derivamos dos veces respecto de h

G02 (h) = c2 f(ti1 + c2 h, yi1 + a21 g1 ) + f(ti1 + c2 h, yi1 + a21 g1 )a21 f(ti1 , yi1 ),
t y

2 2
G002 (h) = c22 f(ti1 + c2 h, yi1 + a g
21 1 ) + 2c 2 f(ti1 + c2 h, yi1 + a21 g1 )a21 f(ti1 , yi1 )
t2 ty
2
+ 2 f(ti1 + c2 h, yi1 + a21 g1 )a221 f(ti1 , yi1 )2 ,
y

40
Mtodos de un paso

de donde el desarrollo de Taylor de orden dos es


1
G2 (h) = G2 (0) + G02 (0)h + G002 (0)h2 + O(h2 )
2

= f(ti1 , yi1 ) + c2 f(ti1 , yi1 ) + a21 f(ti1 , yi1 ) f(ti1 , yi1 ) h
t y
2 2
1 2
+ c2 2 f(ti1 , yi1 ) + 2c2 a21 f(ti1 , yi1 ) f(ti1 , yi1 )
2 t ty
2

2 2
+ a21 f(ti1 , yi1 ) 2
f(ti1 , yi1 ) h2 + O(h3 )
y
y por otra parte
G3 (h) = f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h)),
que derivando dos veces nos da

G03 (h) = c3 f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h))
t

+ f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h)) (a31 f(ti1 , yi1 ) + a32 (G2 (h) + hG02 (h))) ,
y

2
G003 (h) = c23 f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h)) +
t2
2
+2c3 f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h)) (a31 f(ti1 , yi1 ) + a32 (G2 (h) + hG02 (h)))
ty
2 2
+ 2 f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h)) (a31 f(ti1 , yi1 ) + a32 (G2 (h) + hG02 (h)))
y

+ f(ti1 + c3 h, yi1 + a31 g1 + a32 hG2 (h)) (a32 (2G02 (h) + hG002 (h))) ,
y
de donde

G03 (0) = c3 f(ti1 , yi1 ) + (a31 + a32 ) f(ti1 , yi1 )f(ti1 , yi1 ),
t y

2 2
G003 (0) = c23 f(t i1 , yi1 ) + 2c3 (a31 + a32 ) f(ti1 , yi1 )f(ti1 , yi1 )
t2 ty
2
+ (a31 + a32 )2 2 f(ti1 , yi1 )f(ti1 , yi1 )2
y


+2a32 f(ti1 , yi1 ) c2 f(ti1 , yi1 ) + a21 f(ti1 , yi1 ) f(ti1 , yi1 ) ,
y t y
por lo que el desarrollo de Taylor en cero es
1
G3 (h) = G3 (0) + G03 (0)h + G003 (0)h2 + O(h3 )
2

= f(ti1 , yi1 ) + c3 f(ti1 , yi1 ) + (a31 + a32 ) f(ti1 , yi1 )f(ti1 , yi1 ) h
t y

41
Mtodos de un paso

1 2 2 2
+ c3 2 f(ti1 , yi1 ) + 2c3 (a31 + a32 ) f(ti1 , yi1 )f(ti1 , yi1 )
2 t ty
2
+ (a31 + a32 )2 2 f(ti1 , yi1 )f(ti1 , yi1 )2
y


+ 2a32 f(ti1 , yi1 ) c2 f(ti1 , yi1 ) + a21 f(ti1 , yi1 ) f(ti1 , yi1 ) h2
y t y
+O(h2 )

Introduciendo los desarrollos de Taylor de G2 y G3 en la ingualdad (2.9), y comparando con el


desarrollo de Taylor de orden 2 (2.10), obtenemos las ecuaciones


b1 + b2 + b3 = 1,

b2 c2 + b3 c3 = 12 ,



b2 a21 + b3 (a31 + a32 ) = 12 ,


b2 c22 + b3 c23 = 13 ,

b2 c2 a21 + b3 c3 (a31 + a32 ) = 13 ,



b2 a221 + b3 (a31 + a32 )2 = 13 ,



b3 a32 c2 = 16 ,

b3 a32 a21 = 16 .

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

1
b2 c22 + b3 c23 =
3
que es la cuarta, y la ltima ecuacin es la antepenltima, con lo que el sistema reducido de ecuaciones
nos queda

b1 + b2 + b3 = 1,



c2 = a21 ,

c3 = a31 + a32 ,

b2 c2 + b3 c3 = 12 ,



b c2 + b3 c23 = 13 ,
2 2
b3 a32 c2 = 16 ,
que nos dan los mtodos de RungeKutta de orden 3, que es una familia biparamtrica de mtodos
numricos. Si tomamos c2 y c3 como parmetros, tenemos de las ecuaciones

b2 c2 + b3 c3 = 12 ,
b2 c22 + b3 c23 = 13 ,

que 1
c3
12
c23 c3 c23 13
b2 = 3 =

c22 c3 c2 c3 (c3 c2 )
c2 c23

42
Mtodos de un paso

c2 1
2 12 1 c2
c2 c2 2
3
b3 = = 3
,
c22 c32 c2 c3 (c3 c2 )
c2 c3
y de la ltima
1 c2 c3 (c3 c2 )
a32 = = .
6b3 c2 6 13 c22
De c3 = a31 + a32 tenemos que
c2 c3 (c3 c2 )
a31 = c3 a32 = c3 ,
6 13 c22
y de b1 + b2 + b3 = 1 concluimos

c3 c23 13 c2 13 c22
b1 = 1 b2 b3 = 1
c2 c3 (c3 c2 ) c2 c3 (c3 c2 )

c2 c3 (c3 c2 ) c3 c23 13 c2 13 c22
=
c2 c3 (c3 c2 )

c2 c3 + 3 (c3 c2 ) 12 (c23 c22 )
1
=
c2 c3 (c3 c2 )
As, obtenemos los mtodos de RungeKutta de orden tres
0
1 1
2 2
3 3
4
0 4
2 1 4
9 3 9
y
0
1 1
2 2
1 1 2
1 2 1
6 3 6
Estas soluciones son vlidas siempre que c2 y c3 sean no nulos y distintos. Existen mtodos que se
obtienen cundo alguna de estas cantidades son nulas, y que se obtienen de igual manera.
Como vemos, dado que el error local de los mtodos de RungeKutta de tres etapas es de orden
4 [O(h4 )], tenemos que el error global de los mtodos de tres etapas es de orden 3.

2.6.2 El mtodo de cuatro etapas


Procediendo como en los casos de dos y tres etapas, aumentando en un orden los desarrollos de Taylor
de las funciones implicadas, tenemos que si la tabla de Butcher de un mtodo de cuatro etapas es
0
c2 a21
c3 a31 a32
c4 a41 a42 a43
b1 b2 b3 b4

43
Mtodos de un paso

entonces han de satisfacerse la simplificacin


j1
X
cj = ajk , j = 2, 3, 4,
k=1

y las condiciones

b1 + b2 + b3 + b4 = 1,



b2 c2 + b3 c3 + b4 c4 = 12 ,



b2 c22 + b3 c23 + b4 c24 = 13 ,

b3 a32 c2 + b4 (a42 c2 + a43 c3 ) = 16 ,
b2 c32 + b3 c33 + b4 c34 = 14 ,




b3 c3 a32 c2 + b4 c4 (a42 c2 + a43 c3 ) = 18 ,

1

b3 a32 c22 + b4 (a42 c22 + a43 c23 ) = 12 ,
1
b4 a43 a32 c2 = 24 ,
la primera de las cuales, como sabemos, viene de la condicin de consistencia de los mtodos de
RungeKutta en general. Butcher en 1963 dio la simplificacin

X
4
bi aij = bj (1 cj ), j = 2, 3, 4, (2.12)
i=1

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


1 2c3
b2 = ,
12c2 (1 c2 )(c2 c3 )
1 2c2
b3 = ,
12c3 (1 c3 )(c3 c2 )
y
6c2 c3 4(c3 + c2 ) + 3
b4 = .
12c2 (1 c2 )(1 c3 )
Tomando ahora j = 3 en (2.12) obtenemos

(1 c2 )(2c2 1)(1 c3 )
a43 = .
c3 (c2 c3 )(6c2 c3 4(c2 + c3 ) + 3)

Finalmente, de la ltima ecuacin y (2.12) con j = 2 obtenemos

c3 (c2 c3 )
a32 = ,
2c2 (2c2 1)
y
(1 c2 )[2(1 c3 )(1 2c3 ) (c2 c3 )]
a42 = .
2c2 (c2 c3 )[6c2 c3 4(c2 + c3 ) + 3]

44
Mtodos de un paso

Como vemos, estas soluciones dependientes de dos parmetros son vlidas 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 mto-
dos de RungeKutta con estos coeficientes.
Estos mtodos son de orden 4 (orden 5 tiene el error local de truncamiento) y representan una
familia de cinco parmetros de mtodos cuyos ejemplos son
0
1 1
3 3
2
3
13 1
1 1 1 1
1 3 3 1
8 8 8 8

y sobre todo, que cumple c2 = c3 ,


0
1 1
2 2
1 1
2
0 2
1 0 0 1
1 1 1 1
6 3 3 6
que es el mtodo debido a Kutta de 1905 y que usualmente se conoce como el mtodo de Runge
Kutta.

2.6.3 Mtodos de ms etapas


En general, se conoce que un mtodo de RungeKutta de m etapas tiene a lo sumo orden m. De
hecho, se tiene la siguiente tabla para los rdenes en funcin de las etapas

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

es decir, a partir de 5 etapas no aumenta el orden global del mtodo. Por qu entonces se construyen
mtodos de ms de 5 etapas? La razn es meramente computacional, ya que los errores debidos al
redondeo aumentan con el nmero de pasos. Para fijar ideas, supongamos que el error global de un
mtodo es
e = Chp ,
donde p es el orden. Tomando logaritmos tenemos que

log e = log C + p log h,

y suponiendo que el tamao del paso h = (tf t0 )/n se tiene


tf t0
log e = log C + p log
n
= log C + p log(tf t0 ) p log n
= B p log n,

siendo
B = log C + p log(tf t0 ).

45
Mtodos de un paso

Si asumimos cierta la identidad


log e = B p log n
y escirbimos otra anloga para un mtodo de orden q

log e = B 0 q log n,

tenemos dos rectas que se cortarn en un punto, que marcarn la eficiencia de cada mtodo y
determinarn cundo debe usarse cada uno.

46
Captulo 3

Mtodos multipaso

Sumario. Mtodos multipaso generales. Convergencia y estabilidad de los mtodos


multipaso. Mtodos de AdamsBashforth. Mtodos de AdamsMoulton. Mtodos
predictorcorrector.

3.1 Introduccin
Partimos de la ecuacin diferencial con condiciones iniciales
0
y = f(t, y),
y(t0 ) = y0 ,

que verifica tener unicidad de solucin. Hasta ahora hemos visto mtodos numricos de un paso, es
decir, la sucesin que aproxima la solucin yi se genera de forma recursiva a partir de los trminos
inmediatamente anteriores, esto es yi1 . Como veremos, en los mtodos multipaso esta sucesin se
construye a partir de una ecuacin en diferencias con orden mayor que uno. Veamos a continuacin
cmo construir tales aproximaciones.

3.2 Mtodos multipaso lineales


Sea y(t; t0 , y0 ) la solucin del problema de condiciones iniciales anterior, y sean tf = t1 > t0 , y
h = t1 t0 . Sea y1 la aproximacin de y(t1 ; t0 , y0 ) dada por la expresin
p p
X X
y1 = aj yj + h bj f(t0 jh, yj ), (3.1)
j=0 j=1

donde aj , bj y p son parmetros elegidos de acuerdo con unas condiciones de convergencia y estabilidad
detrminadas, e
yj y(t0 jh; t0 , y0 ), j = 0, 1, ..., p.
Si p 1, entonces para j = 1, ..., p los valores yj han de ser previamente estimados con un
mtodo de orden uno, probablemente algn mtodo de RungeKutta. Si b1 = 0, el mtodo se dir

47
Mtodos multipaso

explcito ya que y1 se obtiene directamente como


p p
X X
y1 = aj yj + h bj f(t0 jh, yj ).
j=0 j=0

Sin embargo, si b1 6= 0 entonces el mtodo se dice implcito porque hay que calcular y1 resolviendo
la ecuacin (3.1), presumiblemente haciendo uso de algn mtodo numrico para ello.
En general, si tenemos n pasos, h = (tf t0 )/n y ti = t0 + ih, para cada i {1, ..., n} construimos
p p
X X
yi+1 = aj yij + h bj f(ti jh, yij ), (3.2)
j=0 j=1

junto con las condiciones yj , j = 0, 1, ..., p. Como vemos se trata de una ecuacin en diferencias
de orden p que da lugar a la aproximacin de la solucin. Veamos a continuacin cmo obtener los
parmetros del mtodo.
Para ello, consideramos el error local de truncamiento
p p
X X
ti+1 = aj y(ti jh; t0 , y0 ) + h bj f(ti jh, y(ti ih; t0 , y0 )) y(ti + h; t0 , y0 )
j=0 j=1
p p
X X
= aj y(ti jh; t0 , y0 ) + h bj y0 (ti jh; t0 , y0 ) y(ti + h; t0 , y0 ),
j=0 j=1

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


p p
X X
ti+1 = aj y(ti jh; t0 , y0 ) + h bj y0 (ti jh; t0 , y0 ) y(ti + h; t0 , y0 )
j=0 j=1
p
X X

1 k)
= aj y (ti ; t0 , y0 )(1)k (ih)k
j=0 k=0
k!
p
X X
1 k+1)
+h bj y (ti ; t0 , y0 )(1)k (ih)k
j=1 k=0
k!
X
1 k)
y (ti ; t0 , y0 )hk ,
k=0
k!
y reagrupando en distintas potencias de h concluimos que
p ! p p
!
X X X
ti+1 = y(ti ; t0 , y0 ) aj 1 + hy0 (ti ; t0 , y0 ) bj iaj 1
j=0 j=1 j=0
p p
!
X 1X 2 1
+h2 y00 (ti ; t0 , y0 ) jbj + j aj
j=1
2 j=0 2
p p
!
1 X 1 X 1
+h3 y3) (ti ; t0 , y0 ) j 2 bj j 3 aj
2 j=1 6 j=0 6
p p
!
k k) (1)k1 X k1 (1)k X k 1
+... + h y (ti ; t0 , y0 ) j bj + j aj + ...
(k 1)! j=1 k! j=0 k!

48
Mtodos multipaso

y si fijamos a1 = 0, podemos escribir de forma ms compacta


p ! p
!
X X
1 k k) X
ti+1 = y(ti ; t0 , y0 ) aj 1 + h y (ti ; t0 , y0 ) (1)k j k1 (jaj kbj ) 1 ,
j=0 k=1
k! j=1

con lo que el error local de truncamiento ser de orden O(hq+1 ) si se satisfacen las ecuaciones
p
X
aj = 1,
j=0

p
X
k
(1) j k1 (jaj kbj ) = 1, k = 1, 2, ..., q.
j=1

Veamos algunos ejemplos concretos de mtodos multipaso.

3.3 Primeros ejemplos


Vamos a construir un mtodo multipaso de 2 pasos y de orden 3. Supongamos en primer lugar que
el mtodo es explcito, esto es b1 = 0. Ser entonces un mtodo de la forma
yi+1 = a0 yi + a1 yi1 + hb0 f(ti , yi ) + hb1 f(ti h, yi1 ),
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 + 5yi1 + 4hf(ti , yi ) + 2hf(ti h, yi1 ).
Si elegimos un mtodo implcito, esto es,
yi+1 = a0 yi + a1 yi1 + hb1 f(ti + h, yi+1 ) + hb0 f(ti , yi ) + hb1 f(ti h, yi1 ),
el sistema de ecuaciones anterior es de la forma


a0 + a1 = 1,

a1 + b1 + b0 + b1 = 1,

a + 2b1 2b1 = 1,
1
a1 + 3b1 + 3b1 = 1,
que es un sistema compatible indeterminado cuya solucin es


a0 = 1 ,


a1 = ,
5
b1 = 12 , R,

2

b = 3,
0 3 1
b1 = 12 + 5,

49
Mtodos multipaso

por lo que si = 0, tenemos el mtodo


5 2 1
yi+1 = yi + h f(ti + h, yi+1 ) + h f(ti , yi ) h f(ti h, yi1 ).
12 3 12
El mtodo implcito tiene la desventaja de que el valor de yi+1 ha de obtenerse a partir de la
solucin aproximada de una ecuacin algebraica, cosa que no ocurre con el mtodo explcito. Este
ltimo no permite obtener aproximaciones de tanto orden como el implcito. Por ejemplo, el mtodo
de dos pasos explcito no puede tener orden 4, ya que debera cumplir, adems de las ecuaciones
anteriores, la ecuacin adicional
a1 4b1 = 1,
y dado que el determinante
1 2 1

1 3 1 = 4,

1 4 1
el sistema dado por
a1 2b1 = 1,
a1 + 3b1 = 1,

a1 4b1 = 1,
no tiene solucin. Sin embargo, si planteamos el mismo sistema para el mtodo implcito, hemos de
aadir la ecuacin
a1 + 4b1 4b1 = 1,
y ahora el determinate
1 1 0 0 0

0 1 1 1 1

0 1 2 0 2 = 12,

0 1 3 0 3

0 1 4 0 4
por lo que el sistema lineal anterior es compatible determinado y tiene un solucin nica que ser
el nico mtodo de orden 4 y paso 2. Si intentramos conseguir orden 5, tendramos que aadir la
ecuacin
a1 + 5b1 + 5b1 = 1,
y tomando las ltimas 4 ecuaciones, el determinante de la matriz ampliada sera

1 2 2 1

1 3 3 1
= 8,
1 4 4 1

1 5 5 1

por lo que el sistema ser incompatible y no habr solucin del mismo. As pues, los mtodos de dos
pasos pueden tener a lo sumo orden 3 si es explcito y orden 4 si es implcito.
Ahora bien, si consideramos el problema
0
y = y,
y(0) = 1,

50
Mtodos multipaso

y queremos aproximar y(1; 0, 1), esto es tf = 1, y aplicamos el mtodo



yi+1 = 4yi + 5yi1 + 4hyi + 2hyi1 ,
y0 = 1, y1 ,
donde y1 lo hemos elegido a partir de un mtodo de RungeKutta de orden 3 para un tamao de
paso prefijado h, vemos que la aproximacin empieza a oscilar, con lo cual, a pesar de tener una
aproximacin local de orden 3, el error global crece de forma dramtica. Veremos qu ocurre con
este mtodo, pero antes veamos cmo deducir los mtodos de multipaso a partir de la integracin
numrica.

3.4 Mtodos de multipaso deducidos a partir de la integra-


cin numrica
Partamos de la ecuacin 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
Z ti+1 Z ti+1
0
y(ti+1 ; t0 , y0 ) y(ti ; t0 , y0 ) = y (t; t0 , y0 )dt = f(t, y(t; t0 , y0 ))dt.
ti ti

Si queremos cosntruir un mtodo de p pasos, sustituimos f(t, y(t; t0 , y0 )) por un polinomio de inter-
polacin de grado p, que denotaremos Q(t), y que cumplir la condicin
Q(ti jh) = f(ti jh, y(ti jh; t0 , y0 )), j = i p, ..., i.
Este polinomio de interpolacin verifica que
f(t, y(t; t0 , y0 )) = Q(t) + E(t),
donde E(t) es el error cometido al aproximar la funcin por el polinomio interpolador, y que ser
clave a la hora de determinar el error local cometido en la aproximacin. El mtodo numrico que
hemos de construir tendr la forma
Z ti+1
yi+1 = yi + q(t)dt,
ti

donde
q(ti jh) = f(ti jh, yij ), j = i p, ..., i,
es decir, el polinomio interpolador sobre los datos anteriores que sern conocidos. El error local de
truncamiento ser en este caso
Z ti+1 Z ti+1
ti+1 = y(ti ; t0 , y0 ) + Q(t)dt y(ti+1 ; t0 , y0 ) = E(t)dt,
ti ti

es decir, depender del error que se comete al calcular el polinomio interpolador.


Vamos a ver a continuacin cmo se construyen los mtodos de multipaso explcitos e implcitos.

51
Mtodos multipaso

3.4.1 Mtodos de AdamsBashforth


Para cosntruir estos mtodos utilizamos la forma de Newton del polinomio interpolador dada por la
diferencias finitas. Dada la sucesin xi , se definen

1 xi = xi = xi xi1 ,

y para k > 1,
k xi = k1 xi k1 xi1 .
Por ejemplo

2 xi = xi xi1 = (xi xi1 ) (xi1 xi2 ) = xi 2xi1 + xi2 ,

3 xi = 2 xi 2 xi1
= (xi 2xi1 + xi2 ) (xi1 2xi2 + xi3 )
= xi 3xi1 + 3xi2 xi3 .

Por convenio, estableceremos que 0 xi = xi .


Si t = ti + sh, el polinomio de interpolacin tiene la forma

s+1 2 s+p1
q(t) = f(ti , yi ) + sf(ti , yi ) + f(ti , yi ) + ... + p f(ti , yi )
2 p
p
X s+j1
= j f(ti , yi ),
j
j=0

donde
m m(m 1)...(m k + 1)
=
k k!
para m R y k N, y

m
= 1.
0
Adems, el error del polinomio de interpolacin

s+p
E(t) = hp+1 f p+1) (ti , y(ti ; t0 , y0 )) + O(hp+2 ).
p+1

txi
Como s = h
, reescribimos
Z ti+1 Z 1
yi+1 = yi + q(t)dt = yi + h q(xi + sh)ds.
ti 0

52
Mtodos multipaso

El mtodo de AdamsBashforth se construye a partir del desarrollo


Z 1
yi+1 = yi + h q(xi + sh)ds
0Z p !
1X
s+j1
= yi + h j f(ti , yi )ds
0 j=0 j
p Z 1 !
X s + j 1
= yi + h j f(ti , yi ) ds
0 j
j=0
p
X
= yi + h j j f(ti , yi ),
j=0

donde los coeficientes


0 = 1,
Z 1
s+j1
j = ds, j = 1, 2, ..., p,
0 j
se calculan de forma directa. De hecho, los primeros coeficientes son
1 2 3 4 5 6
1 5 3 251 95 19087
2 12 8 720 288 60480

Adems, el error local de truncamiento es de la forma


ti+1 = hp+2 p+1 yp+2 (ti ; t0 , y0 ) + O(hp+3 ),
por lo que es orden O(hp+2 ). As, si buscamos un mtodo de error global O(h3 ), necesitaremos que
p = 2, siendo el mtodo de la forma

1 5 2
yi+1 = yi + h f(ti , yi ) + f(ti , yi ) + f(ti , yi )
2 12

1
= yi + h f(ti , yi ) + [f(ti , yi ) + f(ti1 , yi1 )]
2

5
+ [f(ti , yi ) 2f(ti1 , yi1 ) + f(ti2 , yi2 )]
12
1
= yi + h (23f(ti , yi ) 16f(ti1 , yi1 ) + 5f(ti2 , yi2 )) .
12
Como vemos, al mtodo de AdamsBashforth le podemos aplicar el teorema de convergencia glo-
bal, por lo que ser convergente, al contrario de lo que ocurra con el primer ejemplo que estudiamos.

3.4.2 Mtodos de AdamsMoulton


Los mtodos de AdamsMoulton se obtienen de igual manera que los explcitos de AdamsBasfhforth,
pero ahora tomando el polinomio interpolador en t = ti+1 + sh, con lo que

s+1 2 s+p1

q (t) = f(ti+1 , yi+1 ) + sf(ti+1 , yi+1 ) + f(ti , yi ) + ... + p f(ti+1 , yi+1 )
2 p

53
Mtodos multipaso

p
X s+j1
= j f(ti+1 , yi+1 ),
j
j=0

txi+1
con lo que, como s = h
, reescribimos
Z ti+1 Z 0

yi+1 = yi + q (t)dt = yi + h q (xi + sh)ds.
ti 1

Desarrollando, obtenemos
Z 0
yi+1 = yi + h q(xi + sh)ds
1
Z
p !
X s+j10
= yi + h j f(ti+1 , yi+1 )ds
1 j=0 j
p Z 0 !
X s + j 1
= yi + h j f(ti+1 , yi+1 ) ds
1 j
j=0
p
X
= yi + h j j f(ti+1 , yi+1 ),
j=0

donde
0 = 1,
Z 0
s+j1
j = ds, j = 1, 2, ..., p,
1 j
y el error local de truncamiento es
ti+1 = hp+2 p+1 yp+2 (ti ; t0 , y0 ) + O(hp+3 ).
Los primeros coeficientes son en este caso
1 2 3 4 5 6
12 1
12 1
24 19
720 3
160 863
60480
Tomando p = 2 obtenemos el mtodo de dos pasos y orden tres

1 1 2
yi+1 = yi + h f(ti+1 , yi+1 ) f(ti+1 , yi+1 ) f(ti+1 , yi+1 )
2 12
h
= yi + (5f(ti+1 , yi+1 ) + 8f(ti , yi ) f(ti1 , yi1 )) .
12
A la hora de aproximar yi+1 , dmonos cuenta de que si definimos
p
X
G(yi+1 ) = yi + h j j f(ti+1 , yi+1 ),
j=0
p
X
= yi + h j f(ti+1j , yi+1j ),
j=0

54
Mtodos 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 punto
fijo a G hemos de elegir tamaos de paso h suficientemente pequeos para que

h| 0 |L < 1.

3.5 Estabilidad de los mtodos multipaso lineales


Sea y(t; t0 , y0 ) la solucin del problema de condiciones iniciales
0
y = f(t, y),
y(t0 ) = y0 ,
t1 t0
y sean tf > t0 , y h = n
. Sea yi+1 la aproximacin de y(tt+1 ; t0 , y0 ) dada por el mtodo multipaso
p p
X X
yi+1 = aj yij + h bj f(ti jh, yij ), (3.3)
j=0 j=0

donde los coeficientes se han escogido de manera que el error local de truncamiento es O(hk ), k p+1.
Como sabemos, la convergencia local no implica necesariamente la convergencia global. Vamos a ver
qu propiedad adicional hemos de aadir a la convergencia local para que el mtodo sea globalmente
convergente.
Para ello, aplicamos el mtodo al problema
0
y = 0,
y(0) = y0 ,

con lo que el mtodo multipaso queda como


p
X
yi+1 = aj yij ,
j=0

o equivalentemente
yi+1 a0 yi a1 yi1 ... ap yip = 0,
que es una ecuacin en diferencias lineal cuyo polinomio caracterstico es

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

Por la condicin de convergencia local, sabemos que


p
X
p(1) = 1 aj = 0,
j=0

55
Mtodos multipaso

por lo que 1 es solucin particular de la ecuacin en diferencias. Dicha ecuacin, ser entonces estable
si las restantes raices de p() tienen mdulo menor o igual que uno, y si ste es uno, se trata de una
raz simple. En este caso, el mtodo (3.3) puede escribirse como
1

zi+1 = z2i ,

2 3
zi+1 = zi ,
......



zp = zp+1 ,
i+1 Pi
p P
zi+1 = j=0 aj zpj+1
p+1
i + h pj=1 bj f(ti jh, zpj+1
i ),

donde zpj+1
i = yij , j = 0, 1, ..., p. Matricialmente lo escribimos como
1
zi+1 0 1 0 ... 0 0 z1i 0
z2i+1 0 0 1 ... 0 0 z2i 0

... = ... ... ... ... ... ...

... + h ... .
p
zi+1 0 0 0 ... 0 1 zi p 0
Pp pj+1
zp+1
i+1 a0 a1 a2 ... ap1 ap zip+1
j=1 bj f(ti jh, zi+1 )

Si la matriz
0 1 0 ... 0 0
0 0 1 ... 0 0

A =
... ... ... ... ... ...

0 0 0 ... 0 1
a0 a1 a2 ... ap1 ap
tiene radio espectral

(A) = max {|| : valor propio de A}


= max {|| : p() = 0} 1,

entonces si b1 = 0, el mtodo multipaso verifica las condiciones del teorema de convergencia global,
por lo que si el mtodo es estable de orden local de truncamiento O(hk+1 ), entonces ser convergente
de orden O(hk+1 ). Si b1 6= 0, la estabilidad tambin implica la convergencia, aunque la demostracin
sale fuera de los contenidos del curso.
Si consideramos el mtodo del ejemplo inicial,

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

vemos que
p() = 2 + 4 5,
que tiene por races 1 y 5, por lo que el mtodo no es estable, y de ah su divergencia. Para
conseguir un mtodo convergente, hemos de imponer que el orden local de truncamiento sea una
unidad menor, esto es, quedarnos con las ecuaciones

a0 + a1 = 1,
a1 + b0 + b1 = 1,

a1 2b1 = 1,

56
Mtodos multipaso

que nos da el conjunto uniparamtrico de soluciones




a0 = 2,

a1 = 1 + 2,
R,

b0 = 2 + ,

b1 = ,
que da lugar a la familia de mtodos
yi+1 = 2yi + (1 + 2)yi1 + (2 + )hf(ti , yi ) + hf(ti1 , yi1 ),
con polinomio caracterstico
p() = 2 + 2 (1 + 2),
que para ser estable de cumplir que
1 1 + 2 1,
o equivalentemente
1 0,
y eligiendo = 0, obtenemos el mtodo
yi+1 = yi1 + 2hf(ti , yi ),
conocido como la regla del punto medio. Es obviamente estable ya que
p() = 2 1,
cuyas raices son 1.

3.6 Frmulas BDF


Las frmulas BDF se basan en la utilizacin del polinomio interpolador en los puntos yi+1j , j =
t t
0, 1, ..., p, h = f n 0 , de la solucin aproximada dada por
p
X s+j1
q(s) = j yi+1 ,
j
j=0

cuyo error es
s+p
E(t) = hp+1 f p+1) (ti , y(ti ; t0 , y0 )) + O(hp+2 ).
p+1
y suponemos que se verifica la ecuacin 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
p !
d X s+j1
q0 (s) = j yi+1
ds j=0 j
Xp
1 d s+j1
= h j yi+1 .
dt j
j=0

57
Mtodos multipaso

Como
s+j1 (s + j 1)(s + j 2)...(s + 1)s
= = gj (s),
j j!
se tiene que (j1)! 1
= si j > 0,
gj0 (0) = j! j
0 si j = 0,
de donde p
X 1
j yi+1 = hf(ti+1 , yi+1 ),
j=1
j

que se conocen como las frmulas BDF. Por ejemplo, si p = 2,

X
2
1 1
hf(ti+1 , yi+1 ) = j yi+1 = yi+1 + 2 yi+1
j=1
j 2
1
= yi+1 yi + (yi+1 2yi + yi1 )
2
3 1
= yi+1 2yi + yi1 ,
2 2
y como vemos es de dos pasos.
Como estos mtodos son implcitos, de igual manera que pasaba con los mtodos de Adams
implcitos, el tamao de paso h debe ser elegido para que el mtodo iterativo sea convergente con
constante de Lipschitz menos que uno. En cuanto al error de truncamiento local, puede probarse
que es de orden O(hp+1 ).

3.7 Metodos predictorcorrector


Los mtodos de predictor corrector se basan en utilizar alternativamente mtodos multipaso explcitos
e implcitos de un mismo orden para aproximar la solucin. El mtodo explcito se usa para obtener
la condicin inicial con la que obtener el mediante un mtodo iterativo, una mejor aproximacin con
el mtodo implcito.
Por ejemplo, consideramos como predictor el mtodo explcito

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

y como corrector, consideramos de entre la familia

yi+1 = a0 yi + a1 yi1 + hb1 f(ti + h, yi+1 ) + hb0 f(ti , yi ) + hb1 f(ti h, yi1 ),

dados por el sistema



a0 = 1 ,


a1 = ,
5
b1 = 12 , R.

2

b = 3,
0 3 1
b1 = 12 + 5,

58
Mtodos multipaso

Para obtener un mtodo convergente, calculamos las raices de

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

que son
p
1(1 )2 + 4
t =
p2
1 (1 + )2 1 (1 + )
= = ,
2 2
que nos da 1 y como soluciones, por lo que el mtodo con = 0, dado por
5 2 1
yi+1 = yi + h f(ti + h, yi+1 ) + h f(ti , yi ) h f(ti h, yi1 ), (3.5)
12 3 12
ser convergente.
Un esquema para aplicar estos mtodos sera el siguiente:

Como el mtodo es de orden 2, utilizamos un mtodo de RungeKutta de orden 3 para estimar


y1 .

Predecimos el valor de y2 por y2 con el mtodo (3.4). Como el error local es de orden 4, esta
aproximacin ser de este orden.

Mejoramos la aproximacin anterior calculando y2 con el mtodo (3.5), tomando como punto
inicial para hacer las iteraciones el punto y2 .

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

Hemos de destacar que el mtodo (3.5) s es estable y por tanto convergente.

3.8 Multipaso o RungeKutta


La eleccin del mtodo numrico utilizado para obtener la solucin aproximada depende en gran
medida del coste de computacin de la funcin f. Si este coste es bajo, en general utilizaramos
un mtodo de RungeKutta, pero cuando este es alto utilizamos uno de multipaso, ya que el coste
computacional de clculo de f es menor en este caso. Adems, las distintas evaluaciones de f en
etapas anteriores se pueden utilizar en varios pasos, por lo que no cada vez que se aplica el mtodo
multipaso hay que evaluar la funcin f en todos los pasos.

59
Mtodos multipaso

60
Parte II
Bloque de prctica

61
Captulo 4

Introduccin a Mathematica

Sumario. Generalidades de Mathematica. Funciones, derivadas, representacin


,
gtrafica de funciones.

Mathematica es un programa que permite hacer clculos matemticos complicados con gran
rapidez. Para entendernos, es como una calculadora gigante a la que no slo podemos pedirle que haga
clculos numricos, sino que tambin hace derivadas, clculo de primitivas, representacin grfica de
curvas y superficies, etctera.

Abordaremos en esta prctica una iniciacin a Mathematica partiendo desde cero, intentando
poner de manifiesto su utilidad a la hora de trabajar con expresiones matemticas complicadas, bien
sean stas numricas o simblicas, permitiendo hacer operaciones en poco coste de tiempo y con
bastante facilidad.

Pretendemos con esta prctica introducir al alumno en el manejo de este potente programa que
puede servirle de utilidad en futuros clculos que deba realizar. Esencialmente vamos a aprender a
utilizar el programa, por lo que esta prctica trata de explicar como pedirle a Mathematica que haga
aquello que nosotros deseamos. Adems, el programa puede utilizarse para corregir los problemas
propuestos al alumno en la clase de problemas.

A pesar de la utilidad del programa, debemos hacer hincapi en el hecho de que es necesario
por parte del alumno un conocimiento matemtico terico de todas las funciones y sentencias que
vamos a usar. Por ejemplo, aunque una calculadora multiplica nmeros con suma facilidad, slo nos
percatamos de su potencia en cuanto conocemos dicha operacin y somos capaces de realizarla de
un modo mucho ms lento. Con Mathematica ocurre lo mismo. Slo conociendo tericamente las
operaciones que Mathematica realiza nos percataremos de su utilidad.

4.1 Preliminares
Cuando se arranca Mathematica, aparece una pantalla blanca vaca. En ella podemos escribir
aquellas operaciones que queremos que realice. Una vez tecleada la operacin, hemos de pulsar las
teclas shift + enter para obtener el resultado. Por ejemplo, supongamos que queremos hacer la

63
Introduccin a Mathematica

operacin 2 + 2. Teclearemos entonces


2+2
en la pantalla. A continuacin pulsamos maysculas + enter o la tecla intro en el teclado numrico
y a continuacin aparecer en pantalla

In[1] := 2 + 2
Out[1] = 4.

Todas las operaciones realizadas por el programa cuando se pulsan las teclas maysculas + enter
tienen asignadas un nmero de entrada marcado por In[] y el mismo nmero de salida cuando se
realiza la operacin marcado por Out[]. Podr aparecer nicamente un n mero de entrada, como
veremos posteriormente. Al ir explicando las diferentes operaciones que Mathematica realiza, iremos
escribindolas en la forma en que el programa lo escribe en la pantalla de ordenador.

Adems de la suma se pueden realizar las siguientes operaciones algebraicas como si se tratara
de una calculadora:
x+y suma de nmeros
xy resta de nmeros
x/y divisin de nmeros
x y x y producto de nmeros
xy potencia xy
Cuando Mathematica realiza alguna de las siguientes operaciones, por ejemplo 1/3 + 2/7, operar
estos nmeros ofreciendo siempre su valor exacto, es decir, se tiene

In[2] := 1/3 + 2/7


13
Out[2] = .
21
Sin embargo, a veces nos es ms til tener el valor de este nmero expresado con cifras decimales.
Para ello se tienen las sentencias

x//N N[x]
N[x, n].

Las primeras escriben el nmero x con seis cifras significativas, mientras que la segunda escribe
dicho nmero con un nmero n de cifras significativas que nosotros prefijamos (en la versin 4.0 del
programa 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
Introduccin a Mathematica

lo obtendremos con un nmero 10 cifras significativas.

En caso de las operaciones numricas tambin tendremos una valor numrico aproximado con seis
cifras significativas si en la operacin escribimos algn nmero 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 numricas aproxi-


madas.

4.2 Parntesis, corchetes y llaves


Mathematica distingue entre parntesis, corchetes y llaves. Cada uno de estos elementos realiza
una labor bien diferenciada en la estructura interna del programa. A grosso modo podemos indicar
las siguientes generalidades:

Los parntesis se usan en las operaciones algebraicas para indicar la preferencia a la hora de
hacer las operaciones. As el parntesis de

In[6] := (1 + 3)/7
4
Out[6] =
7
se usa para indicar que primero hacemos la suma 1+3 y luego dividimos entre 7. Hemos de
sealar que Mathematica sigue el orden conocido de preferencia sobre las operaciones. Asi por
ejemplo, si escribimos

In[7] := 1 + 3/7
10
Out[7] =
7
vemos como el resultado cambia notablemente al realizarse en primer lugar la divisin y pos-
teriormente la suma.

Los corchetes [] se usan para escribir el argumento de una funcin bien sea matemtica, bien
sea una operacin especfica del programa. Por ejemplo la funcin sin x se escribe Sin[x], y
para escribir un nmero x real con seis cifras significativas escribimos N[x].

Las llaves {} se utilizan para asignar valores numricos a las variables, por ejemplo a la hora
de calcular lmites de funciones. Tambin se usan para construir conjuntos o listas de objetos
matemticos, como por ejemplo matrices o vectores.

En general es conveniente tener claro en qu momento se han de emplear los parntesis, los
corchetes y las llaves, ya que si confundimos su uso y escribimos por ejemplo Sin{x} o Sin(x) en
lugar de Sin[x], el programa nos lo har saber mandndonos un mensaje de error de color azul.

65
Introduccin a Mathematica

Actividad 1 Realizar las siguientes operaciones con Mathematica:


2.4+32
(a) 47.22
(b) (2 3.1)23 (c) 3.75 + 8.987
56
5.6 2.3 4
(d) (3 + 4 5) (e) (f) 2 102 + 3 103
2 4.52
1+i
(g) (1 + i)(3 i) (h) (i) (1 + i)7
3i

Actividad 2 Dar los resultados de la aplicacin 1 con 15 cifras significativas.

4.2.1 Errores
Puede ocurrir que al teclear una operacin en Mathematica y pulsar las teclas mayscular +
enter, el programa nos devuelva una salida conteniendo frases de color azul. Esto ocurre cuando hay
algn tipo de error o problema que el programa detecta. Estos errores pueden ser bsicamente de
dos tipos:

Errores en la sintaxis de una sentencia. Por ejemplo al escribir [1 + 2] 3 en vez de (1 + 2) 3


o N() en vez de N[].

Errores producidos porque la expresin matemtica o la operacin realizada tiene algn pro-
blema, aunque est bien escrita. Por ejemplo, si intentsemos calcular el determinante de una
matriz no cuadrada.

Otras veces, el programa puede devolver un resultado errneo aunque no nos escriba frases azules.
Es decir el programa no detecta ningn error a pesar de que ste existe. Por sto es necesario saber
qu estamos esperando de la operacin que hemos pedido que el programa nos haga para as criticar
el resultado y valorarlo en su justa medida. No debeis nunca de olvidar que el programa calcula
rpidamente, pero es tonto.

4.3 Funciones matemticas de inters


Mathematica posee una serie de funciones matemticas predefinidas que se escriben del siguiente
modo:

Sqrt[x] = x Exp[x] = ex
Log[x] = log x Log[b, x] = logb x
Sin[x] = sin x Cos[x] = cos x
ArcSin[x] = arcsin x ArcCos[x] = arccos x
Tan[x] = tan x ArcTan[x] = arctan x
n! = factorial de n Round[x] = parte entera de x
Abs[x] = |x| FactorInteger[n] = f actores primos de n

66
Introduccin 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 maysculas y minsculas,
y todas las funciones empiezan con letra mayscula. 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 matemticas ms interesantes son:

Pi = ' 3.14159
E = e ' 2.71828
Infinity =

I = i = 1
Degree = conversion de grados a radianes

Por ejemplo, para calcular el seno de 20 grados escribiramos

In[11] := Sin[20 Degree] //N


Out[11] = 0.34202.

Si quisiramos mayor precisin en las anteriores constantes, debemos escribir

In[12] := N[Pi,10]
Out[12] = 3.1415926536,

que nos proporciona un valor del nmero con diez cifras decimales.

Actividad 3 Calcular los siguientes valores con 6 cifras significativas:

(a) sin 30 + cos 15 (b) log2 256 (c) e10!


p
2 12 1 log 2
(d) (sin 1) (e) log 34 + e (f) arcsin 2 + 2

4.4 Aprovechando clculos anteriores


A veces es posible que tengamos que hacer una sucesin de clculos consecutivos de manera que
cada nueva operacin se base en la anterior. Parece necesaria entonces una sentencia que nos remita a
resultados anteriores sin tener que escribir la operacin de nuevo. Dicha sentencia es %. Por ejemplo,

67
Introduccin a Mathematica

si queremos calcular cos (sin 20 ) tendramos que calcular primero sin 20 , para despus calcular el
coseno de dicha cantidad. Esta operacin podramos 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 un
resultado obtenido dos pasos antes debemos escribir %%, y para resultados obtenidos k pasos antes
escribiremos k smbolos %. Para remitirnos a un resultado obtenido en la salida n podemos tambin
escribir %n. Por ejemplo Cos[%13] tambin nos remite a la salida 13.

4.5 Definicin de variables y funciones


Supongamos que tenemos que hacer una serie de clculos en los cuales interviene repetidamente
una constante, como por ejemplo la constante de la gravitacin universal, o al estudiar valores
particulares de la funcin f (x) = (1.45)x + sin x. Es til entonces definir variables con estos valores
y funciones nuevas para minimizar el tiempo de escritura y hacer las operaciones de forma ms gil.

Las variables pueden ser designadas por letras o por sucesiones de letras. Supongamos que
queremos definir la constante de la gravitacin universal G = 6.671011 con Mathematica. Entonces
deberamos hacer

In[15] := G = 6.67 10 11
Out[15] = 6.67 1011

Si ahora tenemos dos cuerpos de masa 3 kilogramos separados a una distancia de 10 metros, la fuerza
con la que se atraen dichos cuerpos se calcula

In[16] := G 32/(102)
Out[16] = 6.003 1012 .

Para desposeer a G de su valor debemos teclear

In[17] := G = .

o bien
In[18] := Clear[G].
Algunas letras estn asignadas ya por defecto por Mathematica y no pueden ser utilizadas para
definir variables. Una de ellas es N. Si intentsemos escribir N=2, el programa devolver una sentencia
azul de error.

A la hora de trabajar con variables en Mathematica, hemos de tener en cuenta las siguientes
reglas. Si x e y son dos variables que hemos definido con anterioridad, entonces

68
Introduccin 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..

x2y es el producto x2 y y no x2y .

Por otra parte, si en una misma lnea queremos definir varias variables, o escribir varias expresiones
debemos 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 slo ha escrito el ltimo valor. Si al final de la ltima


expresin ponemos tambin ; la operacin no proporciona ninguna salida, es decir la expresin

In[20] := x = 1; y = 2; z = x + y;

no proporciona a continuacin un Out[20] al pulsar maysculas + enter y asigna los mismos valores
que en la sentencia anterior.
Para definir nuevas funciones hemos de usar la siguiente estructura:

nombrefuncin[x1 , x2 , ..., xn ] := expresin.

El smbolo _ se usa para indicar que la letra que lo antecede es una variable de la funcin. Por
ejemplo, para definir la funcin f (x) = (1.45)x + sin x debemos escribir

In[21] := f [x ] := 1.45x + Sin[x].

Entonces si tecleamos

In[22] := f [1]
Out[22] := 3.18975.

obtenemos el valor de dicha funcin en 1. Para eliminar la funcin debemos escribir

In[23] := Clear[f, x]

indicando tanto la variable como el nombre de la funcin.


Hemos visto como introducir funciones escalares, pero a menudo es necesario trabajar con fun-
ciones vectoriales, por ejemplo la funcin

f (x, y, z) = (xy, x sin z),

que como vemos es una funcin f : R3 R2 . Para ello definimos la funcin como

In[24] := f [x , y , z ] := {x y, x Sin[z]}.

69
Introduccin 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

In[27] := f [1, 1, P i][[2]]


Out[27] := 0

segn queramos trabajar con la primera o segunda coordenada.

4.6 Derivadas de funciones


Supongamos que tenemos una funcin de una variable real f (x1 , x2 , ..., xn ) a la que queremos calcular
su derivada o derivada parcial respecto de alguna de sus variables. El comando que realiza ese clculo
con Mathematica es
D[f, x] D[f, xi ].
Por ejemplo si queremos calcular la derivada de f (x) = sin x escribiremos

In[24] := D[Sin[x], x]
Out[24] = Cos[x],

especificando tanto la funcin como la variable respecto de la cual vamos a derivar. Para calcular la
derivada parcial con respecto a la variable y de la funcin f (x, y) = sin(x + y) debemos escribir

In[25] := D[Sin[x + y], y]


Out[25] = Cos[x + y].

Para calcular la derivada nsima de f (x) , hemos de proceder con el comando

D[f, {x, n}].

As la segunda derivada de f (x) = sin x se calcula tecleando

In[26] := D[Sin[x], {x, 2}]


Out[26] = Sin[x]
3f
y y3
de la funcin f (x, y) = sin(x + y) sera

In[27] := D[Sin[x + y], {y, 3}]


Out[27] = Cos[x + y].

70
Introduccin a Mathematica

Si ahora queremos calcular derivadas parciales de funciones respecto de diferentes variables hemos
de indicarlo del modo siguiente
D[f, x1 , x2 , ..., xn ].
2f
As por ejemplo de la funcin f (x, y) = sin(x + y) se calcula escribiendo
xy
In[28] := D[Sin[x + y], x, y]
Out[28] = Sin[x + y].

Exercise 1 Calcula las derivadas de las siguientes funciones:



arcsin x 3x+ex
(a) f (x) = log (sin x) . (b) f (x) = ex log4 (x2 +10)
. (c) f (x) = 1 + x2 +tan x
. (d) f (x) = xx .

Exercise 2 Demostrar que las funciones siguientes satisfacen la ecuacin diferencial que aparece a
su lado.

(a) y(x) = 2 x + x2 , de la ecuacin y 0 + y = x2 .


2
(b) y(x) = 12 (ex + 1), de la ecuacin y 0 + 2xy = x.

(c) y(x) = 1 + x2 , de la ecuacin y 0 y = x.
(d) y(x) = 14 (ex 2xex ex ), de la ecuacin y 00 + 2y 0 + y = ex .

4.7 Representacin grfica de funciones


Mathematica permite hacer representaciones grficas de funciones de una y varias variables. Para
ello hemos de darle tanto la funcin, como el dominio de definicin de sta.

Para la representacin grfica de funciones reales de variable real, tenemos el comando


Plot[f [x], {x, x0 , x1 }],
donde indicamos la funcin, la variable de la funcin, y un intervalo [x0 , x1 ] donde hacer la represen-
tacin. As, para representar la funcin f (x) = sin x en el dominio [0, 2] escribimos
In[30] := Plot[Sin[x], {x, 0, 2Pi}].
1

0.5

1 2 3 4 5 6

-0.5

-1

71
Introduccin a Mathematica

Para representar varias funciones a la vez hemos de escribir todas las funciones que deseemos
representar 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, 2P i}]
1

0.5

1 2 3 4 5 6

-0.5

-1

generaremos una representacin grfica simultnea de las funciones sin x y sin 2x.
Para volver a representar grfica una funcin ya representada previamente tenemos el comando
Show[%n].
As, si escribimos
In[33] := Show[%31],
1

0.5

1 2 3 4 5 6

-0.5

-1

obtenemos una nueva representacin grfica simultnea de las funciones sin x y sin 2x.
Exercise 3 Representar grficamente las siguientes funciones de una variable:
1+x
(a) f (x) = 1x2
en el dominio [2, 2] .
2 1+x
(b) f (x) = ex en el dominio [2, 2] .
1x2
1+x
(c) f (x) = sin 1x 2 en el dominio [2, 2] .
(d) f (x) = ex cos x en el dominio [5, 5] .
ex
(e) f (x) = cos x
en el dominio [, ] .
Exercise 4 Representar conjuntamente las grficas de los apartados (a), (b) y (c) del ejercicio an-
terior.

72
Captulo 5

Ecuaciones diferenciales con Mathematica

Sumario. Resolucin de ecuaciones diferenciales: orden uno y ecuaciones linales.

5.1 Ecuaciones diferenciales de primer orden


Veamos cmo Mathematica es capaz de resolver ecuaciones diferenciales ordinarias. Podemos resolver
tanto ecuaciones diferenciales de la forma

y 0 = f (x, y)

como problemas de condiciones iniciales de la forma


0
y = 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

y 0 [x] == f [x, y[x]].

Para calcular todas las soluciones de dicha ecuacin diferencial tenemos la sentencia

DSolve[y 0 [x] == f [x, y[x]], y[x], x],

indicando la ecuacin y las variables dependiente e independiente. As para resolver la ecuacin


y 0 = xy escribiremos

In[1] := DSolve[y 0 [x] == x y[x], y[x], x]


x2
Out[1] = {{y[x] E 2 C[1]}}
2 /2
y la solucin de la ecuacin diferencial es de la forma y(x) = C[1]ex , donde C[1] es la constante
que proviene de la integracin.

73
Ecuaciones diferenciales con Mathematica

Para resolver problemas de condiciones tenemos que utilizar la sentencia anterior escribiendo la
ecuacin diferencial y la condicin inicial entre llaves y separadas por comas. As el problema
0
y = xy
y(1) = 2
se resuelve escribiendo
In[2] := DSolve[{y 0 [x] == x y[x], y[1] == 2}, y[x], x]
1 x2
Out[2] = {{y[x] 2E 2 + 2 }}
1 x2
cuya solucin es y(x) = 2e 2 + 2 .
Exercise 5 Resolver las siguientes ecuaciones diferenciales de orden uno:
(a) yy 0 = cos t, y() = 3.
(b) y 0 = (1 + x)(1 + y).
y2
(c) + 2yex + (y + ex )y 0 = 0.
2
(d) 2xy 3 + 3x2 y 2 y 0 = 0.
(e) y 0 = x y, y(0) = 0.
(f) 2xy 3 + 3x2 y 2 y 0 = 0, y(2) = 4.
Exercise 6 Hallar la familia de curvas que cumple que para todo punto (x, y) de la misma, la
distancia entre (x, y) y el origen de coordenadas es igual a la longitud del segmento de la recta
normal comprendido entre (x, y) y el punto de corte de la recta normal con el eje x.
Exercise 7 La poblacin de medusas del Mar Menor vara de manera proporcional a la cantidad de
medusas que hay en ese momento. Si inicialmente la poblacin de medusas era de 100.000 individuos
y al cabo de 2 aos dicha poblacin se triplic, calcular la poblacin al cabo de 10 aos. Calcular la
poblacin de medusas para cada instante de tiempo t y calcula su lmite cuando t +. En virtud
del resultado obtenido te parece acertado el modelo? qu pegas le encuentras?
Exercise 8 Un tanque contiene 40 l. de agua pura. Una solucin salina con 100 gr. de sal por litro
entra en el tanque a razn de 1.6 l/min. y sale del tanque a razn de 2.3 l/min. Se pide:
(a) Determinar la concentracin de sal en el tanque en cualquier tiempo.
(b) Hallar la cantidad de agua en el tanque cuando la concentracin de sal sea mxima.
(c) Calcular la mayor cantidad de sal que llega a haber en el tanque en un momento dado.
(d) Encontrar la concentracin 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 al
nmero de individuos que aun no la conocen. Si inicialmente haba 10 personas que saban la noticia
y a los 3 dias la conocan 100 personas, determinar cuanta gente lo sabr al mes de producirse la
noticia (tomar como poblacin de Espaa 40.000.000).

74
Ecuaciones diferenciales con Mathematica

5.2 Ecuaciones diferenciales lineales.


Finalizaremos estas prcticas indicando como resolver ecuaciones diferenciales lineales de orden mayor
que uno, es decir, expresiones de la forma
y n) + p1 (x)y n1) + ... + pn1 (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 de
aprender a escribir la ecuacin (5.1) de manera que el programa Mathematica la entienda. Esto se
hace escribiendo:
n n1
y 0...0 [x] + p1 [x]y 0 ... 0 [x] + ... + pn1 [x]y 0 [x] + pn [x]y[x] == f [x]. (5.2)
Nuevamente, la sentencia que se utiliza para resolver ecuaciones de este tipo es DSolve. As, para
resolver la ecuacin (5.1) hemos de escribirla de la forma presentada en (5.2) dentro de una sentencia
DSolve indicando la variable dependiente en primer lugar y la independiente a continuacin. Por
ejemplo, para resolver la ecuacin
y 00 y = x
hemos de escribir
In[1] := DSolve[y 00 [x] y[x] == x, y[x], x]
que proporciona la siguiente respuesta
Out[1] = {{y[x] x + Ex C[1] + Ex C[2]}},
de donde la solucin general de la ecuacin diferencial es y(x) = x + C[1]ex + C[2]ex , donde C[1]
y C[2] son dos constantes que provienen de la integracin. Podemos adems resolver problemas de
condiciones iniciales escribiendo stas entre llaves. Por ejemplo, para resolver el problema anterior
00
y y =x
y(0) = 1; y 0 (0) = 0,
hemos de escribir lo siguiente:
In[2] := DSolve[{y 00 [x] y[x] == x, y[0] == 1, y 0 [0] == 0}, y[x], x]
obteniendo
Out[2] = {{y[x] (Ex x)(E2x Ex x)}}.
Notemos aqu que las condiciones iniciales C[1] y C[2] han desaparecido al aplicar las condiciones
y(0) = 1 e y 0 (0) = 0.
Exercise 10 Resolver las siguientes ecuaciones diferenciales lineales con coeficientes constantes:
(a) 2y 00 + y 0 + y = x.
(b) y 00 + 2y 0 + y = xex , y(0) = 0, y 0 (0) = 1.
(c) y 000 + 3y 00 + 3y 0 + y = ex .
(d) y 00 + 5y 0 + 6y = x3 cos x, y(1) = 1, y 0 (1) = 0.
(e) 2x2 y 00 + xy 0 + y = 0.

75
Ecuaciones diferenciales con Mathematica

5.3 Aplicaciones de las ecuaciones lineales con coeficientes


constantes.
5.3.1 Movimiento armnico simple.
Como sabemos, el movimiento armnico simple es aqul producido al colocar una masa en muelle
como muestra la siguiente figura

Entonces, si suponemos el cuerpo libre de rozamiento y lo desplazamos verticalmente respecto de su


posicin de equilibrio, dicho cuerpo comienza a moverse segn la ecuacin diferencial

my 00 + ky = 0, (5.3)

donde m es la masa del objeto y k es la constante de recuperacin del muelle. Dado que la masa m
y la constante k son positivas, puede comprobarse que para cualquier condicin inicial, la solucin
de la ecuacin (5.3) es de la forma
p p
y(t) = c1 sin( k/mt) + c2 cos( k/mt),

donde c1 y c2 son dos constantes reales que se calcularn una vez tengamos las condiciones iniciales
y(0) e y 0 (0). Si expresamos c1 y c2 en coordenadas polares

c1 = A cos ,
c2 = A sin ,

obtenemos la expresin
y(t) = A sin(t + ), (5.4)
p
donde A recibe el nombre de amplitud, = + k/m se conoce como frecuencia y como fase inicial.

Exercise 11 Supongamos que desplazamos el cuerpo de la posicin de equilibrio 1 m. Se pide calcular


las ecuaciones del movimiento para los siguientes valores de la masa y la constante de recuperacin
del muelle:

(a) m = 1 kg. k = 1 N/m. e y 0 (0) = 0.

(b) m = 2 kg. k = 0.5 N/m. e y 0 (0) = 1.

76
Ecuaciones diferenciales con Mathematica

(c) m = 1 kg. k = 4 N/m. e y 0 (0) = 2.

Dibujar las grficas de las funciones obtenidas al resolver las ecuaciones anteriores en el intervalo
[0, 10] y comprobar que son peridicas, calculando el periodo de stas. Obtener adems 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 ecuacin del movimiento
se escribe de la forma
my 00 + cy 0 + ky = 0. (5.5)
En este caso se presentan tres situaciones perfectamente diferenciadas:

Movimiento sobreamortiguado. c2 4mk > 0.

Movimiento crticamente amortiguado. c2 4mk = 0.

Movimiento subamortiguado. c2 4mk < 0.

En esta seccin, pedimos resolver el siguiente problema.

Exercise 12 Desplazamos de nuevo el cuerpo de la posicin 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 representaciones


grficas de las funciones anteriores en los intervalos [0, 2], [0, 4], [0, 8] y [0, 20]. Qu infor-
macin puedes obtener de las grficas de las funciones? Caracteriza cualitativamente el movimiento
sobreamortiguado, crticamente amortiguado y subamortiguado.

Exercise 13 Hacer un estudio comparativo de los movimientos generados por los apartados de la
Actividad 12 con el de un movimiento armnico simple tal que m y k tengan el valor que tenan
en el apartado y c = 0. Representar a la vez las grficas de las funciones obtenidas al resolver la
ecuacin amortiguada y la no amortiguada. Como orientacin podeis tomar los intervalos dados en
el ejercicio 12 para hacer las comparaciones.

77
Ecuaciones diferenciales con Mathematica

5.3.3 Movimiento forzado.


Supondremos ahora que el cuerpo que inicialmente considerbamos colgado de un muelle, adems de
estar sujeto a fuerzas de rozamiento, est afectado por una fuerza F (t) que modifica y condiciona su
movimiento. Hablaremos entonces de movimiento forzado, cuya ecuacin de movimiento viene dada
por la ecuacin diferencial
my 00 + cy 0 + ky = F (t). (5.6)

Exercise 14 Resolver el problema de condiciones iniciales


00
y + 4y = F (t)
y(0) = y 0 (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 grficas de las funciones resultantes en un intervalo de la forma [0, T ],
aumentando el valor de T progresivamente, como en el ejercicio 12. Qu grficas parecen acotadas?
Qu explicacin le das para el caso en que las grficas no estn acotadas?

Exercise 15 Resolver la ecuacin diferencial correspondiente a un muelle donde m = 1, c = 2 y


k=2
y 00 + 2y 0 + 2y = 0.
Obtener a continuacin para cada uno de los siguientes apartados la solucin particular de la ecuacin
no homognea correspondiente y la representacin grfica por separado y conjunta de la solucin
particular de la ecuacin no homognea y de la solucin de los problemas de condiciones iniciales
correspondientes en los intervalos [0, 1], [0, 2], [0, 5] y [0, 10].

(a) y 00 + 2y 0 + 2y = cos t, x(0) = 1, x0 (0) = 0.

(b) y 00 + 2y 0 + 2y = et , x(0) = 1, x0 (0) = 0.

(c) y 00 + 2y 0 + 2y = t2 + 1, x(0) = 1, x0 (0) = 0.

Qu consecuencias puedes sacar a partir de las grficas obtenidas?

5.4 Aplicacin a los circuitos elctricos


Consideremos un circuito elctrico 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), segn muestra la siguiente

78
Ecuaciones diferenciales con Mathematica

figura

Suponiendo que L, R y C son constantes, mediante fsica elemental se sabe que el voltaje generado
V (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 la
bobina respectivamente. Sabiendo que
q(t)
VC = ,
C
donde q(t) es la carga en cada instante de tiempo,
VR = Rq 0 (t)
y
VL = Lq00 (t),
obtenemos la ecuacin lineal de orden dos
Lq 00 (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 la
ecuacin en trminos 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 idnticas a la ecuacin que proviene de la
vibracin de un muelle. As, cabe el mismo anlisis para circuitos que hicimos en el apartado anterior.
Exercise 16 Consideremos el circuito elctrico 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 grfico 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
Captulo 6
Programacin en Mathematica

Sumario. Generalidades de la programacin en Mathematica. Representacin


grfica de datos discretos.
A continuacin vamos a explicar algunas sentencias que se utilizan para hacer programas con
Mathematica. Las principales herramientas que vamos a necesitar para hacer los programas son las
siguientes:
Cmo establecer comunicacin entre el ordenador y quien ejecuta el programa?
Cmo contruir bucles con Mathematica?
Cmo definir funciones y variables?
Cmo interrumpir la ejecucin 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 una
evaluacin de Mathematica basta con pulsar las teclas
Alt + coma.
Para las otras cuestiones, se necesita una explicacin ms amplia que a continuacin desarrollamos.

6.1 Operaciones y definicin de variables.


6.1.1 Definicin de variables y funciones
Como sabemos, para definir una variable numrica basta con tomar una letra o conjunto de letras e
igualarlas al valor deseado. Por ejemplo, si queremos asignar a la letra q el valor 6.5, escribiremos en
la 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
Programacin en Mathematica

Si lo que queremos es definir una funcin, hemos de hacerlo indicando la variable entre corchetes
segn el siguiente esquema:
Nombre[var ] = funcion.
As, para definir la funcin f (x) = ex cos x 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 variable
vectorial, por ejemplo de dimensin tres haciendo la siguiente operacin
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 de
escribir
In[6] := ?a
Global 0 a
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
Programacin en Mathematica

6.1.2 Operaciones
Como sabemos las cuatro operaciones bsicas que tenemos son

+ Suma
Resta
Multiplicacin
/ Divisin

junto con el smbolo =. Podemos combinar esta operaciones para obtener otros tipos de operaciones y
estructuras lgicas muy usadas en programacin. Como las ms interesantes resumimos las siguientes:

Operaciones de Test
== Igual
! = Distinto
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que

Operaciones Lgicas
! o Not Negacin
&& Y
|| O
True Verdad
False Falsedad

Por ejemplo, si escribimos 10 < 8, aparecer en pantalla

In[1] := 10 < 8
Out[1] = False

indicando la falsedad de la afirmacin. 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 = 3
Out[4] = True

83
Programacin 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 smbolos que pueden resultar tiles son las siguientes:
x++ Aumenta el valor de x una unidad
x Disminuye el valor de x una unidad
++x Preincrementa x una unidad
x Predisminuye x una unidad
x+ = k Aumenta el valor de x k unidades
x = k Disminuye el valor de x k unidades
x = k Multiplica x por k
x/ = 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 hubiramos 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 funciona
con . Si escribimos
In[6] := x+ = 2
Out[6] = 9
el valor de x ser 9, igual que el que aparece en pantalla.

6.2 Construccin de programas con Mathematica.


Uno de los temas centrales en los programas que vamos a realizar es la construccin de bucles o
procesos iterativos, los cuales han de ejecutarse un nmero de terminado de veces. Para la una
correcta creacin de bucles, explicamos a continuacin una serie de sentencias tiles. Recuerdan en
gran medida a expresiones de lenguajes de programacin como el Pascal, Basic o C.

6.2.1 If
La sentencia If se emplea para establecer elementos condicionantes en un programa. Las diferentes
sintaxis con las que puede manejarse son las siguientes.
If[condicion, f ].

84
Programacin en Mathematica

Si la condicin 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 escribimos
In[2] := If[2 > 1, 2 + 2]
no se obtendr ninguna salida. Otro tipo de expresin es la siguiente

If[condicion, f1 , f2 ].

Ahora, si la condicin 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 tambin se emplea para introducir elementos de toma de decisiones en un
programa. 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, x2, x > 5, x3, True, 0],

definir la funcin 2
x si x < 0
h(x) = x3 si x > 5

0 si 0 x 5.

6.2.3 Switch
Esta sentencia tambin es til para producir toma de decisiones en un programa. Es otra sentencia
muy utilizada para definir funciones a trozos. Su estructura es la siguiente

Switch[condicion, C1 , f1 , C2 , f2 , ...],

y funciona de la siguiente manera. Evala la condicin y la compara con C1 . Si ambas coinciden


ejecuta f1 . A continuacin, compara la condicin 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
Programacin en Mathematica

6.2.4 Do
Esta sentencia es til para la construccin de bucles o procesos repetitivos, como por ejemplo calcular
la suma
X
10
i2 . (6.1)
i=0
Veamos como hacerla empleando esta sentencia. Para ello necesitamos en primer lugar saber como
se 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) evala la expresin desde el valor i = 1 hasta el valor i = imax , aumentando su
valor de uno en uno. En la segunda sentencia (6.3) evaluamos la expresin desde un valor mnimo
que nosotros escogemos, i = imin , hasta un valor mximo i = imax , pero ahora aumentamos el valor
de i en cada paso de di en di unidades. Por ltimo, (6.4) ejecuta la expresin i veces. As, para
obtener el valor de la suma (6.1) hemos de escribir
In[1] := s = 0; Do[s = s + i2, {i, 0, 10, 1}]; s
Out[1] = 385.
Hemos de remarcar que la sentencia Do no escribe nada en pantalla, slo ejecuta la operacin que
se le indica. Es por ello que al final escribimos s en In[1]. Para obtener la suma de los cubos de los
nmeros pares entre el uno y el 100 debemos escribir
In[2] := s = 0; Do[s = s + i3, {i, 2, 100, 2}]; s
Out[2] = 13005000.

6.2.5 While
Otra manera de construir bucles es empleando la sentencia While. A diferencia de la anterior, esta
sentencia incorpora la posibilidad de toma de decisiones. La sintaxis es la siguiente:
While[test, expresion],
que produce la ejecucin de la expresin mientras es test de un resultado positivo. Por ejemplo, para
obtener la suma de (6.1) podramos escribir
In[1] := s = 0; i = 0; While[(i = i + 1) <= 10, s = s + i2]; s
Out[1] = 385.
Ntese que, al igual que pasaba con Do, la sentencia While no escribe nada en la pantalla, por lo
que hemos de indicarle al final que lo escriba. Es importante tambin darse cuenta de como escribir
la condicin y el papel que juegan los parntesis en la misma.

86
Programacin en Mathematica

6.2.6 For
Otro modo de construir un bucle combinado con toma de decisiones es la sentencia For, cuya sintaxis
es la siguiente:
For[inicio, test, incremento, expresion],
que partiendo de un valor inicial, evala la expresin a la vez que incrementa el valor inicial hasta
que 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 + i2]; s


Out[1] = 385.

6.2.7 Break
Frecuentemente al trabajar con bucles puede llegarse a una situacin que provoca la repeticin
indefinida del mismo. Por ejemplo, si escribimos

For[i = 1, i < 0, i + +, s = s + i2]

sumaramos indefinidamente ya que i nunca va a ser menor que cero. Esto provocara una situacin
en la cual el ordenador se cuelga. La sentencia Break puede ser empleada para impedir este proceso,
teniendo la sintaxis
Break[ ].
As, si escribimos
For[i = 1, i < 0, i + +, If[s > 400, Break[ ]]; s = s + i2],
que producir una salida del bucle al superar s el valor 400. Escribiendolo en pantalla tendramos

In[1] := s = 0; For[i = 1, i < 0, i + +, If[s > 400, Break[ ]]; s = s + i2]; s


Out[1] = 0.

6.2.8 Goto, Label


Estas dos sentencias se emplean para conectar dos sitios determinados de un programa. La sintaxis
de ambas es
Label[etiqueta],
Goto[etiqueta].
Por ejemplo, si escribimos

In[1] := s = 0; i = 0; Label[hola]; s = s + i2;


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, para
intentar escribir bucles que no seamos capaces de construir usando las sentencias anteriores.

87
Programacin 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 evaluaciones
producidas. As, por ejemplo, podemos ir viendo paso a paso cmo se calcula el valor de la suma

X
4
i2
i=0

escribiendo

In[1] := s = 0; i = 0; While[(i = i + 1) <= 4, s = s + i2; Print[s]]


1
5
14
30.

Puede suceder que al escribir frases con la sentencia Print el programa cambie las palabras de
orden. Para evitar esto basta con escribir la frase entre comillas, utilizando la expresin

Print[F rase].

6.2.10 Input
La sentencia Input se emplea para introducir datos al programa desde el exterior del mismo cuando
ste est en ejecucin. Se utiliza para establecer un dilogo entre el programa y el usuario. La
sintaxis es la siguiente:

Input[ ] (6.5)

Input[Anotacion]. (6.6)

Cuando se escribe (6.5) aparecer un cuadro de dilogo que habr que rellenar y que suelen ser
datos tiles del programa. Cuando se escribe (6.6) aparecer el mismo cuacdro, pero con la anotacin
que hayamos decidido poner. Por ejemplo, se escribimos

Input[escribe tu edad]

88
Programacin en Mathematica

aparecer un cuadro de la siguiente forma

que habr que cumplimentar y aceptar para que desaparezca. Una vez introducido el valor, por
ejemplo 22, y aceptado, aparecer en pantalla lo siguiente:

In[1] := Input[escribe tu edad]


Out[1] = 22.

6.3 Un programa
Vamos a disear un programa que aproxime numricamente mediante el mtodo de Euler la solucin
del problema de condiciones iniciales 0
y = ty,
y(t0 ) = y0 ,
donde las condiciones iniciales t0 e y0 , el instante final tf en el queremos conocer el valor de la solucin,
y el nmero de pasos con el que este valor se aproximada han de introducirse tras la ejecucin del
programa.

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
Programacin en Mathematica

6.4 Presentaciones grficas


A menudo, aparte de los datos numricos en s, es interesante tener una representacin grfica de
los mismos. En el caso de la aproximacin numrica de soluciones de ecuaciones diferenciales, stos
son dados en forma de sucesin de nmeros reales yn , con n variando de 1 a un valor N, de manera
que yN es la aproximacin a la solucin para el tiempo tf que hemos elegido. En el caso de sistemas
de ecuaciones diferenciales, tendremos una sucesin de vectores de los cuales, cada coordenada se
corresponde con la aproximacin de la funcin solucin en el instante de tiempo dado. En cualquiera
de los dos casos, es conveniente tener una manera de presentar los datos obtenidos mediante la
integracin numrica de una manera grfica.
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 que
deseamos trabajar.
Dada una sucesin de nmeros reales yn , sta se puede introducir en Mathematica de dos maneras.
La primera es hacerlo como una lista en una variable, que se hara con la sintaxis
In[1] := Y = {y1 , y2 , ..., yn }
Out[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 cmo:
In[1] := Y = {2, 5, 6}
Out[1] = {2, 5, 6}
In[2] := Append[Y, 8]
Out[2] = {2, 5, 6, 8}
Supongamos ahora que deseamos introducir los mil primeros trminos de la sucesin dada por la
recurrencia yn+1 = yn + 2, donde y1 = 1, es decir, yn = (1, 3, 5, 7, ...). Escribimos el siguiente
programa
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 sucesin.
Una manera alternativa de introducir dicha sucesin es mediante los arrays, que en dimensin
uno se escriben como
Array[Y, n].
Esta sentencia genera automticamente un vector que tiene por coordenadas Y [1],Y [2],...,Y [n], que
en principio estar vaco de contenido. Para introducir la sucesin anterior escribiramos el programa
Array[Y, 1000]; x0 = 1; For[i = 1, i < 1001,
i + +, Y [i] = x0; x1 = x0 + 2; x0 = x1]

90
Programacin en Mathematica

Figura~6.1: Representacin grfica 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 cmo representar grficamente la informacin con el comando ListPlot, que tiene cualquiera
de las siguientes estructuras
ListPlot[Y ]

ListPlot[Array[Y, 1000]]
segn hallamos introducido la sucesin 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 grfica dada en la figura 6.1.

El comando ListPlot tiene la opcin de unir dos puntos consecutivos con una recta. Tendra la
sintaxis
ListPlot[Y, PlotJoined > True]

ListPlot[Array[Y, n], PlotJoined > True]


Veamos como obtener una informacin grfica de de aproximacin que obtuvimos del problema de
condiciones iniciales generado a partir de la ecuacin y 0 = ty. Para ello, basta modificar el programa

91
Programacin en Mathematica

Figura~6.2: Aproximacin de la solucin del problema de condiciones inciales.

anterior segn 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 aproximacin de la solucin con condicin inicial y(0) = 1, donde el
tiempo final es 10 y el nmero de pasos 100.

Como puede apreciarse en la grfica 6.2, en el eje x aparecen datos hasta 100, que se corresponden
con el nmero de pasos. Si hubisemos elegido 1000 pasos, aparecera obviamente 1000 al ser stos
en nmero de elementos en la sucesin generada. Podemos hacer una representacin grfica donde
el eje x recorra el intervalo de definicin de la funcin solucin 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 sucesin r de vectores del plano, y representando sta como muestra la figura
6.3

92
Programacin en Mathematica

Figura~6.3: Representacin de la solucin en el dominio de definicin.

A veces, es necesario tener que representar a la vez dos sucesiones. Por ejemplo, las soluciones
aproximadas y exacta de una ecuacin diferencial para conocer o estimar la bondad de la aproxima-
cin. Por ejemplo, la solucin del problema
0
y = ty,
y(0) = 1,
es
2 /2
y(t) = et .
Supongamos que queremos ver una representacin grfica conjunta de dicha funcin y su aproxima-
cin en el intervalo [0, 1] mediante 100 pasos. Para ello, generamos los valores de la solucin exacta
en los 100 puntos donde obtenemos la aproximacin numrica con el programa

g[t ] := Exp[t2/2]; t0 = 0.; tf = 1; n = 100; h = (tf t0)/n;


graf = {{t0, g[t0]}}; F or[i = 1, i < 101, i + +, t1 = t0 + h; t0 = t1;
graf1 = Append[graf, {t0, g[t0]}], graf = graf 1]

Igualmente, ejecutamos el programa anterior para obtener la solucin aproximada almacenada en la


variable r. Sin embargo, para representar ambas funciones a la vez hemos de activar un paquete
especial de Mathematica tecleando

<< GraphicsMultipleListPlot

A continuacin utilizamos la sentencia MultipleListPlot, que permite representar varias sucesiones


con la siguiente sintaxis

MultipleListPlot[{r, graf}, PlotJoined > True]

que da lugar a la grfica 6.4. Otras opciones para esta sentencia pueden verse en el manual del
programa.

93
Programacin en Mathematica

Figura~6.4: Representacin conjunta de las soluciones aproximada y exacta del problema de condi-
ciones iniciales.

94
Apndice A

Ecuaciones en diferencias

Sumario. Ecuaciones en diferencias. Solucin de una ecuacin en diferencias.


Ecuaciones lineales: teora general. Transformada Z. Estabilidad de ecuaciones en
diferencias lineales. Estabilidad local de ecuaciones en diferencias no lineales.

A.1 Introduccin
Una ecuacin en diferencias es una expresin de la forma

F (n, yn , yn+1 , ..., yn+k ) = 0,

donde F : Rk+2 R es una funcin definida sobre un subconjunto de Rk+1 . El nmero k


recibe el nombre de orden de la ecuacin. Por ejemplo, las ecuaciones

yn+2 yn = 0,
nyn+3 eyn+3 yn = 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 trmino yn+2 , quedando la ecuacin

yn+2 = yn ,

mientras que en la segunda ecuacin tal operacin no puede realizarse, es decir, no se va a poder
despejar explcitamente el trmino yn+3 . Nosotros vamos a centrarnos en el primer tipo de ecuaciones,
que llamaremos resueltas respecto de el mayor trmino de la sucesin yn . A partir de este momento,
consideraremos ecuaciones en diferencias de la forma

yn+k = f (n, yn , yn+1 , ..., yn+k1 ), (A.1)

siendo f : Rk R una funcin.


Por una solucin de la ecuacin (A.1) entenderemos una solucin xn de nmeros reales de manera
que verifique
xn+k = f (n, xn , xn+1 , ..., xn+k1 ).

95
Ecuaciones en diferencias

As, por ejemplo la sucesin constante xn = 1 es solucin de la ecuacin yn+2 = yn . Tambin lo es


la sucesin xn = (1)n . Como vemos, una ecuacin puede tener distintas soluciones, pero sta es
nica si imponemos una serie de k condiciones iniciales. As, xn = (1)n es la nica solucin de la
ecuacin
yn+2 = yn ,
y1 = 1, y2 = 1.
Llamaremos a estos problemas de condiciones iniciales, por su analoga con las ecuaciones diferen-
ciales ordinarias.
Dentro de las ecuaciones en diferencias, tienen un espcial inters las llamadas ecuaciones lineales,
que son de la forma
yn+k + a1n yn+k1 + ... + akn yn = bn ,
donde a1n , ..., akn , bn son sucesiones de nmeros reales. En el caso de que las sucesiones a1n , ..., akn sean
constantes, esto es, ain = ai para todo n 0 y para todo i {1, ..., k}, la ecuacin lineal se dir de
coeficientes constantes. En general, tambin distinguiremos entre ecuaciones homogneas si bn = 0
para todo n 0, y no homogneas en caso contrario. Las ecuaciones

yn+3 + nyn+1 yn = 1,
yn+2 yn+1 yn = 0,

son ecuaciones en diferencia lineales, siendo la primera no homognea y la segunda homognea y con
coeficientes constantes.
Las ecuaciones lineales juegan un importante papel en la modelizacin de circuitos digitales.
Vemoslo con el siguiente ejemplo que proviene de la electrnica (ver [Oga2]). Para fijar ideas,
consideremos el siguiente ejemplo.

Este dispositivo genera una sucesin de salida yk para una sucesin de entrada xk de la siguiente
manera. El elemento marcado con una a dentro de un crculo amplifica el dato de entrada la magnitud
a R. Por ejemplo

El segundo elemento, una D dentro de un rectngulo, retarda la seal o sucesin de entrada una

96
Ecuaciones en diferencias

unidad temporal. As

Finalmente, el elemento marcado con un smbolo S dentro de un crculo, suma los datos que le llegan:

Combinando varios de estos elementos, construimos los llamados circuitos digitales, como el de
la figura anterior. sta representa uno de los tipos ms sencillos de retroalimentacin de una seal.
Los datos de entrada vienen dados por la sucesin xk y los de salida por

yk+1 = rk . (A.2)

En el proceso, los datos intermedios rk vienen dados por la expresin

rk = xk ayk , (A.3)

donde a es un nmero real. Combinando (A.2) y (A.3) obtenemos la ecuacin en diferencias de orden
uno
yk+1 + ayk = xk .
Si complicamos el dispositivo, como se muestra en la figura,

se obtiene una ecuacin de orden dos. Aqu

yk+1 = vk ,

97
Ecuaciones en diferencias

vk+1 = rk ,

rk = xk + byk avk ,
de donde se obtiene la ecuacin
yk+2 + ayk+1 byk = xk .
Por ejemplo supongamos la ecuacin

yk+2 + yk+1 2yk = 0;
y0 = 0, y1 = 1.

Veremos a continuacin cmo abordar el estudio de estas ecuaciones.

A.2 Transformada Z
A.2.1 Definicin y propiedades bsicas
Consideremos una sucesin de nmeros complejos xk . Se define la transformada Z de la misma como
la serie
X
xn
Z[xk ](z) = n
. (A.4)
n=0
z
P
Ntese que (A.4) es una serie de Laurent con parte regular x0 y parte singular n=1 xn z
n
, y que
por tanto converger en un disco de convergencia de la forma

A(0, r, +) = {z C : |z| > r}


P
donde r es el radio de convergencia de la serie de potencias n
n=1 xn z .
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

X
1 1 z
Z[1](z) = n
= 1 = ,
n=0
z 1 z
z1

siempre que |z| > 1.


Propiedades bsicas.

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 definicin de Z[xk ](z) y Z[yk ](z).

98
Ecuaciones en diferencias

Demostracin. Basta calcular


X

xn + yn
Z[xk + yk ](z) =
n=0
zn
X

xn X
yn
= n
+ n
= Z[xk ](z) + Z[yk ](z).
n=0
z n=0
z

Dada la sucesin xk , definimos la nueva sucesin 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 frmula


kX
0 1

Z[xk+k0 ](z) = z k0 Z[xk ](z) xn z k0 n .


n=0

Demostracin. Calculamos
X

xn+1
Z[xk+1 ](z) =
n=0
zn
X
xn+1 X
xn
= z n+1
=z
n=0
z n=1
zn
X
xn
= z zx0 = zZ[xk ](z) zx0 .
n=0
zn

Dada la sucesin xk y a C \ {0}, se verifica

Z[ak xk ](z) = Z[xk ](z/a).

Dmostracin. Calculamos
X

an xn X

xn
k
Z[a xk ](z) = = = Z[xk ](z/a).
n=0
zn n=0
(z/a)n

Por ejemplo, si xk = (1, 2, 22 , 23 , ...), se tiene que

X

2n 1 z
k
Z[2 ](z) = = 2 = .
n=0
zn 1 z
z2

99
Ecuaciones en diferencias

Dadas las sucesiones xk y km , m N, se verifica


d m
Z[k m xk ](z) = [z ] Z[xk ](z),
dz
d
donde por z dz se entiende la operacin derivada y luego multiplicacin por z.
Demostracin. Hacemos la demostracin por induccin en m. Si m = 1, entonces
X

nxn X

nxn
Z[kxk ](z) = =
n=0
zn n=1
zn
X
nxn X
d xn
= z n+1
=z
n=1
z n=1
dz z n
! !
d X xn d X xn d
= z n
= z n
x0 = z Z[xk ](z).
dz n=1
z dz n=0 z dz
Si suponemos el resultado cierto para m, veamos que tambin lo es para m + 1. Para esto calculamos
d
Z[k m+1 xk ](z) = Z[k km xk ](z) = z
Z[km xk ](z)
dz
d d m d
= (z )[z ] Z[xk ](z) = [z ]m+1 Z[xk ](z).
dz dz dz

Por ejemplo, si xk = k 2 , entonces


d 2 d z
Z[k2 ](z) = [z ] Z[1](z) = [z ]2
dz dz z 1
d d z d z z2
= z z = z +
dz dz z 1 dz z 1 (z 1)2
z 3z 2 2z 3
= + ,
z 1 (z 1)2 (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 funcin F (z) basta calcular el desarrollo en serie de Laurent
centrada en cero de manera que tenga un anillo de convergencia de la forma {z C : |z| > r}, donde
1
r 0. Por ejemplo, si F (z) = z1 , entonces desarrollando en serie de Laurent

1X 1 X 1

1 1 1
= 1 = =
z1 z1 z
z n=0 z n n=0 z n+1

100
Ecuaciones en diferencias

si |z| > 1. Entonces la sucesin


xk = Z 1 [1/(z 1)] = (0, 1, 1, 1, ...).

A.2.3 Aplicacin a la resolucin de la ecuacin en diferencias lineales


con coeficientes constantes
Consideramos el problema
yk+2 + yk+1 2yk = 1;
y0 = 0, y1 = 1,
obtenido anteriormente. Tomando la transformada Z en la ecuacin, usando las propiedades de sta
y tomando en consideracin 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)
= z 2 Z[yk ](z) z + zZ[yk ](z) 2Z[yk ](z)
= (z 2 + z 2)Z[yk ](z) z.
Por otra parte
z
Z[1](z) = .
z1
Entonces
z z2
(z 2 + z 2)Z[yk ](z) = z + = ,
z1 z1
con lo que
z2
Z[yk ](z) = .
(z 2 + z 2)(z 1)
Pasamos a fracciones simples
z2 1 3 4
Z[yk ](z) = 2
= 2
+ ,
(z 1) (z + 2) (z 1) z1 z+2
y calculamos la transformada inversa obteniendo los desarrollos en series de Laurent
n X
1 X 2

1 1 1 (2)n
= = =
z + 2 z 1 2z
z n=0 z n=0
z n+1

si |z| > 2.
1X 1 X 1

1 1 1
= 1 = =
z1 z1 z
z n=0 z n n=0 z n+1
si |z| > 1. Finalmente
!
1 d 1 d X 1 X
d 1 X
n+1
2
= = n+1
= n+1
=
(z 1) dz z1 dz n=0
z n=0
dz z n=0
z n+2

101
Ecuaciones en diferencias

si |z| > 1. Entonces si |z| > 2 se tiene que


1 3 4
Z[yk ](z) = 2
+
(z 1) z1 z+2
Xn+1
X
1 X
(2)n
= 3 + 4
n=0
z n+2 n=0
z n+1 n=0
z n+1
1 Xn+1 X 3 X 4(2)n+1

= +
z n=0 z n+2 n=0
z n+2 n=0 z n+2
1 X n 4 + 4(2)n+1

= + ,
z n=0 z n+2

por lo que si k 2
yk = 4(2)k+1 4 + k.
Veamos a continuacin 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 ecuacin, tenemos que

Z[xn+2 2xn+1 + 2xn ](z) = Z[1](z).

Por un lado
X
1 1 z
Z[1](z) = n
= 1 = ,
n=0
z 1 z
z1
mientras que

Z[xn+2 2xn+1 + 2xn ](z) = Z[xn+2 ](z) 2Z[xn+1 ](z) + 2Z[xn ](z)
= z 2 Z[xn ](z) z 2 x0 zx1 2zZ[xn ](z) 2zx0 + 2Z[xn ](z)
= (z 2 2z + 2)Z[xn ](z),

de donde
z
Z[xn ](z) = .
(z 1)(z 2 2z + 2)
Desarrollamos la funcin en serie de Laurent para calcular xn . Para ello en primer lugar
z z
=
(z 1)(z 2 2z + 2) (z 1)(z 1 i)(z 1 + i)
1 1 1+i 1 1i
= .
z 1 2z 1i 2z 1+i
Calculamos de forma separada

1X 1 X 1

1 1 1
= 1 = = ,
z1 z1 z
z n=0 z n n=1 z n

102
Ecuaciones en diferencias

n X
1X 1+i

1 1 1 1
= 1+i = = (1 + i)n1 n ,
z1i z1 z z n=0 z n=1
z
n X
1X 1i

1 1 1 1
= 1i = = (1 i)n1 n ,
z1+i z1 z z n=0 z n=1
z
con lo que agrupando

z X
1 1X

1X

n 1 1
2
= n
(1 + i) n (1 i)n n
(z 1)(z 2z + 2) n=1
z 2 n=1 z 2 n=1 z
X
1 n 1 n 1
= 1 (1 + i) (1 i) ,
n=1
2 2 zn

y teniendo en cuenta que


n n
(1 + i)n = 2n/2 (cos + i sin ),
4 4
n n
(1 i)n = 2n/2 (cos i sin ),
4 4
obtenemos
z X
n 1
n/2
= 1 2 cos ,
(z 1)(z 2 2z + 2) n=1 4 zn
y por tanto
n
xn = 1 2n/2 cos .
4

A.2.4 Frmula de inversin compleja


Supongamos que
X

Z[xk ](z) = xk z k ,
k=0

y multipliquemos ambos miembros de la igualdad por z n1 , de donde

X

n1
Z[xk ](z)z = xk z nk1 .
k=0

Supongamos una circunferencia del plano complejo que contiene todas las singularidades de la
funcin Z[xk ](z)z n1 , para todo n 1. Por la frmula integral de Cauchy
Z Z X

1 n1 1
Z[xk ](z)z dz = xk z nk1 dz
2i 2i k=0

1 XZ

() = xk z nk1 dz = xn ,
2i k=0

103
Ecuaciones en diferencias

dado que Z
nk1 0 si n k 6= 2,
xk z dz =
2ixn si n k = 2.
Por el Teorema de los residuos
Z X
m
1
xn = Z[xk ](z)z n1 dz = Res(Z[xk ](z)z n1 , zi )
2i i=1

donde si zi es un polo de orden m, entonces el residuo es


1 dm1
Res(Z[xk ](z)z n1 , zi ) = lim m1 (z zi )m Z[xk ](z)z n1 .
(m 1)! zzi dz
Vamos a modo de ejemplo a obtener la transformada inversa de
z(z 1)
f (z) = .
(z 2)2 (z + 3)
Sus polos son 2, de orden dos, y 3 que es de orden uno. Entonces

n1 1 d 2 z n (z 1)
Res(f (z)z , 2) = lim (z 2)
1! z2 dz (z 2)2 (z + 3)
n
d z (z 1)
= lim
z2 dz (z + 3)
(nz (z 1) + z n )(z + 3) z n (z 1)
n1
= lim
z2 (z + 3)2
(n2n1 + 2n )5 2n 4 1
= = 2n + n2n ,
25 25 50
y
z n (z 1)
Res(f (z)z n1 , 3) = lim (z 3)
z3 (z 2)2 (z + 3)
z n (z 1) 4
= lim 2
= (3n ).
z3 (z 2) 25
De esta forma
4 n 1 4
xn = 2 + n2n (3n ).
25 50 25
Sea ahora
1
f (z) = ,
z2 +1
cuyos polos simples son i. Entonces
z n1
Res(f (z)z n1 , i) = lim(z i)
zi (z i)(z + i)
n1
z 1 1
= lim = in1 = in ,
zi (z + i) 2i 2

104
Ecuaciones en diferencias

z n1
Res(f (z)z n1 , i) = lim (z + i)
zi (z i)(z + i)
n1
z 1 1
= lim = (i)n1 = (i)n ,
zi (z i) 2i 2

por lo que
1 1
xn = in + (i)n .
2 2
Expresando los nmeros complejos en forma trigonomtrica y utilizando la frmula de De Moivre,
obtenemos
1 1
xn = in + (i)n
2 2
1 1 n
= (cos + i sin )n + (cos + i sin )
2 2 2 2 2 2
1 n n 1 n n
= (cos + i sin ) + (cos + i sin ),
2 2 2 2 2 2
y dado que
n n
sin = sin
2 2
y
n n
cos = cos
2 2
obtenemos
n
xn = cos .
2

A.2.5 Funciones de transferencia.


La funcin de transferencia asociada a la transformada Z se define de forma anloga a la funcin de
transferencia asociada a la transformada de Laplace. Consideremos en este contexto una ecuacin
en diferencias finitas de la forma

an yk+n + an1 yk+n1 + ... + a1 yk+1 + a0 yk = xk , (A.5)

siendo ai R, 0 i n. Entonces, suponiendo que yi = 0 i < k, tomando la transformada Z


obtenemos que
(an z n + an1 z n1 + ... + a1 z + a0 )Z[yk ](z) = Z[uk ](z),
por lo que
1
Z[yk ](z) = Z[uk ](z).
an zn + an1 z n1 + ... + a1 z + a0
Se define enotnces la funcin de transferencia asociada a la ecuacin como
Z[yk ](z) 1
T (z) = = n n1
.
Z[uk ](z) an z + an1 z + ... + a1 z + a0

105
Ecuaciones en diferencias

Podemos estudiar entonces la estabilidad de la ecuacin entendiendo sta de forma anloga al caso
continuo estudiada en el tema anterior, es decir, si para toda solucin asociada a una condicin inicial
dada se verifica que
lim yk = 0.
k

El siguiente resultado caracteriza la estabilidad del sistema en base a los polos de la funcin de
transferencia.

Theorem 3 El sistema dado por la ecuacin (A.5) es estable si y slo si todos los polos de la funcin
de transferencia verifican que |z| < 1.

A.3 Ecuaciones no lineales


Consideremos ahora una ecuacin en diferencias de orden k no lineal

yn+k = f (n, yn , ..., yn+k1 ),

donde f : Rk+1 R es una funcin continua. Esta ecuacin puede reducirse a un sistema
de orden uno de la manera siguiente. Definimos las variables zn1 = yn , zn2 = yn+1 , ..., znk = yn+k1 .
Entonces 1

zn+1 = zn2 ,

2
zn+1 = zn3 ,
............



z k1 = znk ,
n+1k 1 k
zn+1 = f (n, zn+1 , ..., zn+1 ).
Esto es, si zn = (zn1 , ..., znk ), entonces de forma compacta el sistema se puede escribir como

zn+1 = f(n, zn )

donde
f(n, zn1 , ..., znk ) = (zn2 , zn3 , ..., znk , f (n, zn+1
1 k
, ..., zn+1 )).
Si la ecuacin o sistema de orden uno no depende explcitamente de n, se dice que dicha ecuacin
o sistema es autnomo. Por ejemplo,

yn+1 = 4yn (1 yn1 ),

es una ecuacin autnoma y

xn+1 = xn + yn ,
yn+1 = xn yn ,

es un sistema autnomo de orden uno.


Las ecuaciones y sistemas de orden uno han tenido un reciente desarrollo debido a que son modelos
de ciencias experimentales como la ecologa y la economa. Con frecuencia, presentan lo que se conoce
como comprotamiento catico o complicado.

106
Bibliografa

[AbBr] M.L. Abell y J.P. Braselton, Dierential Equations with Mathematica, Ed. AP Proessional.

[BuFa] R. Burden y J. D. Faires, Mtodos numricos, Thomson.

[Cas] E. Castillo y otros, Mathematica, Ed. Paraninfo.

[Dor] J. R. Dormand, Numerical methods for dierential equations, CRC Press.

[Ela] S. N. Elaydi, An introduction to dierence equations, SpringerVerlag.

[Jim] V. Jimnez Lpez, Apuntes de ecuaciones diferenciales, Servicio de publicaciones, Universi-


dad de Murcia, 2000.

[Lam] J. D. Lambert, Numerical methods for ordinary dierential equations, Wiley.

[MaMy] B. M. Mahan y R. J. Myers, Qumica, curso universitario, AddisonWesley 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. Sa, Fundamentos de ecuaciones diferenciales ( 2a edicin), Addison


Wesley Longman, 1992.

[Oga2] K. Ogata, Discretetime control systems, Prentice Hall, 1995.

[Sim] G. F. Simmons, Ecuaciones diferenciales (con aplicaciones y notas histricas), 2a Edicin,


McGrawHill, 1993.

[VJAP] L. Vzquez, S. Jimnez, C. Aguirre y P. J. Pascual, Mtodos numricos para la Fsica y la


Ingeniera, McGrawHill.

[Wol] Stephen Wolfram, The Mathematica Book, Wolfram Media, Cambridge University Press.

107

También podría gustarte