Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mastquim PDF
Mastquim PDF
Aplicaciones a la Qumica
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
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
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
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.
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,
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 .
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.
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
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.
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 ,
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.
y 0 = K(T y),
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.
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
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
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.
12
Introduccin a las ecuaciones diferenciales
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
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
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
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
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
Es obvio que
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
19
Introduccin a las ecuaciones diferenciales
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
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.
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
y y0 = f (t0 , y0 )(t t0 ).
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
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
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.
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
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, 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.
y1 = y0 + hf(t0 , y0 ),
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
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
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
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.
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:
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
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 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.
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!
||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.
35
Mtodos de un paso
Ahora bien
Sea M > 0 tal que ||ti || < M y teniendo en cuenta que h > 0, obtenemos la acotacin
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
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
(1 + hL)i 1
||ei || ||e0 ||(1 + hL)i + M
hL
M M
= (1 + hL)i ||e0 || + .
hL hL
0 (1 + hL)i ehLi ,
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 ,
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!
con tamao de paso h, esto es, t = ti = t0 + ih. Supongamos que el error global
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
y calculando
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.
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 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
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 )
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.
43
Mtodos de un paso
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
b4 (1 c4 ) = 0,
(1 c2 )(2c2 1)(1 c3 )
a43 = .
c3 (c2 c3 )(6c2 c3 4(c2 + c3 ) + 3)
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
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
siendo
B = log C + p log(tf t0 ).
45
Mtodos de un paso
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
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.
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
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
48
Mtodos multipaso
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
49
Mtodos multipaso
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
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
51
Mtodos multipaso
1 xi = xi = xi xi1 ,
y para k > 1,
k xi = k1 xi k1 xi1 .
Por ejemplo
3 xi = 2 xi 2 xi1
= (xi 2xi1 + xi2 ) (xi1 2xi2 + xi3 )
= xi 3xi1 + 3xi2 xi3 .
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
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
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.
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 ,
o equivalentemente
yi+1 a0 yi a1 yi1 ... ap yip = 0,
que es una ecuacin en diferencias lineal cuyo polinomio caracterstico es
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
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,
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
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
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 ).
yi+1 = a0 yi + a1 yi1 + hb1 f(ti + h, yi+1 ) + hb0 f(ti , yi ) + hb1 f(ti h, yi1 ),
58
Mtodos multipaso
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:
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.
59
Mtodos multipaso
60
Parte II
Bloque de prctica
61
Captulo 4
Introduccin a Mathematica
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
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
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
64
Introduccin a Mathematica
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
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
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 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.
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.
Pi = ' 3.14159
E = e ' 2.71828
Infinity =
I = i = 1
Degree = conversion de grados a radianes
In[12] := N[Pi,10]
Out[12] = 3.1415926536,
que nos proporciona un valor del nmero con diez cifras decimales.
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:
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.
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 .
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.
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.
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:
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
Entonces si tecleamos
In[22] := f [1]
Out[22] := 3.18975.
In[23] := Clear[f, x]
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[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
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 2 Demostrar que las funciones siguientes satisfacen la ecuacin diferencial que aparece a
su lado.
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
y 0 = f (x, y)
En primer lugar, hemos de aprender a escribir ecuaciones diferenciales de manera que Mathema-
tica las entienda. Esto se hace siguiendo la siguiente forma
Para calcular todas las soluciones de dicha ecuacin diferencial tenemos la sentencia
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
75
Ecuaciones diferenciales con Mathematica
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.
76
Ecuaciones diferenciales con Mathematica
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.
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
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):
80
Captulo 6
Programacin en Mathematica
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
In[1] := 10 < 8
Out[1] = False
indicando que las dos sentencias son verdaderas. Si ponemos una verdadera y una falsa y escribimos
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.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
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 ].
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
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 , ...],
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)
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
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
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
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
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
que habr que cumplimentar y aceptar para que desaparezca. Una vez introducido el valor, por
ejemplo 22, y aceptado, aparecer en pantalla lo siguiente:
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
90
Programacin en Mathematica
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
como su alternativa
El comando ListPlot tiene la opcin de unir dos puntos consecutivos con una recta. Tendra la
sintaxis
ListPlot[Y, PlotJoined > True]
91
Programacin en Mathematica
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
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
<< GraphicsMultipleListPlot
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
A.1 Introduccin
Una ecuacin en diferencias es una expresin de la forma
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
95
Ecuaciones en diferencias
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)
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,
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.
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
Z[](z) = 1
X
1 1 z
Z[1](z) = n
= 1 = ,
n=0
z 1 z
z1
98
Ecuaciones en diferencias
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
Dmostracin. Calculamos
X
an xn X
xn
k
Z[a xk ](z) = = = Z[xk ](z/a).
n=0
zn n=0
(z/a)n
X
2n 1 z
k
Z[2 ](z) = = 2 = .
n=0
zn 1 z
z2
99
Ecuaciones en diferencias
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| > 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
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.
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
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
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
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.
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,
xn+1 = xn + yn ,
yn+1 = xn yn ,
106
Bibliografa
[AbBr] M.L. Abell y J.P. Braselton, Dierential Equations with Mathematica, Ed. AP Proessional.
[Wol] Stephen Wolfram, The Mathematica Book, Wolfram Media, Cambridge University Press.
107