Anda di halaman 1dari 176

Apunte para la asignatura Matematica D

Departamento de Matematica
Facultad de Ingeniera Qumica
Universidad Nacional del Litoral

19 de septiembre de 2016
Captulo 1

Errores y representacion de numeros

1.1. Error absoluto y relativo


Definicion 1. Supongamos que p es una aproximacion del numero p. El error absoluto
es
Ep = |p p|
y el error relativo es
|p p|
Rp = , si p 6= 0.
|p|
Observacion 2. Vale la pena observar lo siguiente:

Los errores se miden siempre en valor absoluto.

El error absoluto mide la distancia entre el valor exacto p y su aproximacion p.

El error relativo mira el error como una proporcion del valor exacto. En otras
palabras, es como si tuviera en cuenta las unidades de medida

Veamos algunos ejemplos:


|pp|
p p Ep = |p p| Rp = |p|
1 0.99 0.01 0.01 (1 %)
100 99.99 0.01 0.0001 (0.01 %)
3(= 1.7320508 . . . ) 1.732 0.0000508 . . . 2.93 105 (0.003 %)
1 106 1.1 106 0.1 106 0.1 (10 %)
1 1030 1.1 1030 0.1 1030 0.1 (10 %)
125 106 150 106 25 106 0.2 (20 %)

En general, los metodos numericos permiten hallar una aproximacion p de una solucion
exacta p y proporcionan una estimacion para el error absoluto Ep .
Consideremos el caso en que sabemos que el error absoluto Ep es menor o igual a 0.02.
Entonces

|p p| = Ep 0.02 = 0.02 p p 0.02 = p 0.02 p p + 0.02

2
Es decir, una aproximacion p y una cota para el error absoluto nos permiten establecer
un intervalo donde esta el valor exacto p.
Para el razonamiento que sigue usaremos las siguientes propiedades del valor absoluto:

|x + y| |x| + |y|, |x y| |x| + |y|, |x| |y| |x y|, |y| |x| |x y|.

Si conocemos p y una estimacion Ep ep (es decir, conocemos ep ), intentamos hallar


una estimacion para el error relativo Rp . Observemos que

1 1
|p| |p| |p p| = Ep ep = |p| |p| ep = ,
|p| |p| ep

y luego
|p p| ep
Rp = .
|p| |p| ep
ep
Cuando ep es muy pequeno en relacion a |p| (un 10 % o menos), entonces es muy
|p| ep
ep
aproximado a .
|p|
Muchos algoritmos como los que veremos mas adelante se detienen cuando se cumple
ep
que es menor a una tolerancia preestablecida para el error relativo.
|p|
En general, un metodo numerico para calcular soluciones de ecuaciones provee suce-
sivas aproximaciones p y estimaciones del error absoluto ep .
Si se desea una aproximacion con un error absoluto menor a una tolerancia tol,
detendremos el procedimiento cuando se cumpla ep < tol.
Si se desea una aproximacion con un error relativo menor a una tolerancia tolr,
ep
detendremos el procedimiento cuando se cumpla < tolr.
|p|

1.2. Errores de redondeo


Para comprender los alcances de los errores de redondeo, veamos algunos ejemplos en
MATLAB/OCTAVE:

>> sqrt(6)
ans =
2.4495
>> 2.4495^2
ans =
6.0001

Que ocurrio? Ocurre que 2.4495 no es igual a 6 sino solo una aproximacion. Es im-
portante notar que aunque MATLAB muestra que la respuesta a sqrt(6) es 2.4495, en
realidad calculo la raz de 6 con 16 dgitos exactos. Veamos:

>> sqrt(6)
ans =

3
2.4495
>> ans^2
ans =
6.0000

Para evitar escribir todo el numero o copiar y pegar, usamos la variable ans que almacena
el ultimo resultado calculado (que no es asignado a otra variable) con todos los dgitos
calculados. Por eso parece que el calculo es exacto. Sin embargo los cuatro ceros en 6.0000
indican que el resultado no es exactamente 6. Veamos el error:

>> abs(ans-6)
ans =
8.8818e-16

Para ver mas dgitos, usamos format long:

>> format long


>> sqrt(6)
ans =
2.449489742783178
>> ans^2
ans =
5.999999999999999

Aqu se ven todos los dgitos que MATLAB calculo de 6. Nuevamente, para evitar
escribir todo el numero o copiar y pegar, usamos la variable ans que almacena el ultimo
resultado calculado (que no es asignado a otra variable).
Ahora bien, cual es el error entre el ultimo numero calculado y 6? Veamos

>> abs(6-ans)
ans =
8.881784197001252e-16

El error es aproximadamente 8.88 1016 .


Las versiones actuales de MATLAB/OCTAVE almacenan de cada numero 53 dgitos
binarios, que corresponden a 16 dgitos decimales.
Veamos otro ejemplo de lo que puede suceder. Estamos todos de acuerdo en que
cualquiera sea x, se cumple que
1 + x 1 = x.
Verifiquemos esto en MATLAB para algunos valores de x:

>> x = 0.25
x =
0.250000000000000
>> 1+x-1
ans =
0.250000000000000

Vamos bien. Veamos otro ejemplo con x = 2 1020 :

4
>> x = 2e-20
x =
2.000000000000000e-20
>> 1+x-1
ans =
0

Eh? Que ocurrio? Sucede que cuando la computadora suma 1 mas 2 1020 la suma
le da 1 porque redondea al numero mas cercano que puede representar con 16 dgitos:

1 + 2 1020 = 1.00000000000000000002 1.000000000000000

Los ultimos numeros, marcados en gris, se pierden al hacer la operacion 1 + x, luego, al


restarle 1 a ese resultado, el resultado final da cero.
En conclusion, cuando sumo cantidades que tienen magnitudes que difieren en mas
de 16 dgitos, se ignora el numero mas pequeno.

Observacion 3 (Notacion cientfica). En MATLAB, para ingresar el numero 1, 23 109


escribimos 1.23e9. No debemos confundirnos y escribir 1.23e^9, ni 1.23*e^9. Verifi-
car en la computadora que ocurre cuando escribimos esto. Tampoco debemos escribir
1.23*exp(9). Esta expresion no da error, pero corresponde a la funcion exponencial de
base natural e = 2.71828 . . . .

1.3. Perdida de cifras significativas o aumento del


error relativo
Consideremos un ejemplo:

x = 22.3829, x = 22.3830593, y = 22.3610, y = 22.3607291.

Veamos los errores absolutos y relativos:

>> x=22.3829
x =
22.382899999999999
>> xs = 22.3830593
xs =
22.383059299999999
>> Ex = abs(x-xs)
Ex =
1.592999999999734e-04
>> Rx = Ex / abs(x)
Rx =
7.117040240539580e-06
>>
>> y = 22.3610
y =

5
22.361000000000001
>> ys = 22.360791
ys =
22.360790999999999
>> Ey = abs(y-ys)
Ey =
2.090000000016801e-04
>> Ry = Ey/abs(y)
Ry =
9.346630293890258e-06

Vemos que los dos errores relativos son del orden de 106 y menores a 105 . Se dice que
x y y tienen 5 cifras significativas correctas. Que ocurre cuando restamos x y y? Veamos

>> resta = x-y


resta =
0.021899999999999
>> restas = xs-ys
restas =
0.022268300000000
>> Eresta = abs(resta-restas)
Eresta =
3.683000000016534e-04
>> Rresta = Eresta/abs(resta)
Rresta =
0.016817351598250

Vemos que el error relativo de la resta es 0.0168 . . . , es decir, de orden 102 .


Pasamos de errores relativos de orden 106 a errores relativos de orden 102 . En
terminos de cifras significativas, pasamos de 5 a 2!!! Este fenomeno se conoce como perdida
de cifras significativas, y ocurre al restar numeros muy cercanos.

Si le interesa leer un poco mas sobre los temas de este captulo, le recomendamos
la seccion 1.3 del libro de John H. Mathews, Kurtis D. Fink, Metodos numericos con
MATLAB, Pearson Educacion, Prentice-Hall, 2000.

6
Captulo 2

Resolucion de ecuaciones no lineales

El objetivo de este captulo es conocer metodos para aproximar soluciones de ecua-


ciones donde la incognita no se puede despejar.
Consideremos el siguiente problema:

Determinar cuanto se sumerge una esfera de madera de densidad = 0.638 g/cm3


de radio r = 10 cm en agua pura. Recordemos que la densidad del agua pura
es 1 g/cm3 .

Para resolver este problema recordemos que el volumen de una esfera de radio r es
4r3 /3, por lo que la masa de la esfera es Me = 4r3 /3. Si una esfera se sumerge d
centmetros, entonces el volumen del lquido desalojado es
Z d
d2 (3r d)
Vd = (r2 (x r)2 ) dx [cm3 ] = [cm3 ].
0 3
Segun el principio de Arqumedes, todo cuerpo que se sumerge en un lquido recibe un
empuje de abajo hacia arriba igual al peso del volumen del lquido desalojado. Luego, la
esfera flotara cuando se sumerja una profundidad d que haga que el peso del volumen
del lquido desalojado sea igual al peso de la esfera. Como la densidad del agua pura es
1 g/cm3 , el peso del volumen del lquido desalojado al sumergirse d centmetros sera

d2 (3r d)
[g]
3
y el peso de la esfera es
4r3 /3 [g].
Luego, la ecuacion que queremos resolver es:

d2 (3r d)
= 4r3 /3
3
que equivale a
4r3 3rd2 + d3 = 0.
Notemos que r y se conocen, y que la incognita es d. Igualmente conviene hacer todo
este razonamiento en abstracto, por si uno quiere resolverlo para otra densidad u otro

7
radio. Para ver si el problema tiene solucion, es decir, si existe d entre 0 y 20(= 2r) tal
que 4r3 3rd2 + d3 = 0 podemos graficar la funcion f (x) = 4r3 3rx2 + x3 sobre
ese intervalo; aqu cambiamos d por x porque estamos acostumbrados a usar x para la
incognita. En MATLAB se hace as:
>> r = 10
r =
10
>> rho = 0.638
rho =
0.6380
>> f = @(x) 4*r^3*rho - 3*r*x.^2 + x.^3
f =
@(x)4*r^3*rho-3*r*x.^2+x.^3
>> x=linspace(0,2*r,101);
>> plot(x,f(x),*-)
>> grid
>> print -dpng esferasehunde

Observacion 4 (sobre MATLAB). Algunos comentarios sobre las lneas de MATLAB que
acabamos de ver:

La lnea f = @(x) 4*r^3*rho - 3*r*x.^2 + x.^3


define una funcion de la variable x, usando los valores de r y rho definidos en las lneas
anteriores.

La lnea x=linspace(0,2*r,101); genera una lista de 101 numeros uniformemente dis-


tribuidos entre 0 y 2r = 20 es decir, x = [0 0.2 0.4 0.6 ... 19.6 19.8 20]

La lnea plot(x,f(x),*-)
genera el grafico que se ve a la derecha. Para ello, se arma una tabla de valores con los x
ya calculados y con los valores de f (x). Para ello, en la definicion de f (x) es importante
que aparezca x.^2 y x.^3, de manera que MATLAB eleve al cuadrado y al cubo cada
componente de x. La opcion *- indica que por cada punto de la tabla de valores se
debe dibujar un * y que los mismos deben ser unidos por una lnea -.

La lnea grid indica que debe hacerse un cuadriculado a la grafica.

Finalmente la lnea print -dpng esferaseunde (opcional) sirve para generar el fichero
grafico esferaseunde.png que puede ser insertado en un documento de Word, OpenOf-
fice, LaTeX, Powerpoint, etc. Nosotros la usamos para generar el grafico que fue incluido
en este apunte.

Vemos en el grafico que la grafica corta el eje de las x en un punto cercano a x = 12.
Por lo tanto, d = 12 cm es una primera aproximacion a la solucion del problema.
El objetivo de este captulo es aprender sobre metodos iterativos para resolver ecua-
ciones donde no se pueda despejar la incognita. En general, estos metodos parten de una
aproximacion inicial p0 y construyen una sucesion p1 , p2 , . . . de aproximaciones cada vez
mas precisas de la solucion exacta p.

8
2.1. Metodos de punto fijo
El primer metodo que veremos es el metodo en que hay una formula, representada
por una funcion g que, dada una aproximacion pn nos dice como calcular pn+1 . Es decir,
si comenzamos con una primera aproximacion p0 ,

p1 = g(p0 )
p2 = g(p1 )
p3 = g(p2 )
p4 = g(p3 )
..
.
pn = g(pn1 )
pn+1 = g(pn )
..
.

Consideremos algunos ejemplos para ir ganando intuicion

Ejemplo 5. Sea g(x) = 1.2 x y p0 = 1. Luego

p1 = g(p0 ) = 1.2 p0 = 1.2 1 = 1.2


p2 = g(p1 ) = 1.2 p1 = 1.2 1.2 = 1.44
p3 = g(p2 ) = 1.2 p2 = 1.2 1.44 = 1.728
p4 = g(p3 ) = 1.2 1.728 = 2.0736
..
.
pn = g(pn1 ) = 1.2n
pn+1 = g(pn ) = 1.2l 1.2 = 1.2n+1
..
.

En este ejemplo vemos claramente que pn = 1.2n + cuando n .

Ejemplo 6. Sea g(x) = 0.8 x y p0 = 33. En este caso

pn = 33(0.8)n 0, cuando n .

9
Ejemplo 7. Consideremos g(x) = cos(x) y p0 = 1, hagamos este ejemplo en MATLAB:
>> p=1 .
p = .
1 .
>> p = cos(p) >> p = cos(p)
p = p =
0.5403 0.7393
>> p = cos(p) >> p = cos(p)
p = p =
0.8576 0.7389
>> p = cos(p) >> p = cos(p)
p = p =
0.6543 0.7392
>> p = cos(p) >> p = cos(p)
p = p =
0.7935 0.7390
>> p = cos(p) >> p = cos(p)
p = p =
0.7014 0.7391
. >> p = cos(p)
. p =
. 0.7391

Vemos que la iteracion converge a p = 0.7391 (si miramos 4 dgitos despues de la


coma).

Nos preguntamos entonces, a que converge una iteracion de la forma pn+1 = g(pn )?
Observemos nuevamente lo que quiere decir iteracion de la forma pn+1 = g(pn ):

p1 = g(p0 )
p2 = g(p1 )
..
.
pn = g(pn1 )
pn+1 = g(pn )

p = g(p)

Vemos que si pn p entonces lo que esta a la izquierda del signo igual converge a p.
Ahora bien, si g es una funcion continua y pn p, entonces g(pn ) g(p). Es decir, lo
que esta a la derecha del signo igual, converge a g(p).
Por lo tanto, si la iteracion de punto fijo pn+1 = g(pn ) genera una sucesion convergente
a p, resulta que
p = g(p).

De aqu surge la siguiente definicion.

10
Definicion 8 (Punto fijo). Un pun-
to fijo de una funcion g es un nume-
ro p tal que p = g(p). Geometrica-
mente, p es un punto fijo si es la
abscisa (y tambien la ordenada) de
un punto interseccion entre la grafi-
ca de y = x y la de y = g(x).

Lo que razonamos antes de esta definicion es la demostracion del siguiente teorema:

Teorema 9. Supongamos que g es una funcion continua y {pn } n=0 es una sucesion
generada por la iteracion de punto fijo (es decir pn+1 = g(pn )). Si pn p cuando n ,
entonces p es un punto fijo de g, es decir p = g(p).

Ahora nos preguntamos: Que hace falta para poder asegurar que g tiene un punto
fijo en un intervalo [a, b]? El teorema siguiente da una respuesta a esta pregunta.

Teorema 10. Sea g : [a, b] R una funcion continua.

(i) Si g(a) a y g(b) b, entonces g tiene un punto fijo en [a, b].

(ii) Si g(a) a y g(b) b, entonces g tiene un punto fijo en [a, b].

Demostracion. Definimos f (x) = g(x) x. Como g es continua, f tambien es continua.


Veamos la demostracion de (i), la de (ii) es analoga.
Como g(a) a tenemos que f (a) 0.
Como g(b) b tenemos que f (b) 0.
Luego, por el teorema del valor intermedio para funciones continuas, resulta que existe
p [a, b] tal que f (p) = 0, es decir, g(p) p = 0, o lo que es lo mismo, g(p) = p. Es decir,
p es un punto fijo de g en [a, b].

Observacion 11. El Teorema 9 nos dice que el metodo de punto fijo con una funcion g
converge a un p tal que p = g(p). Por lo tanto, si queremos resolver una ecuacion por el
metodo de punto fijo, debemos transformarla en una ecuacion de la forma x = g(x). Por
ejemplo, si queremos resolver

x4 + x sen(x) + log(1 + x2 ) = 8

debemos despejar un x. Hay muchas maneras de hacerlo. Una posible es la siguiente:

x = 8 x4 + sen(x) log(1 + x2 ).

11
Ejemplo 12. Consideremos ahora la funcion g(x) = ex en el intervalo [0, 1]. Tiene un
punto fijo? S, pues g(0) = 1 > 0 y g(1) = e1 0.3679 < 1. Veamos que ocurre al iterar
pn+1 = epn comenzando con p0 = 0.1.
>> p=0.1
p =
0.1000
>> p = exp(-p)
p =
0.9048
>> p = exp(-p)
p =
0.4046
>> p = exp(-p)
p =
0.6672
>> p = exp(-p)
p =
0.5131
>> p = exp(-p)
p =
0.5986
>> p = exp(-p)
p =
0.5496
.
.
.
p =
0.5670
>> p = exp(-p)
p =
0.5673
>> p = exp(-p)
p =
0.5671
>> p = exp(-p)
p =
0.5672
>> p = exp(-p)
p =
0.5671
>> p = exp(-p)
p =
0.5672
>> p = exp(-p)
p =
0.5671
>> p = exp(-p)
p =
0.5671

12
La iteracion converge a p = 0.5671 que cumple p = ep .

Ejemplo 13. Consideremos la funcion g(t) = t5 + t2 t3 1 en el intervalo [0, 2]. Tiene


un punto fijo en ese intervalo? S, pues g(0) = 1 < 0 y g(2) = 27 > 2. Veamos que
ocurre al iterar pn+1 = epn comenzando con p0 = 1 y con p0 = 0.5.
>> p=1 >> p=.5
p = p =
1 0.5000
>> p=g(p) >> p=g(p)
p = p =
0 -0.8438
>> p=g(p) >> p=g(p)
p = p =
-1 -0.1150
>> p=g(p) >> p=g(p)
p = p =
0 -0.9853
>> p=g(p) >> p=g(p)
p = p =
-1 -0.0013
>> p=g(p) >> p=g(p)
p = p =
0 -1.0000
>> p=g(p) >> p=g(p)
p = p =
-1 -1.5866e-11
>> p=g(p) >> p=g(p)
p = p =
0 -1
>> p=g(p) >> p=g(p)
p = p =
-1 0
>> p=g(p) >> p=g(p)
p = p =
0 -1
>> p=g(p) >> p=g(p)
p = p =
-1 0
Vemos que en este ejemplo no converge.

Observacion 14 (Conclusion importante). La iteracion de punto fijo no siempre con-


verge, aunque haya un punto fijo. El teorema que vimos dice que si la iteracion converge
entonces lo hace a un punto fijo.

Nos preguntamos ahora, en que casos podemos asegurar que la iteracion de punto
fijo converge?
Analicemos los siguientes casos graficamente:

13
14
15
En base a estos ejemplos vemos que la convergencia tiene que ver con el valor de la
derivada de g cerca del punto fijo. El resultado que vale es el siguiente:
Teorema 15 (Teorema del punto fijo). Si g es C 1 en un entorno [p , p + ] de un
punto fijo p de g y

|g 0 (x)| K < 1, para todo x [p , p + ].

Entonces, comenzando con p0 [p , p + ], la iteracion de punto fijo pn+1 = g(pn )


genera una sucesion {pn } que tiende a p.
Para demostrar este teorema, utilizaremos el teorema del valor medio:
Teorema 16 (Valor medio). Si g es continua en [a, b] y derivable en (a, b), entonces
existe z (a, b) tal que
g(b) g(a)
g 0 (z) = .
ba
Geometricamente, existe un punto z en el intervalo (a, b) tal que la pendiente de la recta
tangente en (z, g(z)) es la misma que la de la recta secante que pasa por (a, g(a)) y
(b, g(b)).
Demostracion del Teorema 15. Si p0 [p , p + ], entonces |p p0 | . Ahora bien,
por el teorema del valor medio, existe z1 entre p y p0 tal que

p p1 = g(p) g(p0 ) = g 0 (z1 )(p p0 ),

luego
|p p1 | = |g(p) g(p0 )| = |g 0 (z1 )| |p p0 | K|p p0 | K,
y por lo tanto p1 [p , p + ]. De la misma manera, p2 , p3 , [p , p + ].
Ademas, por ese razonamiento, vemos que

|p p1 | K|p p0 |,

y de la misma manera

|p p2 | K|p p1 |
|p p3 | K|p p2 |
|p p4 | K|p p3 |
..
.
|p pn | K|p pn1 |
|p pn+1 | K|p pn |
..
.

Juntando estas estimaciones obtenemos

|p p2 | K|p p1 | K K|p p0 | = K 2 |p p0 |
|p p3 | K|p p2 | K K 2 |p p0 | = K 3 |p p0 |
|p p4 | K|p p3 | K K 3 |p p0 | = K 4 |p p0 |

16
y en general
|p pn | K n |p p0 |
Como 0 K < 1, resulta que K n 0 cuando n y entonces |p pn | 0.
En los libros de calculo numerico suele aparecer esta otra version del teorema del
punto fijo.

Teorema 17 (Punto fijo, otra version). Sea g una funcion C 1 en un intervalo [a, b] que
cumple
g(x) [a, b], para todo x [a, b].
Si existe K < 1 tal que |g 0 (x)| K para todo x [a, b], entonces:

Existe un unico punto fijo p en ese intervalo.

Comenzando a partir de cualquier p0 [a, b], la iteracion de punto fijo pn+1 = g(pn )
converge p y mas aun,
|p pn | K n |p p0 |. (2.1)

Observacion 18. La demostracion es similar a la del teorema anterior, y por ello no


la escribimos aqu. Vale la pena destacar que la acotacion (2.1) sirve para entender la
velocidad de convergencia del metodo e incluso determinar cuantas iteraciones hacen falta
para tener un error absoluto menor que cierta tolerancia.
Observemos que en general p se desconoce, y solo se sabe que esta en el intervalo [a, b].
Por otro lado, p0 s se conoce, pues es un numero inicial que nosotros proponemos. Como
ambos estan en [a, b] concluimos que

|p p0 | |b a|.

De esta manera, la acotacion (2.1) resulta

|p pn | K n |b a|.

Conociendo |b a| y K, podemos determinar el valor de n para el que se podra garantizar


que |p pn | < . Se deja como ejercicio para el lector identificar que debe cumplir n en
algunos ejemplos. Al momento de realizar esos ejercicios, tenga en cuenta que 0 < K < 1
y luego log(K) < 0.

Observacion 19 (Criterio de parada). Aunque la observacion anterior permite calcular


cuantas iteraciones haran falta para lograr un cierto error absoluto, lo usual es detener
las iteraciones de otra manera. Observemos lo siguiente:

p pn = p pn+1 + pn+1 pn
= g(p) g(pn ) + pn+1 pn
= g 0 (zn ) p pn + pn+1 pn


para algun numero zn entre p y pn . Luego

p pn g 0 (zn ) p pn = pn+1 pn .


17
Es decir
1 g 0 (zn ) p pn = pn+1 pn ,
 

que implica
 1 
p pn = 0
pn+1 pn .
1 g (zn )
= g(p) g(pn ) = g 0 (zn ) p pn resulta

Como p pn+1

g 0 (zn )  g 0 (p) 
p pn+1 = p n+1 p n p n+1 p n ,
1 g 0 (zn ) 1 g 0 (p)
0
0
g (p)
Si |g (p)| 1/2 resulta
1 y luego
1 g 0 (p)

|p pn+1 | |pn+1 pn |. (2.2)

En base a esta observacion, si se quiere calcular una aproximacion de p con un error


absoluto menor a tol, se detienen las iteraciones del metodo de punto fijo cuando

|pn+1 pn | < tol.

A continuacion mostramos una implementacion del metodo de punto fijo para resolver
la ecuacion
cos x
x= .
2
Es importante notar que no se almacenan todas las iteraciones sino las ultimas dos.
La ultima en la variable p y la anterior a la ultima en p0. El algoritmo se detiene entonces
cuando abs(p-p0) tol . Para asegurarnos que esto ocurra, lo que esta dentro del
bloque while se ejecuta mientras abs(p-p0) > tol .
El control por el numero maximo de iteraciones se realiza porque puede ocurrir que
estemos ante un caso en que el metodo de punto fijo no converge, y entonces hacemos
que finalice cuando se supera este numero.
Al finalizar el bloque while, hay un bloque if. Este bloque pregunta: si abs(p-p0) > tol,
eso quiere decir que el while termino porque se alcanzo el numero maximo de iteraciones.
En ese caso se informa Se alcanzo el nro maximo de iteraciones. En caso contrario
(else) quiere decir que el bloque while finalizo porque se alcanzo la tolerancia desea-
da, es decir no se cumple mas que abs(p-p0) > tol, luego abs(p-p0) tol , que
equivale a |pn+1 pn | tol.

puntofijo.m. No copie y pegue el codigo. Bajelo haciendo clic aqu


% % puntofijo.m
% Script para resolver una ecuacion de la forma
% x = g(x)
% por el metodo de punto fijo

% % Datos del problema


% funcion g
g = @(x) cos(x)/2; % cambiar para resolver otra ecuacion <--

18
% iteracion inicial
p0 = 1; % elegir bien el p0 inicial <--

% % Datos para el metodo


tol = 1e-6; % tolerancia para el error absoluto
maxiter = 1000; % numero maximo de iteraciones.
% para que se detenga igual si el metodo no converge

% % Comienza la resolucion
%p almacena la ultima iteracion
% p0 la anterior
p = g(p0);
contador = 1;
while ((abs(p-p0) > tol) && (contador < maxiter))
p0 = p;
p = g(p0);
contador = contador + 1;
end

if (abs(p-p0) > tol)


disp(Se alcanzo el nro maximo de iteraciones)
else
disp(La solucion esta almacenada en la variable p)
p
end

2.2. El metodo de biseccion


En esta seccion veremos el metodo de biseccion, que se utiliza para resolver ecuaciones
de una incognita. Toda ecuacion de una incognita puede escribirse como

f (x) = 0. (2.3)

Si p es un numero tal que f (p) = 0 se dice que p es un cero de f o que p es una raz de
la ecuacion (2.3).
Antes de ver el metodo, recordamos el teorema del valor intermedio, que es la base
que da la idea al metodo de biseccion.

Teorema 20 (del valor intermedio). Si f : [a, b] R es una funcion continua y d es un


numero que esta entre f (a) y f (b) entonces existe un punto c en el intervalo [a, b] tal que
f (c) = d.

Un corolario inmediato de este teorema es el siguiente

Corolario 21. Si f : [a, b] R es una funcion continua y f (a) y f (b) tienen signo
opuesto (f (a) f (b) < 0), entonces existe p [a, b] tal que f (p) = 0.

19
La idea del metodo de biseccion es comenzar con un intervalo [a, b] tal que f (a) y f (b)
tienen signo opuesto, es decir, tenemos localizada una raz en el intervalo [a, b]. Luego,
ir reduciendo sistematicamente la longitud del intervalo donde estamos seguros que hay
una raz, hasta que tengamos una tolerancia aceptable, es decir, un intervalo tan pequeno
donde se encuentra la raz que es satisfactorio para el problema en cuestion. La manera
de subdividir el intervalo consiste en tomar el punto medio del intervalo
a+b
m= ,
2
y luego analizar las tres posibilidades que pueden darse
(1) Si f (a) y f (m) tienen signos opuestos, entonces hay un cero en [a, m].

(2) Si f (m) y f (b) tienen signos opuestos, entonces hay un cero en [m, b].

(3) Si f (m) = 0, entonces m es la solucion buscada.


Si ocurre el caso (3), hemos encontrado la raz (debemos aclarar que esto no se da
casi nunca, pero puede ocurrir). Si ocurre el caso (1) o el caso (2), entonces hemos
encontrado un intervalo cuyo ancho es la mitad que el original y contiene una raz. Para
continuar el proceso, renombramos el nuevo intervalo mas pequeno como [a, b] y repetimos
el procedimiento hasta que el intervalo sea tan pequeno como deseamos. Puesto que el
proceso de biseccion genera una sucesion de intervalos encajados, con sus correspondientes
puntos medios, usaremos la siguiente notacion para tener un registro de los detalles del
proceso:
Metodo de Biseccion
a0 + b 0
[a0 , b0 ] es el intervalo de partida y m0 = es su punto medio.
2
[a1 , b1 ] es el segundo intervalo (coincide con [a0 , m0 ] o con [m0 , b0 ]) y m1 es
su punto medio. El intervalo [a1 , b1 ] es la mitad de ancho que [a0 , b0 ].

Despues de llegar al intervalo [an , bn ], en el que tambien se localiza un cero,


y cuyo punto medio es mn , se construye el intervalo [an+1 , bn+1 ], en el que
tambien hay un cero y mide la mitad de [an , bn ].
A partir de este procedimiento resulta que

a0 a1 an b n b 1 b 0 .

Y ademas, hay una raz p que satisface an p bn .


Es importante que nos detengamos un momento a pensar como se define el intervalo
[an+1 , bn+1 ] a partir del [an , bn ]:
an + b n
Definimos mn = .
2
Si f (mn ) = 0. Entonces m es la solucion. FIN.

Si f (an ) f (mn ) < 0 (entonces hay una raz en el intervalo [an , mn ])

20
Definimos [an+1 , bn+1 ] = [an , mn ] (o an+1 = an y bn+1 = mn )

Si no, (entonces ocurre que f (mn ) f (bn ) < 0)

Definimos [an+1 , bn+1 ] = [mn , bn ] (o an+1 = mn y bn+1 = bn )

Observamos que con este procedimiento, en cada paso, la longitud del intervalo se
reduce a la mitad, es decir
|bn an |
|bn+1 an+1 | = .
2
Por lo tanto, despues de n pasos, la longitud del intervalo es
 n
|b0 a0 | 1
|bn an | = = |b0 a0 |.
2n 2

Como mn esta en el centro del intervalo [an , bn ] resulta que la distancia a la raz p es
menor o igual a la mitad de la longitud del intervalo [an , bn ], es decir
 n+1
|bn an | 1
|p mn | = |b0 a0 |.
2 2

Resumimos todo lo analizado hasta ahora en el siguiente teorema.

Teorema 22 (Convergencia del metodo de biseccion). Supongamos que f : [a, b] R


es continua y que f (a) y f (b) tienen signos distintos. Sea {mn }n0 la sucesion de puntos
medios de los intervalos generados por el metodo de biseccion. Entonces existe una raz
p de la ecuacion f (x) = 0 (es decir, f (p) = 0) en [a, b] tal que mn p, cuando n
y ademas  n+1
1
|p mn | |b a|, n = 0, 1, 2, . . . .
2
Finalizamos esta seccion mostrando una implementacion en MATLAB del metodo de
biseccion, para resolver la ecuacion

x sen(x) = 1

en el intervalo [0, 2]. Comenzamos re-escribiendo la ecuacion como

x sen(x) 1 = 0,

es decir, f (x) = x sen(x) 1. Notamos que f (0) = 1 < 0 y f (2) = 2 sin(2) 1


0.81859 > 0. Hicimos esto en OCTAVE con las siguientes lneas:

>> f = @(x) x*sin(x)-1


f =
@(x) x * sin (x) - 1
>> f(0)
ans = -1
>> f(2)
ans = 0.81859

21
Por lo tanto, hay una solucion en el intervalo [0, 2] a la que convergera el metodo de
biseccion.

biseccion.m. No copie y pegue el codigo. Bajelo haciendo clic aqu


% % biseccion.m
% Resuelve la ecuacion f(x)=0
% por el metodo de biseccion.
% f(a)f(b) debe ser <0.
% Se resuelve hasta la tolerancia tol.

% % Datos del problema


f = @(x) x*sin(x)-1;
a = 0;
b = 2;
tol = 1e-12;
maxiter = 1000;

if (f(a)*f(b) > 0)
disp(f(a) y f(b) tienen el mismo signo!!!!!!)
return
end

% % Resolucion
contador = 1;
I = abs(b-a)/2;
m = (a+b)/2;
while ( (I > tol) && (contador < maxiter) )
if ( f(m) == 0 ) % el doble = es para "preguntar"
break; % sale del while de una
end
if ( f(a)*f(m) < 0 )
b = m; % a queda igual a a
else % f(b)*f(m) < 0 (no queda otra)
a = m; % b queda igual a b
end
m = (a+b)/2;
contador = contador + 1;
I = I/2;
end

if (contador == maxiter)
disp(Se alcanzo el nro maximo de iteraciones)
else
disp(La solucion esta almacenada en la variable m)
m
end

22
El codigo del metodo de biseccion presentado es lo que se conoce en MATLAB como un
script. Es muy util programar algunas resoluciones como scripts, pero conviene programar
algunas como functions (funciones). Cuando programemos un metodo de resolucion de
algun problema, que puede ser utilizado para muchos otros problemas, lo haremos usando
funciones. Estas permiten la re-utilizacion sin necesidad de cambiar nombres de variables,
y las variables que se usan dentro de las funciones no afectan a las ya existentes.
A continuacion mostramos como se modifica el codigo anterior para transformarlo en
una function.

Funcion bisec.m. No copie y pegue el codigo. Bajelo haciendo clic aqu


function m = bisec(f, a, b, tol, maxiter)
% function m = bisec(f, a, b, tol, maxiter)
%
% Resuelve la ecuacion f(x)=0
% por el metodo de biseccion.
% f(a)f(b) debe ser <0.
% Se resuelve hasta la tolerancia tol.
% con un maximo nro de iteraciones dado por maxiter

if (f(a)*f(b) > 0)
disp(f(a) y f(b) tienen el mismo signo!!!!!!)
return
end
% % Resolucion
contador = 1;
I = abs(b-a)/2;
m = (a+b)/2;
while ( (I > tol) && (contador < maxiter) )
if ( f(m) == 0 ) % el doble = es para "preguntar"
break; % sale del while de una
end
if ( f(a)*f(m) < 0 )
b = m; % a queda igual a a
else % f(b)*f(m) < 0 (no queda otra)
a = m; % b queda igual a b
end
m = (a+b)/2;
contador = contador + 1;
I = I/2;
end

if (contador == maxiter)
disp(Se alcanzo el nro maximo de iteraciones)
end

Vale la pena hacer algunas aclaraciones.

23
La primera lnea dice:

function m = bisec(f, a, b, tol, maxiter)

Esto quiere decir que la funcion bisec recibe cinco argumentos de entrada: f, a, b,
tol, maxiter.
Para usar la funcion bisec podemos hacer lo siguiente:

>> h = @(x) cos(x) - x;


>> bisec(h, 0, 1, 1e-8, 100)
ans = 0.73909

En la primera lnea hemos definido la funcion h(x) = cos(x) x. En la segunda


lnea llamamos a la funcion bisec y le decimos cuales son los cinco argumentos. El
OCTAVE los lee en orden, as, dentro de la funcion bisec, OCTAVE interpretara
lo siguiente:

f = h = @(x) cos(x) - x
a = 0
b = 1
tol = 1e-8
maxiter = 100

El resultado es guardado en la variable ans.


Otra forma de resolver el mismo problema, almacenando el resultado en la variable
x es:

>> x = bisec( @(x) cos(x)-x , 0, 1, 1e-8, 100)


x = 0.73909
>> format long
>> x
x = 0.739085130393505

Notemos que en lugar de definir una funcion h, directamente escribimos la funcion


en el lugar del primer argumento.
La ultima observacion que hacemos es la siguiente: el resultado que la funcion bisec
devuelve a ans o a x en el ultimo caso, es lo que esta en m. Esto es as, porque en
la primera lnea dice function m = bisec(...).

Otra observacion importante, las primeras lneas que tienen % constituyen el help
de la funcion, hasta la primera lnea en blanco. As, ocurre lo siguiente:

24
>> help bisec
bisec is a function from the file /home/pmorin/Dropbox/0-Matematica-D/codigos/b

function m = bisec(f, a, b, tol, maxiter)

Resuelve la ecuacion f(x)=0


por el metodo de biseccion.
f(a)f(b) debe ser <0.
Se resuelve hasta la tolerancia tol.
con un maximo nro de iteraciones dado por maxiter

Additional help ...

Una diferencia importante entre las funciones y los scripts es que en las funciones
las variables son locales. Esto quiere decir que no interfieren con las variables que
tengamos definidas. Por ejemplo, observemos lo que ocurre con las siguientes lneas:

>> f = [1 2 3];
>> I = 80;
>> x = bisec( @(x) cos(x)-x , 0, 1, 1e-8, 100)
x = 0.739085130393505
>> f
f =
1 2 3
>> I
I = 80
>> > m
error: m undefined near line 1 column 1

Observamos que aunque dentro de la funcion bisec la variable f y la variable I


toman otros valores, estos no afectan a nuestras variables f e I. Mas aun, la variable
m toma el valor 0.739085130393505 dentro de la funcion bisec (al finalizar), pero
ese valor se olvida al finalizar la ejecucion de bisec; aunque se pasa a ans o a x en
este caso.

Volvamos ahora al ejemplo de la esfera que se hunde. Una manera de resolver el


problema es mediante un script que a su vez llama a la funcion bisec.

Script esferasehunde.m.
format compact
r = 10;
rho = 0.638;
f = @(d) 4*r^3*rho - d.^2*3*r + d.^3;
x = linspace(0,2*r,100);
y = f(x);
plot(x,y,*-)
grid

25
% resolvemos
p = bisec(f,0,2*r,1e-8,1000);

fprintf(La esfera de radio %g cm y densidad %g g/cm3 \n, r, rho);


fprintf(se hunde %g cm \n, p);

Notemos que la funcion f se define en terminos de d en lugar de x, pues as lo hici-


mos cuando estudiamos el ejemplo al principio del captulo. Esto no es un problema, lo
importante es que f es una funcion escalar, que dado un numero devuelve otro numero,
y que f(0)*f(2*r) es negativo (para que funcione el metodo de biseccion).

2.3. El metodo de Newton o Newton-Raphson


En esta seccion aprenderemos otro metodo para hallar races de ecuaciones de la forma

f (x) = 0.

Es el metodo de Newton-Raphson, tambien conocido como metodo de Newton.


La idea del metodo de Newton es la siguiente. Si tenemos una aproximacion p0 de la
solucion p, consideramos la recta tangente a la grafica de y = f (x) en el punto (p0 , f (p0 ))
(ver grafico). Luego, definimos p1 como la abscisa del punto interseccion entre esa recta
tangente y el eje x (ver grafico).

26
Para hallar la formula de p1 en terminos de p0 observamos lo siguiente:
La recta tangente a la grafica de y = f (x) en el punto (p0 , f (p0 )) tiene pendiente
m = f 0 (p0 ). Como la recta pasa por los puntos (p0 , f (p0 )) y (p1 , 0) resulta que

0 f (p0 )
= m = f 0 (p0 ).
p1 p0
Despejando p1 obtenemos
f (p0 )
p1 = p0 .
f 0 (p0 )
Ahora podemos repetir este procedimiento, y obtener p2 a partir de p1 , la formula resulta
f (p1 )
p2 = p1 .
f 0 (p1 )
En general,
f (pn )
pn+1 = pn .
f 0 (pn )
Observacion 23. El metodo de Newton es un metodo de punto fijo, con funcion de
iteracion dada por
f (x)
g(x) = x 0 .
f (x)
Notar que x = g(x) si y solo si f (x) = 0 (siempre que f 0 (x) 6= 0). En otras palabras, x es
solucion de la ecuacion original f (x) = 0 si y solo si x es un punto fijo de g.
Para comprender como funciona el metodo de Newton, analicemos g 0 (x):

f 0 (x)f 0 (x) f (x)f 00 (x)


g 0 (x) = 1
[f 0 (x)]2
f 0 (x)f 0 (x) f (x)f 00 (x)
=1 +
[f 0 (x)]2 [f 0 (x)]2
f (x)f 00 (x)
= .
[f 0 (x)]2

Notemos que si x = p es una solucion de la ecuacion, es decir f (p) = 0, entonces resulta

|f (p)| |f 00 (p)| 0 |f 00 (p)|


|g 0 (p)| = = = 0.
|f 0 (p)|2 |f 0 (p)|2

Luego, si g 0 es una funcion continua, resulta que existe > 0 tal que |g 0 (x)| < 1/2 en
[p , p + ].
Para que g 0 sea continua es suficiente que f sea C 2 y que f 0 no se anule en una
vecindad de x = p.
Recordando el Teorema 15 hemos deducido que
Teorema 24. [Convergencia del metodo de Newton] Sea p un cero de la funcion f , es
decir
f (p) = 0.

27
Si f es C 2 en una vecindad de p, f 0 (p) 6= 0 y p0 esta suficientemente cerca de p, entonces
la iteracion de Newton
f (pn )
pn+1 = pn , n = 0, 1, 2, . . .
f 0 (pn )
converge a p.
Observacion 25. El metodo de Newton es un metodo de punto fijo que siempre funciona
(si comenzamos suficientemente cerca). Nos da una manera de construir o elegir la funcion
de iteracion g para que siempre resulte convergente.
Veamos un ejemplo, volvamos a resolver la ecuacion

x = cos(x).

Resolvamosla primero con el metodo de punto fijo pn+1 = cos(pn ). Para ir contando
iteraciones lo hacemos de esta manera:
>> p = 1, cont = 0, .
p = 1 .
cont = 0 .
>> p = cos(p), cont = cont + 1 >> p = cos(p), cont = cont + 1
p = 0.54030 p = 0.73908
cont = 1 cont = 31
>> p = cos(p), cont = cont + 1 >> p = cos(p), cont = cont + 1
p = 0.85755 p = 0.73909
cont = 2 cont = 32
>> p = cos(p), cont = cont + 1 >> p = cos(p), cont = cont + 1
p = 0.65429 p = 0.73908
cont = 3 cont = 33
>> p = cos(p), cont = cont + 1 >> p = cos(p), cont = cont + 1
p = 0.79348 p = 0.73909
cont = 4 cont = 34
>> p = cos(p), cont = cont + 1 >> p = cos(p), cont = cont + 1
p = 0.70137 p = 0.73908
cont = 5 cont = 35
>> p = cos(p), cont = cont + 1 >> p = cos(p), cont = cont + 1
p = 0.76396 p = 0.73909
cont = 6 cont = 36
. >> p = cos(p), cont = cont + 1
. p = 0.73909
. cont = 37
El metodo de punto fijo necesito 37 iteraciones para que la diferencia entre dos ite-
randos consecutivos fuera menor a 105 .
Veamos ahora que ocurre si usamos el metodo de Newton. Escribimos primero la
ecuacion de la forma
x cos(x) = 0.
Es decir, f (x) = x cos(x) y f 0 (x) = 1 + sen(x). Luego, la iteracion de Newton toma la
forma:
pn cos(pn )
pn+1 = pn .
1 + sen(pn )

28
En OCTAVE

>> p = 1, cont = 0
p = 1
cont = 0
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.75036
cont = 1
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.73911
cont = 2
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.73909
cont = 3
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.73909
cont = 4

Que? Solo cuatro iteraciones? No se puede creer! Guau!


S, es as. El metodo de Newton es rapidsimo. Esto se debe a que no solo ocurre que
|g 0 (x)| 1/2 en un entorno de x = p sino que ademas g 0 (p) = 0, por lo tanto, a medida
que nos acercamos a la solucion, el metodo se va acelerando.
Para ver mejor el efecto de aceleracion, veamos lo que ocurre con todos los dgitos.

>> format long


>> p = 1, cont = 0
p = 1
cont = 0
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.750363867840244
cont = 1
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.739112890911362
cont = 2
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.739085133385284
cont = 3
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.739085133215161
cont = 4
>> p = p - (p - cos(p))/(1 + sin(p)), cont = cont + 1
p = 0.739085133215161
cont = 5

Newton no deja de sorprendernos. Bastaron cinco iteraciones para que el error entre
dos consecutivos sea menor que 1016 . Impresionante. . .
Veamos lo que ocurre con el error

29
n p |p pn |
0 1.0000000000000000 0.2609148667848393
1 0.7503638678402438 0.0112787346250832
2 0.7391128909113616 0.0000277576962010
3 0.7390851333852839 0.0000000001701232
4 0.7390851332151605 0.0000000000000001
5 0.7390851332151606 0.0000000000000000
Vemos que la cantidad de ceros despues del punto decimal en el error es, en cada
iteracion, aproximadamente el doble que en la iteracion anterior.
Los numeros de esa tabla fueron generados con estas lneas de codigo OCTAVE

pp = 0.7390851332151606;
p = 1;
for i=0:5
fprintf(%d %18.16f %18.16f \n,i, p, abs(p-pp));
p = p - (p - cos(p))/(1 + sin(p));
end
Para entender por que es tan rapido el metodo de Newton, definiremos a continuacion
una manera de estudiar el orden de convergencia de los metodos iterativos.

2.4. Velocidad de convergencia


Definicion 26 (Orden de convergencia). Supongamos que la sucesion pn tiende a p
cuando n . Si existen A > 0 y R > 0 tales que
|p pn+1 |
A, cuando n ,
|p pn |R
entonces se dice que pn p con orden R.
Si R = 1 se dice que la convergencia es lineal.
Si R = 2 se dice que la convergencia es cuadratica.
En el caso R = 1, para n grande, resulta |pp n+1 |
|ppn |
A, es decir
|p pn+1 | A|p pn |
y para que resulte convergente hace falta que A < 1.
Veamos dos ejemplos, el caso A = 0.1 y el caso A = 0.1 0.316.

A = 0.1 A = 0.1 0.316
n |p pn | n |p pn |
0 0.23 0 0.23000
1 0.023 1 0.07273
2 0.0023 2 0.02300
3 0.00023 3 0.00727
4 0.000023 4 0.00230
5 0.0000023 5 0.00073
6 0.00000023 6 0.00023

30
Vemos que en el caso A = 0.1 el error es en cada paso un diez porciento del error en el
caso anterior. Se dice que se gana un dgito por iteracion. En el caso A = 0.1 0.316 se
gana un dgito cada dos iteraciones. Lo importante es que en los metodos de convergencia
lineal se gana un dgito cada un cierto numero de iteraciones, pero esto se mantiene fijo
a lo largo de toda la iteracion.
Veamos que ocurre con un caso de convergencia cuadratica, es decir, con R = 2. Para
simplificar la presentacion consideramos A = 1.

A = 1, R = 2, |p pn+1 | |p pn |2
n |p pn |
0 101 = 0.1
1 102 = 0.01
2 104 = 0.0001
3 108 = 0.00000001
4 1016 = 0.0000000000000001
5 1032 = 0.00000000000000000000000000000001
6 1064 = . . .

Ahora que hemos comprendido lo que significa orden de convergencia, enunciamos el


siguiente teorema.

Teorema 27 (Orden de convergencia del metodo de Newton). Consideremos el caso en


que el metodo de Newton genera una sucesion {pn }
n=0 que converge a un cero p de la
funcion f (x). Entonces:

Si p es una raz simple, es decir f 0 (p) 6= 0, entonces la convergencia es cuadratica,


y para n grande se cumple que

|f 00 (p)|
|p pn+1 | |p pn |2 .
2|f 0 (p)|

Si p es una raz multiple de orden M > 1, es decir f 0 (p) = f 00 (p) = =


f (M 1) (p) = 0 con f (M ) (p) 6= 0, entonces la convergencia es lineal, y para n grande
se cumple que
M 1
|p pn+1 | |p pn |.
M
Observacion 28. En palabras, concluimos lo siguiente:

El metodo de Newton siempre converge, si comenzamos con p0 suficientemente cerca


de p.

La convergencia del metodo de Newton es cuadratica (R = 2, el numero de dgitos


exactos se duplica en cada iteracion), si f 0 (p) 6= 0.

Si bien no incluimos la demostracion de este teorema en este apunte, vale la pena


mencionar que la recta tangente a la grafica de y = f (x) que pasa por (pn , f (pn )) tiene
ecuacion
y = f (pn ) + (x pn )f 0 (pn )

31
y por el teorema de Taylor

(x pn )2 00
f (x) = f (pn ) + (x pn )f 0 (pn ) + f (z)
2
para algun z entre x y pn . Esta formula nos dice que la ecuacion de la recta tangente nos
da una aproximacion de la funcion f (x) con un error

(x pn )2 00
f (z).
2
2
Este error es menor a M2 (xp
2
n)
si M2 es una cota para el valor absoluto de f 00 . Como ese
error es cuadratico en terminos de la distancia a pn , el metodo de Newton resulta con
convergencia cuadratica.
A continuacion presentamos el codigo del metodo de Newton.

Funcion newton.m.
function p = newton(f,fprima,p0,tol,maxiter)
% p = newton(f,fprima,p0,tol,maxiter)
% metodo de Newton para ecuaciones no lineales
% f: funcion escalar. Ecuacion a resolver
% f(x) = 0
% fprima: derivada de f
% p0: aproximacion inicial
% tol: tolerancia para el error absoluto
% maxiter: maximo numero de iteraciones permitido

contador=1;
p=p0-f(p0)/fprima(p0);

while (abs(p-p0)>tol) && (contador<=maxiter)


p0 = p;
p = p0 - f(p0)/fprima(p0);
contador=contador+1;
end

if(contador>maxiter)
disp(se supero el maximo de iteraciones)
end

2.5. El metodo de la secante


En el caso en que uno no pueda calcular la derivada de f , se puede reemplazar la
pendiente de la recta tangente por la pendiente de una recta secante, es decir, una recta
que pase por dos puntos de la grafica de y = f (x).

32
La idea es comenzar entonces con p0 y p1 cercanos a p, y definir p2 como la abscisa del
punto interseccion entre el eje x y la recta que pasa por (p0 , f (p0 )) y por (p1 , f (p1 )). Para
obtener la formula de p2 en terminos de p0 y p1 observamos primero que la pendiente de
la recta secante es
f (p1 ) f (p0 )
m= .
p 1 p0
Luego, usando que (p1 , f (p1 )) y (p2 , 0) pertenecen a esa recta, resulta

f (p1 ) 0
= m.
p1 p2

En consecuencia,
f (p1 ) 0 f (p1 ) f (p0 )
=
p1 p2 p1 p0
y despejando p2 obtenemos
p 1 p0
p2 = p1 f (p1 ) .
f (p1 ) f (p0 )

En general, teniendo pn1 y pn , obtenemos pn+1 a partir de la siguiente formula:


pn pn1
pn+1 = pn f (pn ) .
f (pn ) f (pn1 )

El resultado de convergencia para el metodo de la secante se enuncia a continuacion.

33
Teorema 29. [Convergencia del metodo de la secante] Sea p un cero de la funcion f , es
decir
f (p) = 0.

Si f es C 2 en una vecindad de p, f 0 (p) 6= 0 y p0 , p1 estan suficientemente cerca de p,


entonces la iteracion del metodo de la secante

pn pn1
pn+1 = pn f (pn ) , n = 1, 2, . . .
f (pn ) f (pn1 )

1+ 5
converge a p. El orden del metodo es R = 2
1.61803 . . . (numero de oro o razon
aurea).

A continuacion presentamos el codigo para el metodo de la secante.

Funcion secante.m.
function p = secante(f,p0,p1,tol,maxiter)
% p = secante(f,p0,p1,tol,maxiter)
% metodo de la secante para ecuaciones no lineales
% f: funcion escalar. Ecuacion a resolver
% f(x) = 0
% p0, p1: aproximaciones iniciales
% tol: tolerancia para el error absoluto
% maxiter: maximo numero de iteraciones permitido

contador=1;
f0 = f(p0);
f1 = f(p1);
p = p1 - f1 * (p1-p0) / (f1-f0);

while (abs(p-p1)>tol) && (contador<=maxiter)


p0 = p1; f0 = f1;
p1 = p; f1 = f(p);
p = p1 - f1 * (p1-p0) / (f1-f0);
contador=contador+1;
end

if(contador>maxiter)
disp(se supero el maximo de iteraciones)
end

Vale la pena notar aqu que p0 y p1 almacenan a pn1 y pn , respectivamente. Otra


cosa a tener en cuenta es que en la formula del calculo de p (correspondiente a pn+1 ) no
se usa f(p0) ni f(p1) sino f0 y f1. Esto se hace as para evitarle a la computadora el
trabajo de calcular f (pn ) varias veces para cada pn .

34
2.6. Metodos iterativos para sistemas de ecuaciones
Consideremos el siguiente sistema de dos ecuaciones no lineales con dos incognitas:

x2 2x y + 0.5 = 0,
x2 + 4y 2 4 = 0.

En terminos geometricos, la primera ecuacion representa una parabola y la segunda una


elipse. Resolver este sistema significa hallar la interseccion de las curvas.
El siguiente script permite graficar las curvas para encontrar aproximadamente las
soluciones del sistema.
Script curvasdenivel.m.
x = linspace(-3,3,30);
y = linspace(-2,2,30);
[x,y] = meshgrid(x,y);
z1 = x.^2 - 2*x - y + 0.5;
z2 = x.^2 + 4*y.^2 - 4;

close all
contour(x,y,z1,[0 0],b)
hold on
contour(x,y,z2,[0 0],r)
hold off
grid

print -dpng curvasdenivel


print -depsc2 curvasdenivel

Con ayuda del comando help investigue que hacen las instrucciones meshgrid y
contour para entender que esta graficando y como hara para graficar curvas en otro
problema.
Vemos a partir del grafico que hay dos soluciones. Se ve que podra haber 3, 4, o
ninguna, dependiendo de la posicion relativa de la parabola con respecto a la elipse.
Para otros sistemas de ecuaciones puede ocurrir que haya un numero n a priori des-
conocido de soluciones, o tambien infinitas.
Recordemos que para sistemas lineales hay solo tres opciones:

Existe unica solucion.

No hay solucion.

Hay infinitas soluciones.

2.6.1. Metodo de punto fijo


El grafico nos permite tener una primera aproximacion de cada solucion, pero qui-
sieramos hallarlas con mas precision. La primera opcion es fabricarnos un metodo de

35
punto fijo. Para ello, podemos despejar un x de la primera ecuacion y un y de la segunda,
por ejemplo:
x2 y + 0.5 x2 4y 2 + 8y + 4
x= , y= .
2 8
Ahora reescribimos estas dos ecuaciones como una ecuacion vectorial
  " x2 y+0.5 #
x
= x2 4y22 +8y+4 .
y 8

Ahora la incognita es un punto p de dos coordenadas, y la funcion G : R2 R2 . Si


llamamos p1 a la primera componente x y p2 a la segunda y, el problema de punto fijo
puede escribirse de la siguiente manera

  " p21 p2 +0.5 #


p1
= p2 4p22 +8p2 +4 .
p2 1 2
8

 
0
Comenzamos ahora las iteraciones de punto fijo a partir de p = que esta cerca de
1
uno de las soluciones del sistema de ecuaciones. Lo hacemos en OCTAVE:
>> g = @(p) [ (p(1)^2-p(2)+0.5)/2 >> p = g(p)
(-p(1)^2-4*p(2)^2+8*p(2)+4)/8 ]; p =
>> p = [0;1] -0.22219
p = 0.99380
0 >> p = g(p)
1 p =
>> p = g(p) -0.22222
p = 0.99381
-0.25000 >> p = g(p)
1.00000 p =
>> p = g(p) -0.22221
p = 0.99381
-0.21875 >> p = g(p)
0.99219 p =
>> p = g(p) -0.22221
p = 0.99381
-0.22217 >> p = g(p)
0.99399 p =
>> p = g(p) -0.22221
p = 0.99381
-0.22231
0.99381
 
2
Veamos ahora que ocurre cuando comenzamos con que esta cerca de la otra
0
solucion.

36
>> p = [2;0] >> p = g(p)
p = p =
2 1011.99
0 -392.60
>> p = g(p) >> p = g(p)
p = p =
2.25000 5.1226e+05
0.00000 -2.0548e+05
>> p = g(p) >> p = g(p)
p = p =
2.78125 1.3121e+11
-0.13281 -5.3912e+10
>> p = g(p) >> p = g(p)
p = p =
4.18408 8.6076e+21
-0.60855 -3.6052e+21
>> p = g(p) >> p = g(p)
p = p =
9.3075 3.7046e+43
-2.4820 -1.5760e+43
>> p = g(p) >> p = g(p)
p = p =
44.806 6.8619e+86
-15.891 -2.9574e+86
Vemos que en este caso la iteracion no
 converge.
 Veamos que ocurre si comenzamos
1.9
mas cerca, por ejemplo, a partir de p = :
0.31
octave:54> p=[1.9;0.31] .
p = .
1.90000 .
0.31000 octave:71> p = g(p)
octave:55> p = g(p) p =
p = -0.22192
1.90000 0.99378
0.31070 octave:72> p = g(p)
octave:56> p = g(p) p =
p = -0.22227
1.89965 0.99382
0.31118 octave:73> p = g(p)
octave:57> p = g(p) p =
p = -0.22221
1.89874 0.99381
0.31168 octave:74> p = g(p)
octave:58> p = g(p) p =
. -0.22221
. 0.99381
.
En este caso, la iteracion converge a la primera solucion que habamos encontrado.
Claramente, el punto que queremos hallar, no es un punto de atraccion de esa iteracion
de punto fijo.

37
En el caso de una ecuacion con una incognita, hemos visto que la iteracion de punto
fijo pn+1 = g(pn ) converge localmente al punto fijo p si |g 0 (p)| < 1. Se dice que un metodo
converge localmente si lo hace cuando comenzamos suficientemente cerca.
En el caso de sistemas de ecuaciones, el rol la derivada g 0 lo juega la matriz Jacobiana:
Si    
2 2 x1 g1 (x1 , x2 )
G:R R , G = ,
x2 g2 (x1 , x2 )
su matriz Jacobiana o su diferencial es la matriz
g g1
1
  (x1 , x2 ) (x1 , x2 )
0 x 1 x 1 x2
G = g

x2 2 g2
(x1 , x2 ) (x1 , x2 )
x1 x2
Para recordar, la primera fila de G0 tiene todas las derivadas de g1 y la segunda fila de
G0 tiene todas las derivadas de g2 .
En general, si G : RN RN y

g1 (x) x1
g2 (x1 ) x2
G(x) = .. , con x = .. ,

. .
gN (x1 ) xN

su matriz Jacobiana o su diferencial es la matriz


g1 g1 g1

(x) (x) . . . (x)
x1 x2 xN
g2 g2 g2

(x) (x) . . . (x)

0

G (x) = x x2 xN
1.

.. .. ..

. .

gN gN gN
(x) (x) . . . (x)
x1 x2 xN
El teorema de punto fijo en RN dice lo siguiente:
Teorema 30. Sea p un punto fijo de G : RN RN , es decir

p = G(p).

Si G es C 1 en un entorno de p y
N
0 0
X gi
kG (p)k1 < 1, con kG (p)k1 = max x (p) ,

1iN j
j=1

entonces la iteracion de punto fijo

pn+1 = G(pn )

converge localmente. Es decir, hay un entorno alrededor de p tal que si p0 esta en ese
entorno, resulta que pn p.

38
Observacion 31. En general es difcil de verificar que kG0 (p)k1 < 1, sobre todo porque
no se conoce p. El teorema recien enunciado es de caracter teorico.
Ahora pensamos, si estamos dispuestos a calcular todas esas derivadas, por que no
usamos un metodo de Newton?

2.6.2. Metodo de Newton para sistemas de ecuaciones


Consideremos ahora un sistema de ecuaciones no lineales, escrito de la siguiente ma-
nera:

f1 (x1 , x2 , . . . , xN ) = 0
f2 (x1 , x2 , . . . , xN ) = 0
..
.
fN (x1 , x2 , . . . , xN ) = 0,

con f1 , f2 , . . . , fN , funciones escalares. Si definimos la funcion vectorial F : RN RN


de la siguiente manera:

f1 (x) x1
f2 (x) x2
F (x) = .. , con x = ..

. .
fN (x) xN

El sistema de ecuaciones puede escribirse de manera compacta como

F (x) = 0.

Supongamos que tenemos p0 cercano a p, una solucion de ese sistema de ecuaciones,


es decir, F (p) = 0.
Entonces, tal como lo hicimos para una ecuacion escalar, consideramos la aproxima-
cion lineal a F alrededor de p0 , que esta dada por la formula

`(x) = F (p0 ) + F 0 (p0 )(x p0 ),

notando que F 0 (p0 ) es una matriz de N N , la matriz Jacobiana de F en p0 , y F 0 (p0 )(x


p0 ) es el producto de la matriz F 0 (p0 ) (de N N ) por el vector x p0 (de N 1).
A continuacion, definimos p1 como el punto de RN para el que `(x) = 0, es decir,
planteamos el problema

Hallar p1 tal que: F (p0 ) + F 0 (p0 )(p1 p0 ).

Si llamamos p = (p1 p0 ) resulta que p es la solucion al siguiente sistema lineal de N


ecuaciones con N incognitas:
F 0 (p0 )p = F (p0 ).
que ya esta escrito en forma matricial. Observemos nuevamente que
F 0 (p0 ) es una matriz de N N .

39
F (p0 ) es un vector columna de N componentes, o una matriz de N 1.

p es un vector columna de N componentes, y es la incognita que nos dira como


elegir p1 . De la relacion p = (p1 p0 ) obtenemos

p1 = p0 + p.

Este razonamiento nos condujo a una manera de definir p1 a partir de p0 . Analo-


gamente podemos encontrar la manera de definir pn+1 a partir de pn . La resumimos a
continuacion.

1. Dado pn , sea p la solucion al sistema lineal de ecuaciones

F 0 (pn ) p = F (pn ) .
| {z } |{z} | {z }
conocido incognita conocido

2. Definir pn+1 = pn + p.

A continuacion mostramos una implementacion del metodo de Newton para sistemas


de ecuaciones no lineales (o Newton vectorial).

Funcion newtonvec.m.
function p= newtonvec(F,Fprima,p0,tol,maxiter)
% p = newtonvec(F,Fprima,p0,tol,maxiter)
% metodo de Newton para sistemas
% F recibe un vector columna y devuelve un vector columna
% Fprima: recibe un vector columna y devuelve una matriz,
% la matriz Jacobiana de F
% p0: aproximacion unicial (vector columna)
% tol: tolerancia para el error absoluto
% maxiter: maximo numero de iteraciones permitido

contador = 1;
deltap = - Fprima(p0) \ F(p0);
p = p0 + deltap;

while ( max( abs(deltap) ) > tol ) && ( contador <= maxiter )


deltap = - Fprima(p) \ F(p);
p = p + deltap;
contador = contador+1;
end

if(contador > maxiter)


disp(se supero el maximo de iteraciones)
end

40
Veamos como se utiliza esta funcion para hallar la solucion del siguiente sistema de
ecuaciones:
x2 y + xy 3 = 9
3x2 y y 3 = 4.
Primero las escribimos con lado derecho igual a cero:
x2 y + xy 3 9 = 0
3x2 y y 3 4 = 0.
Luego, cambiamos x por x1 y y por y2 :
x21 x2 + x1 x32 9 = 0
3x21 x2 x32 4 = 0.
Luego, definimos F : R2 R2 ,
 
x21 x2 + x1 x32 9
F (x) =
3x21 x2 x32 4
 
0
y el sistema es equivalente a resolver F (x) = . El Jacobiano de F es
0
 
0 2x1 x2 + x32 x21 + 3x1 x22
F (x) =
6x1 x2 3x21 3x22
 
1
Comenzaremos con la aproximacion inicial p0 = . Ya estamos en condiciones de
1
hacerlo en OCTAVE. Como hay que hacer un par de definiciones medio largas, conviene
poner todo en un script en lugar de tipear en la lnea de comandos.
Script pruebanewtonvec.m.
% pruebanewtonvec.m
% prueba Newton vectorial
% Resolvemos el problema
% x1^2 + x1 x2^3 - 9 = 0
% 3 x1^2 x2 - x2^3 - 4 = 0

% primero definimos la funcion F


F = @(x) [x(1)^2+x(1)*x(2)^3-9 ; 3*x(1)^2*x(2)-x(2)^3-4]

% luego su Jacobiano
% en el Jacobiano, cada fila tiene las derivadas de cada
% fila de F, con respecto a cada variable.
DF = @(x) [ 2*x(1)+x(2)^3 3*x(1)*x(2)^2
6*x(1)*x(2) 3*x(1)^2-3*x(2)^2]

p = newtonvec(F,DF,[1;1],1e-12,100)

F(p)

41
Como el archivo se llama pruebanewtonvec.m para ejecutarlo escribimos en la lnea
de comandos lo siguiente:

>> pruebanewtonvec
F =
@(x) [x(1) ^ 2 + x(1) * x(2) ^ 3 - 9; 3 * x(1) ^ 2 * x(2) - x(2) ^ 3 - 4]
DF =
@(x) [2 * x(1) + x(2) ^ 3, 3 * x(1) * x(2) ^ 2; 6 * x(1) * x(2), 3 * x(1) ^ 2 - 3 * x(
p =
1.3364
1.7542
ans =
0
0
>> format long
>> p
p =

1.33635537721717
1.75423519765170

Observacion 32. Finalizamos este captulo enunciando lo siguiente:

El metodo de Newton siempre converge, si comenzamos con p0 suficientemente cerca


de p, si F 0 (x) es una matriz invertible en un entorno de p.

La convergencia del metodo de Newton es cuadratica (R = 2, el numero de dgitos


exactos se duplica en cada iteracion), si F 0 (p) es invertible.

2.7. Ejercicios
2.1. (a) Graficar la funcion g(x) = 4.8 |x 3.5|2.5 sobre el intervalo [1, 5].

(b) Cuantos puntos fijos tiene en ese intervalo?

(c) Decir cuales son de manera aproximada, a partir del grafico.

(2 + sen(2x))2
2.2. (a) Graficar la funcion g(x) = 2
y su derivada g 0 (x) en graficos sepa-
8(1 + cos (x))
rados. Observar que hay un unico punto fijo.

(b) Determinar, a partir del grafico, un valor de K tal que |g 0 (x)| K para todo x
[0, 1].

(c) Si comenzaramos con p0 = 0.5 e iteraramos con la formula pn+1 = g(pn ).


Determinar cuantas iteraciones haran falta para garantizar una aproximacion del
punto fijo P con un error absoluto menor a 1012 .

42
2.3. Consideremos la ecuacion

x4 + 2x2 x 3 = 0.

(a) Verificar que [1, 32 ] es solucion de esa ecuacion si y solo si = gi () para cada
una de las funciones gi (x) siguientes. Es decir, [1, 23 ] es solucion de esa ecuacion
si y solo si es un punto fijo de gi .
1/2
x + 3 x4

2 1/4
g1 (x) = (3 + x 2x ) g2 (x) =
2
1/2
3x4 + 2x2 + 3

x+3
g3 (x) = g4 (x) =
x2 + 2 4x3 + 4x 1

(b) Verificar con cual de ellas se obtiene una convergencia mas rapida a la solucion
comenzando de p0 = 1.

(c) Verificar, mirando el grafico de |g 0 (x)| en el intervalo [1, 23 ] si lo observado experi-


mentalmente coincide con lo esperado desde el punto de vista teorico.

2.4. Baje el codigo de la funcion p = newton(f, fprima, x0, tol, maxiter) del apun-
te y guardelo en su carpeta de trabajo. Verifique que comprende su uso y como fue
programado.
Verifique el funcionamiento probando con un problema del cual se conozca la solucion.
Por ejemplo, resolver x2 = 25. Verifique que el error decrece cuadraticamente.
3
2.5. El polinomio p(x) = x3 + 200 x2 + x + 14 tiene tres ceros entre 2 y 2. Utilice
el metodo de Newton para hallarlas con un error absoluto menor a 1012 . Para ello,
grafique el polinomio y determine a partir del grafico tres diferentes valores iniciales p0
que aseguren la convergencia a cada cero del polinomio.

2.6. La funcion f (x) = x3 3x2 +4 tiene un cero p = 2. Observe la sucesion de aproxima-


ciones pn generadas por el metodo de Newton para aproximarla, comenzando de p0 = 4.
Que ocurre con el error? Tiende a cero cuadraticamente? Como puede explicar lo que
se observa?

2.7. Baje el codigo de la funcion p = secante(f, p0, p1, tol, maxiter) del apunte
y guardelo en su carpeta de trabajo. Verifique que comprende su uso y como fue progra-
mado.
Verifique el funcionamiento probando con un problema del cual se conozca la solucion.
Por ejemplo, resolver x3 = 27.

2.8. La ecuacion
ln(1 + x4 )
 
x
exp 2 =
x + cos(x) 2
tiene una solucion en el intervalo [0, 5]. Calculela con un error absoluto menor a 1012
utilizando el metodo de la secante. Determine p0 y p1 adecuados a partir de un grafico.

43
2.9. Se sabe que la ecuacion !
3
ln(3 + x )
x = ln 2 sen(x2 )
2+ 1+x2

tiene una solucion en [0, 1]. Hallela con un error relativo menor que 1012 .
2.10. Para cada uno de los siguientes sistemas, determinar cuantas soluciones tiene en el
rectangulo indicado, a partir de un grafico:
(a) x2 + xy 3 = 9, 3x2 y y 3 = 4 en el cuadrado [4, 4] [4, 4].
(b) 3w2 z 2 = 0, 3wz 2 w3 = 1, en el rectangulo [0, 3] [0, 2].
2.11. Escribir una funcion p = newtonvec(F, JF, p0, tol, maxiter) que reciba co-
mo argumentos:
f: una funcion vectorial que reciba un vector x y devuelva un vector y = f (x)
(ambos vectores columna); se quiere resolver F (x) = 0;
JF: la funcion Jacobiano de F; dado x devuelve una matriz que en la posicion (i, j)
fi
contiene x j

p0: la iteracion inicial;


tol: una tolerancia para el error absoluto entre el resultado x y la solucion exacta;
maxiter: un numero maximo de iteraciones
La funcion newtonvec debe aproximar la solucion por el metodo de Newton para sistemas
de ecuaciones nolineales. Para verificar su funcionamiento, probar con un problema del
cual se conozca la solucion. Por ejemplo, aproximar la solucion que se encuentra en el
primer cuadrante, del sistema
x21 + x22 = 1, x1 x2 = 0, comenzando de x1 = 1, x2 = 1.
2.12. Para cada uno de los sistemas del Ejercicio 2.10, utilizar el metodo de Newton
para hallar todas las soluciones en los rectangulos indicados, con una precision de 106 .
Graficarlas sobre las curvas para verificar.
2.13. Utilizar el metodo de Newton para hallar una solucion a cada uno de los siguientes
sistemas no lineales con la aproximacion inicial dada:
(
ln(x21 + x22 ) sen(x1 x2 ) = ln 2 + ln
 
1.2
(a) x1 x2 p0 =
e + cos(x1 x2 ) = 0 1.5
3 2
x1 + x1 x2 x1 x3 + 6 = 0

1
x1 x2
(b) e + e x3 = 0 p0 = 2

x22 2x1 x3 = 4 1

2.14. Resolver el siguiente sistema de ecuaciones con una precision para el error absoluto
de 106 , utilizando el metodo de Newton:
p
6x 2 cos(yz) = 1, 9y + x2 + sen(z) + 1.06 + 0.9 = 0, 60z + 3exy = 3 10.
Comenzar las iteraciones con x = 0, y = 0, z = 0.

44
2.15. En un sistema cerrado tienen lugar las siguientes reacciones qumicas reversibles:

2A + B  C (1),
A+D C (2).

En el equilibrio, las concentraciones de los compuestos intervinientes quedan definidas a


partir de las siguientes ecuaciones:
Cc Cc,0 + x1 + x2
K1 = 2
= ,
Ca Cb (Ca,0 2x1 x2 )2 (Cb,0 x1 )
Cc Cc,0 + x1 + x2
K2 = = .
Ca Cd (Ca,0 2x1 x2 )(Cd,0 x2 )

En estas ecuaciones Ci representa la concentracion del compuesto i, y x1 , x2 son los


numeros de moles que se producen en la primera y segunda reaccion, respectivamente. Si
K1 = 4 104 , K2 = 3.7 102 y las concentraciones iniciales de cada compuesto valen:
Ca,0 = 50, Cb,0 = 20, Cc,0 = 5, Cd,0 = 10, utilizar el metodo de Newton para encontrar
los valores de x1 y x2 . A partir de estos valores, calcular el valor de las concentraciones
de cada uno de los compuestos:

Ca = Ca,0 2x1 x2 Cb = Cb,0 x1 , Cc = Cc,0 + x1 + x2 , Cd = Cd,0 x2 .

2.16. El sistema no lineal


1
3x1 cos(x2 x3 ) =0
2
1
x21 625x22 = 0
4
10 3
ex1 x2 + 20x3 + =0
3
tiene una matriz Jacobiana singular (no invertible) en la solucion. Aplicar el metodo de
Newton con p0 = (1, 1, 1)T y observar que ocurre. Como se explica lo que sucede?

Si le interesa leer un poco mas sobre los temas de este captulo, le recomendamos las
secciones 2.1 a 2.4 y la seccion 3.7 del libro de John H. Mathews, Kurtis D. Fink, Metodos
numericos con MATLAB, Pearson Educacion, Prentice-Hall, 2000.

45
Captulo 3

Aproximacion e Interpolacion
Polinomial

Consideremos la situacion en que se conocen los valores de una funcion en algunos


puntos. Esos puntos pueden provenir de mediciones experimentales y por lo tanto podran
contener errores. Se desea hallar una funcion sencilla que coincida en esos puntos, o que
la grafica pase cerca.
Consideremos el caso en que queremos calcular la integral de una funcion sobre la que
no conocemos la primitiva, por ejemplo
Z 1
2
ex dx.
0

En este caso, lo que se hace, es aproximar la funcion por funciones sencillas que se sepan
integrar, y luego se integran esas funciones sencillas.
Para los matematicos, las funciones mas sencillas son los polinomios. Algunas razones
por las que se consideran sencillas son las siguientes:

(1) Son faciles de representar, pues basta un numero finito de coeficientes. En OCTAVE,
un vector p de n componentes representa el siguiente polinomio de grado n 1:

p(x) = p1 xn1 + p2 xn2 + + pn1 x + pn .

As, p = [6 -3 0 1] representa el polinomio

p(x) = 6x3 3x2 + 0x + 1 = 6x3 3x2 + 1

Para evaluar un polinomio en un cierto x se utiliza la funcion polyval. As, para


graficar el polinomio dado en OCTAVE, sobre el intervalo [3, 3], hacemos:

>> p = [6 -3 0 1];
>> x = linspace(-3,3,300);
>> y = polyval(p,x);
>> plot(x,y)

46
Resumiendo, para OCTAVE, p es un vector de 4 componentes. Cuando lo evaluamos
con polyval, lo interpreta como un polinomio de grado 3. Pero para que lo interprete
de esa manera, hay que evaluarlo con polyval. Se ruega al lector entender lo que
ocurre al hacer las siguientes lneas:

>> p(3)
ans = 0
>> polyval(p,3)
ans = 136
>> p(0)
error: subscript indices must be either positive integers less than 2^31 or logica
>> polyval(p,0)
ans = 1
>> p(4)
ans = 1
>> polyval(p,4)
ans = 337
>> p(0.25)
error: subscript indices must be either positive integers less than 2^31 or logica
>> polyval(p,0.25)
ans = 0.90625

(2) Son faciles de integrar, y la integral de un polinomio es otro polinomio:


x4 x3 x2
Z
6 3 0
6x3 3x2 + 0x + 1 dx = 6 3 + 0 + 1x + c = x4 x3 + x2 + 1x + c
4 3 2 4 3 2
para cualquier constante c. En general
Z
p p p
p1 xn1 + p2 xn2 + + pn1 x + pn dx = 1 xn + 2 xn1 + + n1 x2 + pn x + c.
n n1 2

(3) Son faciles de derivar, y la derivada de un polinomio es otro polinomio:


d
6x3 3x2 + 0x + 1 = 6 3 x2 3 2 x + 0,

dx
En general

d
p1 xn1 + p2 xn2 + + pn1 x + pn

dx
= (n 1)p1 xn2 + (n 2)p2 xn3 + + 3pn3 x2 + 2pn2 x + pn1 .

3.1. Interpolacion polinomial


Dados dos puntos en el plano, pasa por ellos una unica recta.
Si los dos puntos tienen diferente abscisa, entonces hay una unica recta de ecuacion

y = ax + b

47
cuya grafica pasa por los puntos.
Si tengo tres puntos con diferente abscisa, por ejemplo

(1, 8) (1, 9) (2, 15),

veremos que pasa por ellos una unica parabola de ecuacion

y = ax2 + bx + c.

Veamos como se calcula dicha parabola. Para que la misma pase por los puntos debe
cumplir

(1, 8) esta sobre la parabola 8 = a12 + b1 + c


(1, 9) esta sobre la parabola 9 = a(1)2 + b(1) + c
(2, 15) esta sobre la parabola 15 = a22 + b2 + c.

Nos queda entonces un sistema de 3 ecuaciones con 3 incognitas (las incognitas son a, b,
c):

12 a + 1b + c = 8
(1)2 a + (1)b + c = 9
22 a + 2b + c = 15.

En forma matricial, el sistema se escribe


2
1 1 1 a 8
(1)2 (1) 1 b = 9
22 2 1 c 15

Notamos que el lado derecho de la ecuacion es el vector de ordenadas de los puntos


(coordenadas y) y las columnas de la matriz son potencias de las abscisas de los puntos
(coordenadas x). Para resolverlo en OCTAVE hacemos lo siguiente:

>> X = [1 -1 2];
>> Y = [8 9 15];
>> matriz = [X.^2 X ones(size(X))]
matriz =

1 1 1
1 -1 1
4 2 1

>> p = matriz\Y
p =

2.50000
-0.50000
6.00000

48
As, a = 2.5, b = 0.5 y c = 6. Para graficar el polinomio en el intervalo [2, 3] y los
puntos dados hacemos lo siguiente:

>> xx = linspace(-2,3,200);
>> yy = polyval(p,xx);
>> plot(xx,yy,X,Y,*)

Ahora nos preguntamos que ocurre cuando tenemos n puntos. La respuesta esta en el
siguiente teorema.

Teorema 33. Dados n puntos

(x1 , y1 ) (x2 , y2 ) ... (xn , yn )

con abscisas todas distintas, existe un unico polinomio p de grado n 1 cuya grafica pasa
por los puntos, es decir

p(x1 ) = y1
p(x2 ) = y2
.. p(xi ) = yi , i = 1, 2, . . . , n.
.
p(xn ) = yn

Para demostrar este teorema recordamos que el Teorema Fundamental del Algebra
dice:

Un polinomio de grado n 1 tiene exactamente n 1 ceros en el conjunto de


los numeros complejos.

Sin entrar en detalles sobre lo que son los numeros complejos, deducimos de ese
enunciado que

Un polinomio de grado n 1 tiene a lo sumo n 1 ceros reales.

Esto implica a su vez que:

Si p(x) = p1 xn1 + p2 xn2 + + pn1 x + pn cumple

p(xi ) = 0, i = 1, 2, . . . , n,

con todos los xi distintos, es decir, tiene n ceros, entonces

p1 = p2 = = pn1 = pn = 0.

Ahora s, estamos en condiciones de demostrar el teorema.

Demostracion del Teorema 33. Queremos hallar el polinomio, as que proponemos

p(x) = p1 xn1 + p2 xn2 + + pn1 x + pn .

49
El mismo debe cumplir las siguiente n ecuaciones
p(x1 ) = y1
p(x2 ) = y2
..
.
p(xn ) = yn .
Es decir
p1 xn1
1 + p2 xn2
1 + + pn1 x1 + pn = y1
p1 xn1
2 + p2 xn2
2 + + pn1 x2 + pn = y2
..
.
n1 n2
p1 xn + p2 xn + + pn1 xn + pn = yn .
Recordando que las abscisas x1 , x2 , . . . , xn son conocidas y las ordenadas y1 , y2 , . . . , yn
tambien, las incognitas son los coeficientes p1 , p2 , . . . , pn del polinomio. Para encontrarlos
debemos resolver ese sistema de ecuaciones que en forma matricial se escribe as:

n1 n2 p1 y1
x1 x1 . . . x1 1
xn1 xn2 . . . x2 1 p2 y2

2 2 .. ..
.. .. .. .. . = . . (3.1)
. . . .
pn1 yn1
xn1
n xn2
n . . . xn 1
pn yn
Observamos nuevamente que el lado derecho del sistema de ecuaciones es el vector de
ordenadas de los puntos (coordenadas y) y las columnas de la matriz son potencias
de las abscisas de los puntos (coordenadas x). Esta matriz se conoce como matriz de
Vandermonde correspondiente a x1 , x2 , . . . , xn .
Este sistema de ecuaciones tiene solucion unica si la matriz es invertible, lo cual puede
verificarse demostrando que el problema homogeneo tiene como unica solucion a la trivial.
Plantear el sistema homogeneo

n1 n2 p1
x1 x1 . . . x1 1 0
xn1 xn2 . . . x2 1 p2 0

2 2 .
.. .. .. .. .. = ..
. . . . .
n1 n2
pn1
xn xn . . . xn 1 0
pn
equivale a buscar el polinomio que satisface p(xi ) = 0, i = 1, 2, . . . , n. Por lo que hemos
dicho antes de comenzar la demostracion, esto implica que p1 = p2 = = pn1 = pn = 0,
es decir, la unica solucion es la trivial.
Por lo tanto, el sistema (3.1) tiene solucion unica, o lo que es lo mismo, existe un
unico polinomio cuya grafica pasa por los n puntos dados.
En OCTAVE, para hallar el polinomio de grado n1 que pasa por n puntos, se utiliza
la funcion polyfit. Por ejemplo, para hallar el polinomio de grado 4 cuya grafica pasa
por
(1, 2) (2, 1) (4.5, 3) (5.5, 0) (10, 3.3)

50
hacemos as:

>> X = [1 2 4.5 5.5 10] ;


>> Y = [2 -1 3 0 3.3];
>> p = polyfit(X,Y,4)
p =

0.092585 -1.787726 10.949413 -24.722922 17.468651

>> xx = linspace(0,11,200);
>> yy = polyval(p,xx);
>> plot(xx,yy,X,Y,*)

Esas lneas tambien incluyen instrucciones para graficar el polinomio en el intervalo [0, 11].

3.2. Aproximacion por cuadrados mnimos


En la seccion anterior vimos como calcular un polinomio interpolador de una lista
de puntos. Es decir, buscabamos el polinomio cuya grafica pasa exactamente por todos
los puntos dados. Volveremos a esto en la seccion siguiente, lo que sera util para obtener
formulas de integracion numerica en el captulo proximo.
Ahora nos enfocaremos en el calculo de un polinomio de grado bajo que pase cerca de
una lista dada de puntos.

Consideremos el caso en que tenemos n puntos

(x1 , y1 ) (x2 , y2 ) ... (xn , yn )

con n grande, como en la grafica, y buscamos un polinomio de grado menor o igual a 2,


cuya grafica pase lo mas cerca posible de esos puntos. Debemos definir en que sentido
el polinomio pasa cerca de los puntos. La manera mas usual es lo que se conoce como

51
la aproximacion por cuadrados mnimos, que consiste en lo siguiente. Queremos hallar
el polinomio p(x) que minimice la suma de la distancia entre p(xi ) y yi al cuadrado, es
decir, que minimice la siguiente expresion:
n
2 2 2 X 2
p(x1 ) y1 + p(x2 ) y2 + + p(xn ) yn = p(xi ) yi .
i=1

Geometricamente, estamos mirando la distancia vertical entre el punto dato (xi , yi ) y el


punto de la grafica con la misma abscisa (xi , p(xi )). Lo que se quiere minimizar es la
suma de esas distancias al cuadrado. En notacion mas compacta, queremos minimizar la
norma eucldea o magnitud de este vector:

p(x1 ) y1 p1 x21 + p2 x1 + p3 y1
p(x2 ) y2 p1 x2 + p2 x2 + p3 y2
2
.. .. = ..

..
. . . .
2
p(xn ) yn p 1 xn + p 2 xn + p 3 yn

Observamos que
p1 x21 + p2 x1 + p3 x21 x1 1 p1
p1 x2 + p2 x2 + p3 x2 x2 1 p2
2 2
= ..

.. ..
. . .
2 2
p 1 xn + p 2 xn + p 3 xn xn 1 p n
| {z } | {z }
M p

y planteamos el siguiente problema.

Hallar el vector p que minimice la norma de M p y, es decir, que minimice:

n
!1/2
X
(M p)i yi ]2

kM p yk =
i=1

Para resolver este problema, recordemos que M p es una combinacion lineal de las
columnas de M :
M p = p1 col1 (M ) + p2 col2 (M ) + p3 col3 (M ),
y por lo tanto, el problema consiste en encontrar el elemento del espacio columna de M
que esta lo mas cerca posible de y.
Recordando un poco de geometra, vemos que M p es el elemento mas cercano a dicho
espacio si y solo si el error y M p es perpendicular al espacio generado por las columnas
de M . Es decir, si y M p es perpendicular a cada columna de M . Mas precisamente, si
se cumple que

col1 (M ) (y M p) = 0
col2 (M ) (y M p) = 0
col3 (M ) (y M p) = 0.

52
Recordando que si u, v son vectores columna, entonces u v = uT v resulta que M p debe
cumplir

col1 (M )T (y M p) = 0
col2 (M )T (y M p) = 0
col3 (M )T (y M p) = 0.

En notacion mas compacta



col1 (M )T 0 0
col2 (M )T (y M p) = 0 T
M (y M p) = 0

col3 (M )T 0 0

A su vez, esta ultima expresion, equivale a

M T M p = M T y.

Es decir, el vector p (de tres componentes) debe ser la solucion al sistema de ecuaciones

MT M p = MT y


En OCTAVE, si X, Y son vectores que tienen las abscisas y las ordenadas de los puntos,
el calculo del polinomio p se hara de la siguiente manera:

(1) Armado de la matriz M (X, Y deben ser vectores columna)

>> M = [ X.^2 X ones(size(X))]

(2) Armamos la matriz del sistema a resolver, la llamamos A

>> A = M*M

(3) Armamos el lado derecho del sistema a resolver, lo llamamos b

>> b = M*Y

(4) Hallamos los coeficientes del polinomio que aproxima en el sentido de mnimos cua-
drados:

>> p = A \ b

(5) Ahora graficamos el polinomio y los puntos en un mismo grafico. Supongamos para
ello que estamos en el intervalo [0, 6]:

>> xx = linspace(0,6,200);
>> yy = polyval(p,xx);
>> plot(X,Y,*,xx,yy)

53
Los pasos (1) a (4) de lo recien explicado pueden resumirse en OCTAVE usando
polyfit:

>> p = polyfit(X,Y,2)

Observacion 34. Recalcamos que igualmente es importante entender como se resuelve


un sistema en el sentido de mnimos cuadrados, pues hay ocasiones en que se quieren
aproximar puntos por funciones de otra forma, por ejemplo: p(x) = a3x + b2x + c. All
hay que reproducir los pasos, utilizando como matriz M la siguiente:

>> M = [ 3.^X 2.^X ones(size(X)) ]

Observacion 35. El estudio del error cometido por el polinomio hallado y la funcion
real que modela el comportamiento de los puntos, que han sido medidos con un cierto
error aleatorio, escapa al alcance de este curso, y corresponde al area Estadstica.

3.3. Interpolacion de funciones


Volvemos ahora a la idea del polinomio interpolador, es decir, el polinomio cuya
grafica pasa exactamente por una lista de puntos. Pero consideramos ahora que esos
puntos coinciden con puntos de la grafica y = f (x) de una funcion f dada.
Hagamos un poco de matematica experimental. Para ello, a continuacion incluimos
una funcion pruebapolyfit1 que dada una funcion, un intervalo y un numero n de puntos
calcula el polinomio interpolante en n puntos equidistantes. La idea es tratar de medir el
error entre la funcion y el polinomio hallado.

Funcion pruebapolyfit1.m.
function p = pruebapolyfit1(f,a,b,n)
% function p = pruebapolyfit1(f,a,b,n)
%
% Se interpola la funcion f en n
% puntos equiespaciados en el intervalo [a,b].
% En la figura 1 se grafica la funcion f y el polinomio.
% En la figura 2 se grafica el error.
% Ambos graficos se realizan sobre el intervalo [a,b].
%
% La funcion retorna el polinomio p en formato MATLAB.

% Tomamos n puntos equiespaciados en [a,b]


X=linspace(a,b,n);
% Evaluamos f en esos puntos
Y = f(X);
% Obtenemos el polinomio interpolante
p = polyfit(X,Y,n-1);

% Para graficar tomamos muchos puntos en el intervalo [a,b]


xx = linspace(a,b,200);

54
% Evaluamos la funcion y el polinomio en todos esos puntos
fxx = f(xx); pxx = polyval(p,xx);
error = abs(fxx-pxx);
maximo_error = max(error)

% Ahora si, graficamos


figure(1)
plot(xx,fxx,LineWidth,2,xx,pxx,LineWidth,2,X,Y,*)
legend(funcion original,polinomio interpolante)
set(gca,FontSize,18)

figure(2)
plot(xx,error,LineWidth,2)
grid, title(Error)
set(gca,FontSize,18)

Ejemplo 36. Veamos que ocurre cuando interpolamos la funcion f (x) = sen(x) sobre el
intervalo [0, 7]. Para entender mejor se recomienda que baje la funcion pruebapolyfit1 y
realice estas pruebas usted mismo.

>> f = @(x) sin(x);


>> pruebapolyfit1(f,0,7,2);
maximo_error = 1.4466
>> pruebapolyfit1(f,0,7,3);
maximo_error = 1.3319
>> pruebapolyfit1(f,0,7,4);
maximo_error = 0.57219
>> pruebapolyfit1(f,0,7,5);
maximo_error = 0.31131
>> pruebapolyfit1(f,0,7,6);
maximo_error = 0.087421
>> pruebapolyfit1(f,0,7,7);
maximo_error = 0.040263
>> pruebapolyfit1(f,0,7,8);
maximo_error = 0.0078669
>> pruebapolyfit1(f,0,7,9);
maximo_error = 0.0031601
>> pruebapolyfit1(f,0,7,10);
maximo_error = 4.6673e-04

Vemos en este ejemplo que el error tiende a cero a medida que aumentamos el numero n
de puntos.
2
Ejemplo 37. Consideremos ahora la funcion f (x) = ex sobre el intervalo [1, 3].

>> f = @(x) exp(-x.^2);


>> pruebapolyfit1(f,-1,3,2);

55
maximo_error = 0.72617
>> pruebapolyfit1(f,-1,3,3);
maximo_error = 0.58613
>> pruebapolyfit1(f,-1,3,4);
maximo_error = 0.20698
>> pruebapolyfit1(f,-1,3,5);
maximo_error = 0.23692
>> pruebapolyfit1(f,-1,3,6);
maximo_error = 0.084354
>> pruebapolyfit1(f,-1,3,7);
maximo_error = 0.065621
>> pruebapolyfit1(f,-1,3,8);
maximo_error = 0.052012
>> pruebapolyfit1(f,-1,3,9);
maximo_error = 0.023666
>> pruebapolyfit1(f,-1,3,10);
maximo_error = 0.019472

Aqu tambien parece ser que el error tiende a cero, aunque da la impresion de que esto
ocurre mas lentamente que en el ejemplo anterior.

Veamos un ultimo ejemplo:


1
Ejemplo 38. Consideremos la funcion f (x) = 1+x2
sobre el intervalo [5, 5].

>> f = @(x) 1./(1+x.^2);


>> pruebapolyfit1(f,-5,5,2);
maximo_error = 0.96091
>> pruebapolyfit1(f,-5,5,3);
maximo_error = 0.64622
>> pruebapolyfit1(f,-5,5,4);
maximo_error = 0.70639
>> pruebapolyfit1(f,-5,5,5);
maximo_error = 0.43821
>> pruebapolyfit1(f,-5,5,6);
maximo_error = 0.43211
>> pruebapolyfit1(f,-5,5,7);
maximo_error = 0.61655
>> pruebapolyfit1(f,-5,5,8);
maximo_error = 0.24684
>> pruebapolyfit1(f,-5,5,9);
maximo_error = 1.0451
>> pruebapolyfit1(f,-5,5,10);
maximo_error = 0.30010

Aqu hay algo raro. Veamos que ocurre si seguimos.

>> pruebapolyfit1(f,-5,5,11);

56
maximo_error = 1.9156
>> pruebapolyfit1(f,-5,5,12);
maximo_error = 0.55418
>> pruebapolyfit1(f,-5,5,13);
maximo_error = 3.6554
>> pruebapolyfit1(f,-5,5,14);
maximo_error = 1.0639
>> pruebapolyfit1(f,-5,5,15);
maximo_error = 7.1908
>> pruebapolyfit1(f,-5,5,16);
maximo_error = 2.0979
>> pruebapolyfit1(f,-5,5,17);
maximo_error = 14.329
Aqu se ve que la cosa no anda tan bien. El error no parece tender a cero. . .
Veamos un poco de teora. El teorema del error de interpolacion dice lo siguiente.
Teorema 39. Sea f una funcion definida en el intervalo [a, b]. Si x1 , . . . , xn son todos
puntos distintos en el intervalo [a, b], entonces existe un unico polinomio p(x) de grado
menor o igual a n 1 cuya grafica pasa por los puntos (xi , f (xi )) para i = 0, 1, . . . , n. Es
decir, existe un unico polinomio p(x) = p1 xn1 + + pn1 x + pn tal que

p(xi ) = f (xi ), i = 1, 2, . . . , n.

Ademas, si f es C n en el intervalo [a, b], se cumple que para cada x [a, b]


Mn
|f (x) p(x)| |x x1 | |x x2 | . . . |x xn |, donde Mn = max |f n ()|.
n! [a,b]

Corolario 40. Si no se sabe donde estan los puntos xi , entonces, para cada x [a, b]
solo sabemos que |x xi | |b a|. Del teorema anterior concluimos que:
Mn
max |f (x) p(x)| |b a|n .
x[a,b] n!
Corolario 41. Si los puntos xi estan equiespaciados y x1 = a, xn = b, es decir
ba
xi = a + (i 1)x, con x = ,
n1
entonces, resulta (pensemos que x [x1 , x2 ])
|b a|n
|xx1 | |xx2 | . . . |xxn | x x 2x 3x . . . (n1)x = (n1)!xn = (n1)! .
(n 1)n
Luego, del teorema anterior obtenemos
Mn |b a|n
max |f (x) p(x)| .
x[a,b] n (n 1)n
| {z }
cota del error

57
Vale la pena observar que en ambos casos, la cota del error tiene un factor Mn que
depende de la derivada de orden n de la funcion que queremos aproximar, y otro factor,
|b a|n |b a|n |b a|n |b a|n
en un caso y en el otro. Tanto como tienden a cero
n! n(n 1)n n! n(n 1)n
cuando n tiende a infinito.
En el ejemplo 36, Mn = 1 para todo n, as que
|b a|n |b a|n
Mn = 1 0, cuando n .
n(n 1)n n(n 1)n
2
En el ejemplo 37, resulta mas pesado calcular derivadas de todos los ordenes de ex .
Cabe aclarar que Mn cuando n , pero aun as,
|b a|n
Mn 0, cuando n .
n(n 1)n
Sin embargo, el valor de Mn puede tender a infinito tan rapido que los terminos
completos
|b a|n |b a|n
Mn y Mn
n! n(n 1)n
tiendan a infinito. Este es el caso del ejemplo 38. En ese caso, no podemos asegurar que
la aproximacion sea cada vez mejor a medida que tomemos mas puntos de interpolacion
y polinomios de grado mayor.
Para asegurar convergencia de la aproximacion, se utiliza la interpolacion polinomial
a trozos.

3.4. Interpolacion polinomial a trozos


Vimos en la seccion anterior que la cota del error para un polinomio p que interpola
a una funcion f en n puntos equiespaciados sobre el intervalo [a, b] es:

|b a|n
|f (x) p(x)| Mn ,
n(n 1)n

con Mn = max[a,b] |f n ()|. Tambien vimos que Mn puede ser muy grande para n gran-
de. En este caso, no sirve de mucho aumentar excesivamente el numero de puntos de
interpolacion.
Que se puede hacer para asegurar que el error tiende a cero?
Una cosa que se puede hacer es utilizar interpolacion polinomial a trozos. La idea es
fijar el grado polinomial n 1 e interpolar con ese grado (fijo) sobre L sub-intervalos.
Mas precisamente. Consideremos un intervalo [a, b] y un numero entero positivo L. Sub-
|b a|
dividimos el intervalo [a, b] en L sub-intervalos de longitud h = . Llamamos y1 , y2 ,
L
. . . , yL+1 a los extremos de esos sub-intervalos, es decir

y1 = a, y2 = a+h, y3 = a+2h, ... yL = a+(L1)h = bh, yL+1 = a+Lh = b.

Luego, interpolamos en cada sub-intervalo con un polinomio de grado n 1.

58
En el grafico a continuacion se muestra un ejemplo para n = 2. Es decir, en cada
sub-intervalo [yi , yi+1 ] se interpola con una funcion lineal (polinomio de grado n 1 = 1)
que coincide en los extremos de ese sub-intervalo.

En el caso n = 3 consideramos, en cada sub-intervalo, el polinomio de grado 2 que


interpola en los extremos y en el punto medio de ese sub-intervalo. As, se puede realizar
para cualquier grado polinomial.
Luego, si fijamos n (no demasiado grande), y miramos el error en un sub-intervalo,
resulta, por el teorema del error de interpolacion (Teorema 39), lo siguiente:
 n
Mn |b a|
|f (x) p(x)| .
n(n 1)n L
|b a|
Notemos que hemos cambiado |b a| por , ya que estamos considerando un sub-
L
|ba|
intervalo, que tiene longitud h = L . Resumimos esta observacion en el siguiente teore-
ma:
Teorema 42. Sea f es una funcion C n sobre el intervalo [a, b]. Si p es el polinomio a
trozos de grado n 1 sobre una particion de tamano h = |ba|L
, que interpola a f en
(L + 1) + (n 2)L puntos equiespaciados, entonces
 n
Mn |b a| Mn
|f (x) p(x)| n
= hn ,
n(n 1) L n(n 1)n
para todo punto x [a, b], con Mn = max[a,b] |f n ()|.
Observemos que n esta fijo, y que podemos tomar L grande. Si hacemos tender L a
infinito, resulta que
n
Mn |b a|n 1

Mn |b a|
|f (x) p(x)| = 0, cuando L .
n(n 1)n L n(n 1)n Ln

59
3.5. Ejercicios
Para tener en cuenta: en OCTAVE, un vector p de n componentes representa el
siguiente polinomio de grado n 1:

p(x) = p1 xn1 + p2 xn2 + + pn1 x + pn .

As, p = [6 -3 0 1] representa el polinomio

p(x) = 6x3 3x2 + 0x + 1 = 6x3 3x2 + 1

Ademas, la instruccion polyval(p,x) evalua el polinomio en un x dado.


3.1. Programar una funcion q = derivarpol(p) que reciba como argumento un polino-
mio p y calcule el polinomio derivado q de p. Por ejemplo, para p(x) = 6x3 3x2 +0x+1 =
6x3 3x2 + 1 debe calcular q(x) = 18x2 6x + 0 = 18x2 6x. En MATLAB debera verse
as:
>> p = [6 -3 0 1];
>> derivarpol(p)
ans =
18 -6 0
3.2. Programar una funcion q = integrarpol(p,a,b) que reciba como argumento un
polinomio p y opcionalmente los extremos a, b de un intervalo donde se desee integrar.
Si se recibe solo un argumento (el polinomio p), se debe calcular un polinomio que
sea la integral indefinida del polinomio dado, con ultimo coeficiente igual a cero. Es
4 3 2
decir, si p(x) = 6x3 3x2 + 1 debe retornar q(x) = 6 x4 3 x3 + 0 x2 + 1x + 0. En
MATLAB debera verse as:

>> p = [6 -3 0 1];
>> integrarpol(p)
ans =
1.5000 -1.0000 0 1.0000 0

Si se reciben tres argumentos (polinomio p y los extremos a, b) se debe calcular la


Rb
integral del polinomio p(x) entre a y b, es decir, a p(x) dx. En MATLAB debera
verse as:

>> p = [6 -3 0 1];
>> integrarpol(p,-3,5)
ans =
672

3.3. Consideremos los siguientes puntos:

(1, 1.54), (2, 1.5), (3, 1.42), (5, 0.66).

Escribir un script de MATLAB que realice los siguientes pasos:

60
(a) Calcular el polinomio p(x) de grado 3 cuya grafica pasa por esos puntos.

(b) Graficar los puntos y el polinomio en el intervalo [0, 6].


R4
(c) Calcular p(4), p0 (4) y 1 p(x) dx.
3.4. Consideremos los siguientes puntos:

(1, 1.05), (2, 1.1), (3, 1.35), (5, 1.75).

Escribir un script de MATLAB que realice los siguientes pasos:


(a) Calcular el polinomio p(x) de grado 3 cuya grafica pasa por esos puntos.

(b) Graficar los puntos y el polinomio en el intervalo [0, 6].


R5
(c) Calcular p(3), p0 (3) y 1 p(x) dx.
3.5. Encontrar el polinomio de grado 1 que aproxima en el sentido de cuadrados mnimos
la siguiente tabla de datos:

x 0 1 2 3 4 5 6 7 8 9
y 0.1 1.1 1.9 3.2 3.8 5 6 7.3 8.1 8.9

Graficar la recta hallada, el polinomio interpolador y los puntos correspondientes a


los datos sobre el intervalo [1, 10].
3.6. Encontrar el polinomio de grado 2 que aproxima en el sentido de cuadrados mnimos
la siguiente tabla de datos:

x -1 0 1 3 6
y 6.1 2.8 2.2 6 26.9

y comparar graficamente con el polinomio interpolador en el intervalo [2, 7].


3.7. Aproximar la siguiente tabla de datos en el sentido de cuadrados mnimos

x 1 0 2 3
y 0.3 0.2 7.3 23.3

con funciones del tipo indicado en cada inciso. Graficar sobre el intervalo [2, 4] las
curvas y los puntos.
1. y = a2x + b3x

2. y = a2x + b3x + c
3.8. Aproximar los datos de la tabla siguiente con un modelo de la forma f (x)
=
2
eax +bx+c , en el sentido de cuadrados mnimos para la funcion ln(f (x)):

x 1 0 1 2
y 1.1 0.4 0.9 2.7

61
Graficar sobre el intervalo [1.5, 2.5] la curva y los puntos.
3.9. Un biologo realiza un experimento de reproduccion de mosquitos y toma las siguien-
tes mediciones
Semana Cantidad
0 432
1 599
2 1012
3 1909
4 2977
5 4190
6 5961

(a) Determinar la funcion lineal que mejor aproxima en el sentido de cuadrados mnimos
los datos dados (modelo lineal).
(b) Determinar el polinomio de grado 2 que mejor aproxima en el sentido de cuadrados
mnimos los datos dados (modelo cuadratico).
(c) Predecir cual sera la cantidad de mosquitos al cabo de 10 semanas segun los diferentes
modelos, el lineal y el cuadratico.
(d) Si la medicion a las 10 semanas es de 14900 mosquitos, que modelo le parece que
es mas apropiado? El lineal o el cuadratico?

3.10. Considerar los siguientes numeros de la oficina de Censos de Estados Unidos, acerca
de la poblacion de Estados Unidos:

Ano Poblacion
1900 75.994.575
1910 91.972.266
1920 105.710.620
1930 122.775.046
1940 131.669.275
1950 150.697.361
1960 179.323.175
1970 203.235.298

Calcular utilizando polyfit el polinomio interpolador y comparar el valor del po-


linomio en los anos dados.
Calcular nuevamente el polinomio interpolador, pero ahora utilizando polyfit de
la siguiente manera:
[p,s,mu] = polyfit(x,y,7)
Averiguar que son p y mu. Evaluar el polinomio en los puntos de interpolacion,
ahora utilizando
z = polyval(p, x, [], mu)
y comparar el valor del polinomio interpolante con los datos.

62
Graficar el polinomio usando un paso de 1 ano entre 1900 y 1970. Repetir los graficos
entre 1900 y 1980. El numero relevado para 1980 es 226.547.082. Que opina sobre
la prediccion dada por el polinomio interpolador?

3.11. Utilizar cuadrados mnimos para aproximar los valores del censo de EE.UU. dados
en el Ejercicio 3.10, con polinomios de grado 1, 2 y 3. Graficar los polinomios de la misma
manera que en el ultimo punte de dicho ejercicio. Que grado polinomial le parece mas
adecuado? Por que? Cual predice mejor la poblacion de 1980? Que poblacion puede
predecir para el ano 2020?

63
Captulo 4

Integracion numerica o cuadratura

El objetivo de este captulo es hallar formulas que permitan calcular integrales (apro-
ximadas) pero de cualquier funcion. Cuando decimos aproximadas queremos decir con
tanta precision como se desee.
Queremos calcular por ejemplo
Z A Z 5
x2 t3
e dx o t
dt
0 6 e 1

que no tienen una expresion analtica.


Integrales difciles de resolver analticamente suelen aparecer al calcular el area de
superficies de revolucion. Recordamos que el area de la superficie de revolucion que se
obtiene al girar el grafico de y = f (x) alrededor del eje x, para a x b es
Z b p
2f (x) 1 + f 0 (x)2 dx.
a

Rara vez el integrando de esta expresion se podra integrar analticamente, y son muy
utiles los metodos numericos. Estos no dan una formula cerrada para el resultado, pero
permiten calcular la integral con tanta precision como se desee.

4.1. Formulas de Newton-Cotes


Supongamos que se desea calcular la integral
Z b
f (x) dx
a

para una funcion dada f .


La idea de las formulas de Newton-Cotes es interpolar la funcion f en n puntos con
un polinomio de grado n 1 e integrar el polinomio.
Por ejemplo. Para n = 1 tomamos el punto medio, y el polinomio de grado cero que
interpola en ese punto es la funcion constante p1 (x) = f ( a+b
2
). Resulta
Z b Z b Z b
a+b a+b
f (x) dx p1 (x) dx = f( ) dx = (b a)f ( ).
a a a 2 | {z 2 }
Q1 (f ;a,b)

64
Esta formula se conoce como Regla del Rectangulo, porque estamos calculando el area del
rectangulo con base (b a) y altura f ( a+b
2
).
Para n = 2 podemos escribir el polinomio p2 que interpola a f en x = a y en x = b
de la siguiente manera
bx xa
p2 (x) = f (a) + f (b).
ba ba
Luego
Z b Z b  
1 1
f (x) dx p2 (x) dx = = (b a) f (a) + f (b) .
a a 2 2
| {z }
Q2 (f ;a,b)

Esta formula se conoce como Regla del Trapecio, porque estamos calculando el area del
trapecio con bases f (a), f (b) y altura (b a).
Para n = 3 podemos escribir el polinomio p3 que interpola a f en x = a, x = m = a+b
2
y en x = b de la siguiente manera

(b x)(m x) (b x)(a x) (x a)(x m)


p3 (x) = f (a) + f (m) + f (b).
(b a)(m a) (b m)(a m) (b a)(b m)

Luego
Z b Z b  
1 4 1
f (x) dx p3 (x) dx = = (b a) f (a) + f (m) + f (b) .
a a 6 6 6
| {z }
Q3 (f ;a,b)

Esta formula se conoce como Regla del Simpson.


Las operaciones que no escribimos y que iran en son muy laboriosas. Lo impor-
tante de entender aqu son dos cosas:

(1) Las formulas de integracion numerica consisten en evaluar f en distintos puntos del
intervalo, multiplicar esos valores por otros numeros, sumar, y finalmente multiplicar
por la longitud del intervalo.

(2) Las formulas deberan ser exactas, es decir


Z b
f (x) dx = Qn (f, a, b)
a

cuando f es un polinomio de grado n 1. Por que? Porque si interpolamos un


polinomio de grado n 1 en n puntos, obtenemos el mismo polinomio original.
Entonces integrar ese polinomio nos da la integral de la funcion de partida.

Definicion 43. Una formula de integracion numerica o de cuadratura consiste de n


puntos x1 , x2 , . . . , xn en el intervalo y n pesos w1 , w2 , . . . , wn de modo que
Z b n
X
f (x) dx (b a) wi f (xi ) =: Qn (f ; a, b).
a i=1

65
Para hallar los wi correspondientes a la formula de Newton-Cotes de n puntos, consi-
deramos el intervalo [0, 1] y recordamos que debera cumplirse que
Z b n
X
f (x) dx = Qn (f, a, b) = wi f (xi )
a i=1

para todo polinomio de grado n 1. En particular debera cumplirse para f (x) = 1,


para f (x) = x, para f (x) = x2 , . . . , y para f (x) = xn1 . Luego
Z 1
f (x) = 1 f (x) dx = 1 = w1 + w2 + + wn
0
Z 1
1
f (x) = x x dx = = w1 x1 + w2 x2 + + wn xn
2
Z 01
1
f (x) = x2 x2 dx = = w1 x21 + w2 x22 + + wn x2n
0 3
..
.
Z 1
n1 1
f (x) = x xn1 dx = = w1 xn1
1 + w2 x2n1 + + wn xnn1 .
0 n

Recordemos que los puntos x1 , . . . , xn son equiespaciados en [0, 1] es decir, x1 = 0, x2 =


1/(n 1), x3 = 2/(n 1) . . . , xn = 1 (x=linspace(0,1,n)) y que las incognitas son los
pesos wi de la formula. Entonces vemos que los pesos wi son las soluciones del siguiente
sistema de ecuaciones:

w1 + w2 + + wn = 1
1
w1 x1 + w2 x2 + + wn xn =
2
1
w1 x21 + w2 x22 + + wn x2n =
3
..
.
1
w1 xn1
1 + w2 x2n1 + + wn xnn1 = .
n
En forma matricial
1 1 ...
1
x1 w1
x2 ...
1
xn
w2 1

x21 x22
2... x2n
.. = ..
..
. .
. 1
n1 n1 n1 wn n
x1 x2 . . . xn
Por lo tanto, los pesos de la formula de Newton-Cotes se encuentran resolviendo ese
sistema. Hay otras maneras de hallar los pesos, que son mas precisas si n es grande, pero
para n 10 (que es lo que utilizaremos nosotros), esta manera es practica.
El siguiente codigo calcula las abscisas xi y los pesos wi para el intervalo [0, 1] y un
entero positivo n.

66
Funcion pesosNC.m.
function [w,x] = pesosNC(n)
% function [w,x] = pesosNC(n)
% se calculan las abscisas y los pesos
% de la formula de Newton-Cotes de n puntos

x = linspace(0,1,n);
A = ones(n,n);
for i=2:n
A(i,:) = A(i-1,:) .* x;
end
b = 1./(1:n);
b = b;

w = A\b;
El siguiente codigo calcula la integral aproximada de una funcion f utilizando la
formula de Newton-Cotes de n puntos. Las abscisas se calculan tomando n puntos equies-
paciados en el intervalo [a, b] (usando linspace).
Funcion integralNC.m.
function Q = integralNC(f,a,b,n)
% function Q = integralNC(f,a,b,n)
% se calcula la integral de f sobre [a,b]
% aproximadamente, usando la formula
% de Newton-Cotes de n puntos

[w,t] = pesosNC(n);

x = a+t*(b-a);
fx = f(x);

fx = fx(:);
w = w(:);

Q = (b-a)*sum(w .* fx);

4.2. Analisis del error para las formulas de Newton-


Cotes
Dada una funcion suave f en el intervalo [a, b], que error se comete al calcular la
integral con la formula de Newton-Cotes de n puntos?
Para saber esto, recordemos que
Z b
Qn (f ; a, b) = pn (x) dx
a

67
con pn el polinomio de grado n 1 que interpola a f en n puntos. Este polinomio
satisface, segun el Corolario 41
Mn |b a|n
max |f (x) pn (x)| ,
x[a,b] n (n 1)n
con Mn = max[a,b] |f n ()|.
Por lo tanto
Z b Z b Z b


f (x) dx Q n (f ; a, b) =

f (x) dx p n (x) dx

a
Za b a
Z b

= f (x) pn (x) dx |f (x) pn (x)| dx
a a
n
Mn |b a| Mn |b a|n+1
|b a| =
n (n 1)n n (n 1)n
Hemos demostrado entonces el siguiente teorema:
Teorema 44. Si f es una funcion C n en [a, b], entonces
Z b
Mn |b a|n+1


f (x) dx Q n (f ; a, b) ,

a
n(n 1)n
con Mn = max[a,b] |f n ()|.
Esta cota del error entre la integral exacta y la aproximada tiene el mismo problema
que la cota del error de interpolacion: Hay muchas funciones para las que ese termino no
tiende a cero (cuando Mn rapidamente.) Este problema se resuelve utilizando las
formulas de Newton-Cotes compuestas.

4.3. Formulas de Newton-Cotes compuestas


La idea de estas formulas es integrar el interpolante polinomial a trozos:
Particionamos el intervalo [a, b] en L sub-intervalos de longitud h = ba
L
. Definimos
y1 = a, y2 = a+h, y3 = a+2h, ... yL = a+(L1)h = bh, yL+1 = a+Lh = b,
y observamos que
Z b Z y2 Z y3 Z yL+1 L Z
X yi+1
f (x) dx = f (x) dx + f (x) dx + + f (x) dx = f (x) dx.
a y1 y2 yL i=1 yi

Luego, aproximamos cada integral con una formula de Newton-Cotes con n fijo:
Z yi+1
f (x) dx Qn (f, yi , yi+1 )
yi

y resulta
Z b L
X
f (x) dx Qn (f, yi , yi+1 ) .
a i=1
| {z }
QL
n (f ;a,b)

Para calcular una integral con este metodo, podemos usar el siguiente codigo.

68
Funcion NCcompuesta.m.
function Q = NCcompuesta(f,a,b,L,n)
% function Q = NCcompuesta(f,a,b,L,n)
% aproxima la integral de f sobre [a,b]
% utilizando la formula de Newton-Cotes compuesta
% de n puntos, subdividiendo en L subintervalos

y = linspace(a,b,L+1);

Q = 0;

for i=1:L
Q = Q + integralNC(f,y(i),y(i+1),n);
end

Esta implementacion es muy ineficiente, pues cada vez que se llama a integralNC se
calculan los pesos de Newton-Cotes, y estos son los mismos en todos los sub-intervalos.
La siguiente, es una implementacion un poco mas eficiente.

Funcion intNCcompuesta.m.
function Q = intNCcompuesta(f,a,b,L,n)
% function Q = intNCcompuesta(f,a,b,L,n)
% aproxima la integral de f sobre [a,b]
% utilizando la formula de Newton-Cotes compuesta
% de n puntos, subdividiendo en L subintervalos

y = linspace(a,b,L+1);
h = y(2)-y(1);

% calculamos los pesos una sola vez


[w,t] = pesosNC(n); w = w(:);

Q = 0;
for i=1:L
x = y(i)+t*h;
fx = f(x); fx = fx(:);
Q = Q + h*sum(w .* fx);
end

Observacion 45. La formula compuesta correspondiente a n = 2 se llama formula del


trapecio compuesta y la correspondiente a n = 3 se llama formula de Simpson compuesta.

69
4.4. Analisis del error para las formulas de Newton-
Cotes compuestas
Observemos lo siguiente:
Z b L Z yi+1 L


L
X X
f (x) dx Q (f, a, b) = f (x) dx Qn (f, yi , yi+1 )

n
a i=1 yi i=1

L Z yi+1
X



f (x) dx Q n (f, y i , yi+1 )

i=1 yi
 n+1  n+1
L |ba| |ba|
X Mn L Mn Mn |b a|n+1 1
L
= L = .
i=1
n (n 1)n n (n 1)n n (n 1)n Ln
Aqu hemos usado, en cada sub-intervalo [yi , yi+1 ] la estimacion del error dada por el
Teorema 44. Hemos entonces demostrado el siguiente teorema.
Teorema 46. Si f es una funcion C n en [a, b], entonces
Z b
Mn |b a|n+1 1

L
f (x) dx Qn (f ; a, b) ,

a n(n 1)n Ln
con Mn = max[a,b] |f n ()|.
Observacion 47. Observemos que si f C n , entonces Mn es un numero finito, y el lado
derecho de la formula anterior tiende a cero cuando L . Es decir, el error tiende a
cero a medida que tomamos L cada vez mas grande. Ademas, cuando mayor sea n, mas
rapido tendera a cero el error.
Pero cuidado! El error no tiende a cero si dejamos L fijo y hacemos tender n a infinito.
Por que? Pensar.

4.5. Ejercicios
4.1. Utilizar la funcion pesosnc para determinar los pesos de la formula de Newton-Cotes
y los puntos xi para n = 2, n = 3, . . . , n = 6.
4.2. Consideremos Qn (f, 0, 5) la formula de Newton-Cotes de n puntos en el intervalo
R 5 5]. Para las siguientes funciones f : R R llenar el cuadro y verificar si el error entre
[0,
0
f (x) dx y Qn (f ) tiende a cero a medida que n crece. Si no ocurre, pensar cual puede
ser el motivo. Tambien pensar por que el error da tan grande en algunos casos y por que
da cero en otros.
Z 5

n f (x) dx Qn (f, 0, 5)
0
2
3
4
..
.
8

70
Z 
1 1
(a) f (x) = , dx = tan1 (x) + C
1 + x2 1 + x2

(b) f (x) = 1.5x3 x2 + 7.6.

(c) f (x) = 3.5x2 + 2x 56.

(d) f (x) = 2x + 1.

(e) f (x) = sen(x).

(f ) f (x) = |x|3/2 .

4.3. Consideremos QL2 (f, 0, 5) la formula del trapecio compuesta con parametro de discre-
5
tizacion h = en el intervalo [0, 5]. Para cada una de las funciones del ejercicio anterior,
L
llenar un cuadro como el siguiente y verificar si el error tiende a cero y si se verifica que
el error para cada h es aproximadamente un cuarto del error para el h anterior. Si no
ocurre, pensar cual puede ser el motivo.

5
Z

h
f (x) dx QL2 (f, 0, 5)
0
1/2
1/4
1/8
1/16
..
.
1/1024

4.4. Repetir el ejercicio anterior con la formula de Simpson compuesta QL3 . Como se
reduce el error a medida que h se divide por la mitad, para cada ejemplo?
Z 1
2
4.5. Se quiere calcular ex dx utilizando la regla del trapecio compuesta, partiendo
1
el intervalo [1, 1] en L subintervalos. Hallar L de modo que el error sea menor que 103 .
Calcular la aproximacion de la integral.

4.6. Programar la funcion I = trapcomp(x,y) que reciba como argumentos una lista de
valores de x y una lista de valores de y = f (x) y calcule la aproximacion de la integral
de f en el intervalo que va desde x(1) hasta x(end) utilizando la regla del trapecio
compuesta (se supone que los xi estan equiespaciados).
Utilizar la funcion para aproximar la integral de una funcion con estos valores:

71
x y
0 0
0.1571 0.1564
0.3142 0.3090
0.4712 0.4540
0.6283 0.5878
0.7854 0.7071
0.9425 0.8090
1.0996 0.8910
1.2566 0.9511
1.4137 0.9877
1.5708 1.0000
1.7279 0.9877
1.8850 0.9511
2.0420 0.8910
2.1991 0.8090
2.3562 0.7071
2.5133 0.5878
2.6704 0.4540
2.8274 0.3090
2.9845 0.1564
3.1416 0.0000
4.7. Programar la funcion I = simpsoncomp(x,y) que reciba como argumentos una lista
de valores de x y una lista de valores de y = f (x) y calcule la aproximacion de la integral
de f en el intervalo que va desde x(1) hasta x(end) utilizando la regla de Simpson
compuesta (se supone que los xi estan equiespaciados y las listas tienen un numero impar
de valores).
Utilizar la funcion para aproximar la integral de una funcion con los valores de la
tabla del ejercicio anterior.
4.8. Se tiene la siguiente tabla de datos de una funcion f :
x y
0.0 1.0000000
0.5 0.4444444
1.0 0.1666667
1.5 0.0816327
2.0 0.0476190
2.5 0.0310078
3.0 0.0217391
3.5 0.0160643
4.0 0.0123457
4.5 0.0097800
5.0 0.0079365
Se sabe que |f 0 (x)| 1.46, que |f 00 (x)| 10 y que |f 000 (x)| 52.
R5
Se quiere aproximar la integral 0 f (x) dx usando esa tabla de valores.

72
(a) Dar una cota para el error cometido por la formula del trapecio compuesta.

(b) Dar una cota para el error cometido por la formula del Simpson compuesta.

(c) Calcular la integral con la mayor precision posible.

4.9. Se tiene la siguiente tabla de valores de f (x). Se sabe que |f 00 (x)| 12, |f 000 (x)| 12
y |f (IV ) |(x)| 4 para todo x [0, 1].

x y
0 1.0000
0.0500 0.9998
0.1000 0.9980
0.1500 0.9932
0.2000 0.9840
0.2500 0.9688
0.3000 0.9460
0.3500 0.9143
0.4000 0.8720
0.4500 0.8177
0.5000 0.7500
0.5500 0.6672
0.6000 0.5680
0.6500 0.4508
0.7000 0.3140
0.7500 0.1562
0.8000 -0.0240
0.8500 -0.2282
0.9000 -0.4580
0.9500 -0.7147
1.0000 -1.0000

R1
Que formula da menor error entre 0 f (x) dx y Q(f, 0, 1)?
La del trapecio compuesta o la de Simpson compuesta?

4.10. Calcular, con un error absoluto menor a 103 , el area de las superficies de revolucion
que se obtienen al girar la grafica de y = f (x) alrededor del eje x, para x en el intervalo
indicado.

(a) f (x) = 2 + cos(x), x [0, 2].

(b) f (x) = x(x 1)(x 2) + 2, x [0, 3].

A modo de ejemplo, mostramos las lneas que deben escribirse en MATLAB para graficar
la superficie de revolucion del tem (a).

73
x = linspace(0,2,20);
phi = linspace(0,2*pi,30);
[x,phi] = meshgrid(x,phi);
f = @(x) 2+cos(pi*x);
y = cos(phi).*f(x);
z = sin(phi).*f(x);
surf(x,y,z)

4.11. Calcular el area de la superficie de revolucion que se obtiene al girar el grafico de

f (x) = 1 + x + cos(x), x [0, 4],

alrededor del eje x. Dar el resultado con 12 dgitos exactos.

74
Captulo 5

Problemas a valores iniciales

5.1. Introduccion
El objetivo en un problema a valores iniciales (PVI) es encontrar una funcion y(t)
dado su valor en un instante inicial t = 0 y una receta f (t, y) para su pendiente:
(
y 0 = f (t, y), T0 t Tf ,
(PVI)
y(T0 ) = y0 .
En algunas aplicaciones se desea graficar una aproximacion a y(t) sobre un intervalo de
interes [T0 , Tf ] para descubrir propiedades cualitativas de la solucion. En otras, puede ser
importante conocer una estimacion precisa del valor y(t) para un tiempo t = Tf prefijado.
Los datos conocidos de (PVI) son: el valor inicial y0 y la funcion pendiente f (t, y) que
nos dice cual tiene que ser la pendiente de la solucion y(t) en cada instante de tiempo,
dependiendo de cuanto vale y. Mas precisamente:
Se llama solucion de (PVI) a una funcion y(t) definida sobre el intervalo [T0 , Tf ] que
satisface:
y(T0 ) = y0 , y 0 (t) = f (t, y(t)), para todo t [T0 , Tf ].
Consideremos por ejemplo el PVI
(
y 0 = 2y, 0 t < ,
y(0) = 3.
En este caso, el valor inicial es 3 y la funcion pendiente es f (t, y) = 2y (es una funcion
de dos variables que en realidad depende de una sola). La ecuacion diferencial y 0 = 2y
tiene una familia de soluciones, son todas las funciones de la forma y(t) = ce2t , con c
cualquier constante. La condicion inicial y(0) = 3 nos dice que queremos hallar la unica
funcion de esa familia que en t = 0 vale 3. Utilizamos la condicion inicial para despejar
c y nos da que c = 3. Luego, la solucion del PVI es y(t) = 3e2t .

5.2. Existencia y estabilidad de soluciones


Vimos un ejemplo muy sencillo donde hallar la solucion fue muy facil. En general, esto
no es tan facil, como tampoco es obvio que haya solucion del problema. A continuacion
enunciamos una propiedad que nos afirma la existencia de una solucion para (PVI).

75
Si f es una funcion continua de sus dos variables (y y t) y ademas f
y
existe y esta
acotada, entonces el problema a valores iniciales (PVI) tiene una unica solucion. Mas
aun, si L f
y
U para todo (y, t), resulta lo siguiente:

Si y, y son soluciones de y 0 = f (t, y) con y(T0 ) = y0 y y(T0 ) = y0 , entonces,

|y0 y0 |eL(tT0 ) |y(t) y(t)| |y0 y0 |eU (tT0 ) , para t [T0 , Tf ].

En palabras, el resultado anterior nos dice que las soluciones del mismo problema, con
diferentes condiciones iniciales, se alejan al menos tan rapido como eLt y no mas rapido
que eU t por la diferencia entre las condiciones iniciales.
En el ejemplo anterior, f (t, y) = 2y, luego f
y
= 2, y por lo tanto L = U = 2. En
este caso, tenemos que soluciones del mismo PVI con dos condiciones iniciales diferentes
se acercan como e2t por el error inicial. Mas precisamente, observemos las soluciones
con y0 = 3 y con y0 = 3.1. En este caso,

y(t) = 3e2t , y y(t) = 3.1e2t ,

por lo que
|y(t) y(t)| = |3e2t 3.1e2t | = |3 3.1|e2t = 0.1e2t .

Un ejemplo importante. Si estamos en un caso en que f y


0 entonces U = 0 y
tenemos que
|y(t) y(t)| |y0 y0 |, para t [T0 , Tf ].
Es decir, las soluciones no se alejan.

5.3. Metodo de Euler


Los metodos que desarrollaremos en el curso producen una sucesion de instantes de
tiempo t1 , t2 , . . . , y valores aproximados Y1 , Y2 , . . . , que se espera sean aproximados a
y(t1 ), y(t2 ), . . . . Todo lo que tenemos a disposicion es la funcion pendiente f (t, y), que
puede evaluarse cuando sea necesario.
Recordando que la definicion de derivada es
y(t + h) y(t)
y 0 (t) = lm ,
h0 h
resulta, para h > 0 pequeno,
y(t + h) y(t)
y 0 (t).
h
Si y es solucion de (PVI) entonces, para un parametro h > 0 pequeno,
y(t + h) y(t)
y 0 (t) = f (t, y(t)),
h
es decir
y(t + h) y(t) + hf (t, y(t)).

76
En palabras, conocido (o aproximado) el valor de y(t), el valor de y(t + h) es aproxima-
damente y(t) + hf (t, y(t)).

El metodo de Euler se basa en esta idea y consiste en lo siguiente:

Particionar el intervalo [T0 , Tf ] en L subintervalos de longitud h = (Tf T0 )/L.

Definir ti = T0 +(i 1) h, i = 1, 2, . . . L + 1.

Definir Y1 = y0 (Y1 = y(t1 ) = y(T0 )).

Para i = 1, 2, . . . , L, definir Yi+1 = Yi + hf (ti , Yi ).

Es decir:

t1 = T0 Y1 = y0
t2 = T0 + h Y2 = Y1 + h f (t1 , Y1 )
t3 = T0 + 2h Y3 = Y2 + h f (t2 , Y2 )
t4 = T0 + 3h Y4 = Y3 + h f (t3 , Y3 )
.. ..
. .
tL+1 = T0 + Lh = Tf YL+1 = YL + h f (tL , YL )

De esta manera se obtienen L + 1 numeros Y1 , Y2 , Y3 ,. . . ,YL+1 que se espera aproximen a


y(t1 ), y(t2 ), y(t3 ),. . . ,y(tL+1 ). En la Figura 5.1 se muestra la solucion obtenida y la exacta
para el ejemplo que venimos trabajando, con L = 20 y L = 40 sobre el intervalo [0, 4].

Figura 5.1: Solucion de (PVI) para f (t, y) = 2y, y0 = 3 sobre el intervalo [0, 4] y compa-
racion con el metodo de Euler. La lnea curva representa la solucion exacta y(t) = 3e2t .
Los asteriscos son los puntos (ti , Yi ), y los crculos los puntos (ti , y(ti )). A la izquierda
la solucion aproximada se obtuvo con L = 20 (h = 0.2) y el error global es 0.268. A la
derecha, la solucion aproximada se obtuvo con L = 40 (h = 0.1) y el error global es 0.121

A continuacion se incluye la funcion euler1.m que tiene una implementacion del


metodo de Euler.

77
Funcion euler1.m.
function [t,y] = euler1(f,inter,y0,L)
% function [t,y] = euler1(f,[T0 TF],y0,L)
% Metodo de Euler para resolver
% y = f(t,y) en [t0,TF]
% y(t0) = y0
% Usando L pasos

t = linspace(inter(1),inter(2),L+1);
h = (inter(2)-inter(1))/L;

% reservamos lugar en memoria para y


y = zeros( L+1 , 1 );

y(1) = y0;
for j = 1:L
y(j+1) = y(j) + h*f(t(j),y(j));
end

Es claro que en cada paso se comete un error, pequeno si h es pequeno, pero estos
errores de alguna manera se acumulan, y para llegar a Tf la cantidad de pasos sera mayor
cuanto menor sea h.
Para entender un poco mejor el error cometido, necesitamos definir algunas cantidades:
Error global: Se llama error global al maximo error entre y(tn ) y Yn , es decir,

gn = |y(tn ) Yn |, error global = max gn = max |y(tn ) Yn |.


1nL+1 1nL+1

Error local de truncamiento: Llamamos yj a las soluciones de y 0 = f (t, y) que pa-


san por (tj , Yj ), mas precisamente, comienzan en tj y cumplen la condicion inicial
yj (tj ) = Yj , es decir,
(
yj0 = f (t, yj ), tj t Tf ,
yj (tj ) = Yj .

Notemos que con esta definicion, y(t) = y1 (t). Definimos entonces

error local de truncamiento = j = |yj (tj+1 ) Yj+1 |,

es decir, el error local de truncamiento j es el error que se comete en el paso


j, suponiendo que no haba error acumulado. Notar que el error global es gj =
|y1 (tj ) Yj | (siempre compara con y(t) = y1 (t))
Ahora s estamos en condiciones de hacer el analisis del error global. Para fijar ideas,
supongamos que f y
0 de manera que las trayectorias no se alejan, mas precisamente,
si t tj+1 ,

|yj (t) yj+1 (t)| |yj (tj+1 ) yj+1 (tj+1 )| = |yj (tj+1 ) Yj+1 | = j .

78
Entonces
gn = |Yn y(tn )| = |Yn y1 (tn )|
|Yn yn1 (tn )| + |yn1 (tn ) yn2 (tn )| + + |y2 (tn ) y1 (tn )|
n1
X
n1 + n2 + + 1 = j .
j=1

Por lo tanto, el maximo error global puede acotarse por


n1
X L
X
max gn max j = j L max j . (5.1)
1nL+1 1nL+1 1jL
j=1 j=1

Hasta aqu, el analisis que hemos hecho es independiente del metodo, si es Euler o
algun otro. Veamos como se puede acotar j para el metodo de Euler.
Una herramienta muy utilizada para estimar y acotar el error en los metodos numericos
es el Teorema de Taylor, que enunciamos a continuacion:
Teorema 48 (Teorema de Taylor). Sea y C n+1 (I), donde I es un intervalo que contiene
a t0 . Entonces, para cada t I existe x entre t0 y t tal que
(t t0 )2 00 (t t0 )n (n) (t t0 )n+1 (n+1)
y(t) = y(t0 ) + (t t0 )y 0 (t0 ) + y (t0 ) + + y (t0 ) + y (x).
2! n! (n + 1)!
Tf T0
Usando el teorema de Taylor y considerando que h = L
y que tj+1 = tj + h,
tenemos que
h2 00 h2
yj (tj+1 ) = yj (tj ) + hyj0 (tj ) + yj (j ) = Yj + hf (tj , Yj ) + yj00 (xj )
2 | {z } 2
Yj+1

para algun xj , con tj < xj < tj+1 . Por lo tanto,


h2 00
j = |yj (tj+1 ) Yj+1 | = |yj (tj+1 ) [Yj + hf (tj , Yj )]| = |y (xj )|
2 j
y si existe M > 0 tal que maxT0 tTf |yj00 (t)| M , j = 1, . . . , L, entonces
M h2
j
, j = 1, 2, . . . , L.
2
Finalmente, acotamos el error global usando (5.1):
M h2 Mh M (Tf T0 )
max |Yn y(tn )| L max j L = |{z}
Lh = h.
1nL 1jL 2 2 2
Tf T0

Concluimos entonces que si todas las soluciones de la EDO tienen derivada segunda
acotada uniformemente por M , el metodo de Euler produce una solucion con maximo
M (Tf T0 )
error acotado por h = Const. h. Se dice que el metodo de Euler es de orden
2
uno (la potencia de h). La demostracion que hemos visto es muy simple, y analizando el
f
caso 0, permite entender la idea general que si un metodo produce en un paso un
y
error de orden hk+1 entonces el error global sera de orden hk .

79
5.4. PVI para sistemas de ecuaciones y ecuaciones
de orden superior
Consideremos ahora un sistema de ecuaciones diferenciales ordinarias. Por ejemplo,
un modelo de predador presa:
(
x01 = 0.5x1 + 0.2x1 x2 x1 (0) = 500
0
x2 = 0.8x2 0.8x1 x2 x2 (0) = 10000

Para resolverlo numericamente, primero lo transformamos en una ecuacion diferencial


ordinaria vectorial. Definimos
   0      
x1 (t) 0 x1 0.5x1 + 0.2x1 x2 x1 (0) 500
x(t) = x = 0 = x(0) = =
x2 (t) x2 0.8x2 0.8x1 x2 x2 (0) 10000
El PVI entonces resulta:  
0 0.5x1 + 0.2x1 x2
x =
0.8x2 0.8x1 x2


 
x(0) = 500


10000
Un PVI para un sistema de ecuaciones diferenciales ordinarias es un problema de la
forma: (
y 0 = f (t, y) T0 t Tf
(5.2)
y(T0 ) = y0
donde y0 Rn (y0 es un vector) y f : [T0 , Tf ] Rn Rn , es decir, f es una funcion
vectorial de dos variables, la primera (t) es escalar, y la segunda (y) es vectorial.
Con respecto a la existencia y unicidad de soluciones de (5.2), tenemos el siguiente
teorema.
fi
Teorema 49. Si f : [T0 , Tf ] Rn Rn es continua de sus dos variables (t, y) y es
yj
fi
continua, con | | M , entonces el problema (5.2) tiene solucion unica.
yj
Ejemplo 50 (Pendulo ideal). Si consideramos un pendulo de brazo rgido de longitud `,
donde no hay friccion ni resistencia del aire, el angulo (t) que forma el pendulo con la
vertical satisface la siguiente ecuacion diferencial:

g
00 (t) = sen (t)
`
donde g denota la constante de aceleracion gravita-
cional. Esta es una ecuacion diferencial ordinaria de
orden dos, pues aparecen derivadas segundas de la
incognita .

80
Este problema resulta un PVI cuando se complementa con dos condiciones iniciales:

(0) = 0 , 0 (0) = v0 ,

donde 0 denota el desplazamiento angular inicial (dato) y v0 la velocidad angular inicial


(dato).
Para resolver este PVI en la computadora, primero lo transformamos en un sistema
de ecuaciones diferenciales de primer orden, de la siguiente manera: Definimos

y1 = ,
y2 = 0 ,

de manera que

y10 = 0 = y2
g g
y20 = 00 = sen = sen y1 ,
` `
y
y1 (0) = (0) = 0 , y2 (0) = 0 (0) = v0 .
Ahora reescribimos las ecuaciones en terminos de y1 , y2 sin usar , 0 .

y10 = y2
(
y1 (0) = 0 ,
0 g
y2 = sen y1 , y2 (0) = v0 .
L
 
y
Si llamamos y = 1 resulta
y2
   
0 y2 0
y = y(0) = .
Lg sen y1 v0

Presentamos a continuacion una modificacion del codigo de la funcion euler1.m que


sirve tambien para resolver PVI para sistemas de ecuaciones diferenciales. La funcion esta
disenada con el siguiente formato:
[t,y] = euler(f, [T0 TF], y0, L)
Entradas:

f=f(t,y): Es una funcion que recibe dos argumentos, t es un escalar, y es un vector


columna de n componentes; y retorna un vector columna de n componentes, siendo
n=length(y0). Por ejemplo: f = @(t,y) [-t*y(2) ; t*(y(1)-y(2))];

[T0 TF]: Es un vector de dos componentes que indican el intervalo donde se desea
conocer la solucion.

y0: Es un vector columna que indica el dato inicial.

L: Es un numero que indica la cantidad de sub-intervalos en que se divide el intervalo


[T0 TF] para resolver por el metodo de Euler.

81
Salidas:
t: Debe ser un vector columna de L+1 componentes.
y: Debe ser una matriz de L+1 filas y n columnas. La i-esima fila debe contener el
estado y a tiempo t(i).

Funcion euler.m.
function [t,y] = euler(f,inter,y0,L)
% function [t,y] = euler(f,[t0 TF],y0,L)
% Metodo de Euler para resolver
% y = f(t,y) en [t0,TF]
% y(t0) = y0
% Usando L pasos
% y0 puede ser vectorial o escalar

t = linspace(inter(1),inter(2),L+1);
h = (inter(2)-inter(1))/L;

% reservamos lugar en memoria para y


y = zeros( L+1 , length(y0) );

y(1,:) = y0;
for i = 2:L+1
y(i,:) = y(i-1,:) + h*f(t(i-1),y(i-1,:));
end

5.5. Metodos de Runge-Kutta


Hemos visto el metodo de Euler, que resulta de orden uno, y en cada paso realiza una
evaluacion de la funcion f . Nos preguntamos: Se podra definir un metodo que utilizando
dos evaluaciones de f en cada paso resulte de orden 2? La respuesta es positiva, veamos
como puede lograrse.
Proponemos un metodo como el siguiente:

k1 = hf (tn , Yn )

k2 = hf (tn + h, Yn + k1 )

Y
n+1 = Yn + ak1 + bk2

Se pueden elegir , a, b para que el error local sea O(h3 )?


Veamos, sea y(t) la solucion del PVI siguiente:
(
y 0 = f (t, y), tn t Tf ,
y(tn ) = Yn .

El error local de truncamiento es entonces n = y(tn+1 ) Yn+1 .

82
Por el teorema de Taylor,

h2 00 h3
y(tn+1 ) = y(tn ) + hy 0 (tn ) + y (tn ) + y 000 (x),
2 3!
pero

y 0 (tn ) = f (tn , y(tn )) = f (tn , Yn ) = f n


d d
y 00 (tn ) = y 0 (t)|t=tn = f (t, y(t))|t=tn = [ft (t, y(t)) + fy (t, y(t))y 0 (t)]|t=tn
dt dt
= [ft (t, y(t)) + fy (t, y(t))f (t, y(t))]|t=tn = ftn + fyn f n .

Luego, como y(tn ) = Yn ,

h2 n  h3
y(tn+1 ) = Yn + hf n + ft + fyn f n + y 000 (x).
2 3!
Por otro lado
Yn+1 = Yn + ak1 + bk2
con

k1 = hf n
k2 = hf (tn + h, Yn + k1 )
= h f (tn ) + hft (tn , Yn ) + k1 fy (tn , Yn ) + O(h2 )
 

= hf n + h2 ftn + h k1 fyn + O(h3 )


|{z}
hf n

= hf n + h2 ftn + h2 f n fyn + O(h3 ).

Por lo tanto
Yn+1 = Yn + (a + b)hf n + bh2 ftn + f n fyn + O(h3 ).


De esta manera,

1
Yn+1 y(tn+1 ) = Yn Yn + [(a + b) 1]hf n + b(ftn + f n fyn ) (ftn + f fyn ) h2 + O(h3 ),
 
2
y sera n = |Yn+1 y(tn+1 )| = O(h3 ) si

a+b=1
1
b =
2
Elegimos la solucion simetrica

1 1
a= , b= , = 1,
2 2
y obtenemos el metodo de Runge-Kuta de orden 2:

83
Dados tn e Yn , calcular tn+1 e Yn+1 a partir de las siguientes formulas:


k1 = hf (tn , Yn )

k2 = hf (tn + h, Yn + k1 )


(RK2) 1 1
Yn+1 = Yn + k1 + k2
2 2




tn+1 = tn + h.

Para este metodo vale el siguiente resultado:

Teorema: Si todas las soluciones tienen derivada de orden tres acotada uni-
formemente por una constante M3 , entonces el metodo de Runge-Kutta de
orden 2 produce una sucesion (tn , Yn ) que cumple

max |y(tn ) Yn | Ch2 ,


1nL+1

T T
donde h = f L 0 y C depende de M3 y de la longitud del intervalo [T0 , Tf ], es
decir (Tf T0 ).

De manera analoga, pero con cuentas mas engorrosas puede deducirse el metodo de
Runge-Kutta de orden cuatro:

Dados tn e Yn , calcular tn+1 e Yn+1 a partir de las siguientes formulas:



k1 = hf (tn , Yn )

h k1


k2 = hf (tn + , Yn + )





2 2
h k2

(RK4) k3 = hf (tn + , Yn + )


2 2
k4 = hf (tn + h, Yn + k3 )



k1 + 2k2 + 2k3 + k4



Y
n+1 = Yn +
6

Cabe aclarar aqu que el metodo de Runge-Kutta de orden cuatro convergera con ese
orden cuando las derivadas de hasta orden cinco de y (y cuatro de f ) esten acotadas.
Mas precisamente Para este metodo vale el siguiente resultado:

Teorema: Si todas las soluciones tienen derivada de orden cinco acotada


uniformemente por una constante M5 , entonces el metodo de Runge-Kutta
de orden 2 produce una sucesion (tn , Yn ) que cumple

max |y(tn ) Yn | Ch4 ,


1nL+1

T T
donde h = f L 0 y C depende de M4 y de la longitud del intervalo [T0 , Tf ], es
decir (Tf T0 ).

84
La pregunta que cabe hacerse es la siguiente: Cual es la ganancia de usar un metodo
de orden superior si es computacionalmente mas costoso en cada paso de tiempo? Para
ver la ganancia, consideremos el caso en que las cotas del error de Euler, RK2 y RK4 son
h, h2 y h4 respectivamente, es decir, C = 1 en todos los casos. Recordemos que la parte
mas costosa desde el punto de vista computacional es la evaluacion de f (t, y), por lo que
interpretamos que Euler, RK2 y RK4 cuestan 1, 2 y 4 operaciones por paso de tiempo.
En la siguiente tabla mostramos el costo y el error de cada metodo para diferentes L
pensando en el intervalo [0, 1].

Euler Runge-Kutta 2 Runge-Kutta 4


L costo error costo error costo error
10 10 0.1 20 0.01 40 0.0001
20 20 0.05 40 0.0025 80 0.00000625
40 40 0.025 80 0.000625 160 0.00000039
80 80 0.0125 160 0.000156 320 0.000000024
100 100 0.01 200 0.0001 400 0.00000001 = 1 108

Vale la pena observar cual es el error de cada metodo correspondiente a un costo de


40 evaluaciones y tambien al que corresponde a 80 evaluaciones. Los metodos de orden
superior son mucho mas eficientes!! Claro, cada vez que duplicamos L, el error por el
metodo de Euler se reduce a la mitad, en cambio el error por el metodo RK2 se reduce
por 4 y el error por RK4 se reduce por 8.

5.6. Metodos de Runge-Kutta-Fehlberg (RKF)


Son metodos de paso adaptativo, basados en los de Runge-Kutta. El error local de
truncamiento se estima en terminos de la diferencia entre una solucion calculada Yn+1 y
otra solucion Yn+1 asociada a un metodo de orden superior. El objetivo es lograr un error
global menor que una tolerancia dada, a un costo bajo.
El metodo RKF45 se disena de la siguiente manera. Primero se buscan dos metodos
de Runge-Kutta, uno de orden 4 y otro de orden 5, pero de manera que los calculos
realizados para uno de ellos sirvan para el otro. Aqu se aprovecha la libertad de eleccion
de los coeficientes ki en la definicion del metodo.
Sin demostrar todos los detalles, con el objetivo de comprender como se define el
metodo, decimos lo siguiente:
Es posible elegir j , ji , i = 1, 2, . . . , j 1, j = 2, 3, . . . , 6, j , j = 1, 2, . . . , 5, j ,
j = 1, 2, . . . , 6 de manera que se cumple lo siguiente1 . Si definimos

k1 = hf (tn , Yn ),
j1
X
kj = hf (tn + j h, Yn + ji ki ), j = 2, 3, . . . , 6,
i=1

1
Los valores pueden encontrarse en las tablas 6.25 y 6.26 de la pagina 430 del libro de Atkinson

85
con h = hn+1 = tn+1 tn , y
5
X
Yn+1 = Yn + j kj ,
j=1
6
X
Yn+1 = Yn + j kj ,
j=1

entonces Yn+1 corresponde a un metodo de Runge-Kutta de orden 4 y Yn+1 a uno de


orden 5. Es importante destacar que si bien j 6= j , los coeficientes j y ji son los
mismos para ambos metodos. Por lo tanto el costo, medido en numero de evaluaciones de
la funcion f (t, y), es el mismo tanto para calcular Yn+1 como para calcular Yn+1 y Yn+1
simultaneamente.
Es decir,

n := |Yn+1 yn (tn+1 )| = O(h5 ),


n := |Yn+1 yn (tn+1 )| = O(h6 ),

donde (
yn0 = f (t, yn ),
yn (tn ) = Yn .
Luego

n = |Yn+1 yn (tn+1 )| |Yn+1 Yn+1 | + |Yn+1 yn (tn+1 )| |Yn+1 Yn+1 | = O(h5 ).


| {z } | {z }
O(h5 ) O(h6 )

La idea del metodo adaptativo es la siguiente: Fijar los parametros 0 < A << 1,
0 < P < 1 < Q, y una tolerancia tol; en cada paso hacer lo siguiente:

(1) Dado (tn , Yn ) y hn+1 , calcular Yn+1 e Yn+1


(2) Calcular Tn = |Yn+1 Yn+1 |
(3) Si Tn < hn+1 tol/(Tf T0 )
Aceptar Yn+1 y definir tn+1 = tn + hn+1 .
Si Tn < Ahn tol/(Tf T0 ) % (*) si es mucho mas pequeno que lo deseado
hn+2 = Qhn+1 % agrandar un poco h para la proxima
Fin Si
Si no
% no aceptamos Yn+1
hn+1 = P hn+1 % (**) achicar h y re-calcular
Ir a (1)
Fin Si
(4) n = n + 1;

86
Observacion 51. Cuando el algoritmo termina, digamos, en N pasos, resulta que
N N N
X X X hn tol
n Tn = tol,
n=0 n=0 n=0
ba
y por lo tanto,
max |y(tn ) Yn | Ctol,
0nN +1

f
donde C depende del maximo valor de y de la longitud del intervalo.
y
El paso marcado con (*) sirve para agrandar el paso de discretizacion hn cuando el
error es mucho mas pequeno que lo deseado. Esto permite ahorrar operaciones.
El paso marcado con (**) permite reducir el paso de discretizacion hn cuando el
error es mas grande que lo permitido.
Observacion 52. La idea de este metodo RKF45 es la base de la funcion ode45 de
MATLAB, que tiene ademas otros algoritmos adaptativos para EDOs: ode23, ode15s,
ode23s. Los que terminan en s estan disenados para problemas stiff, que usan metodos
f
implcitos y son especialmente aptos para problemas donde tiene autovalores muy
y
negativos.

5.7. Estabilidad de metodos numericos


Consideremos el siguiente PVI:
(
y 0 = 100y, t > 0,
y(0) = 1,

cuya solucion exacta es y(t) = e100t . Este es un problema estable dado que la solucion
tiende a cero cuando t y mas aun, si tomamos soluciones con y(0) = y0 y y(0) = y0 ,
entonces se cumple
|y(t) y(t)| e100t |y0 y0 |.
Es decir, la diferencia existente a tiempo t = 0 disminuye (exponencialmente!) cuando t
crece.
Consideremos ahora su resolucion con el metodo de Euler, con h = 0.1. Resulta:
Y1 =1
Y2 = Y1 + hf (t1 , Y1 ) = Y1 + h(100Y1 ) = 1 + 0.1(100 1) = 1 10 = 9
Y3 = Y2 + hf (t2 , Y2 ) = Y2 + h(100Y2 ) = 9 + 0.1(100 (9)) = 9 + 90 = 81
Y4 = Y3 + hf (t3 , Y3 ) = Y3 + h(100Y3 ) = 81 + 0.1(100 81) = 81 810 = 729
Y5 = = 6561
Y6 = = 59049
..
.
Nada que ver con la solucion!

87
Probemos con h mas pequeno, por ejemplo h = 0.05. Resulta

Y1 =1
Y2 = Y1 + hf (t1 , Y1 ) = Y1 + h(100Y1 ) = 1 + 0.05(100 1) = 1 5 = 4
Y3 = Y2 + hf (t2 , Y2 ) = Y2 + h(100Y2 ) = 4 + 0.05(100 (4)) = 4 + 20 = 16
Y4 = Y3 + hf (t3 , Y3 ) = Y3 + h(100Y3 ) = 16 + 0.05(100 16) = 16 80 = 64
Y5 = = 256
Y6 = = 1024
..
.
Nada que ver con la solucion!

Probemos con h mas pequeno, por ejemplo h = 0.02. Resulta

Y1 =1
Y2 = Y1 + hf (t1 , Y1 ) = Y1 + h(100Y1 ) = 1 + 0.02(100 1) = 1 2 = 1
Y3 = Y2 + hf (t2 , Y2 ) = Y2 + h(100Y2 ) = 1 + 0.02(100 (1)) = 1 + 2 = 1
Y4 = Y3 + hf (t3 , Y3 ) = Y3 + h(100Y3 ) = 1 + 0.02(100 1) = 1 2 = 1
Y5 = = 1
Y6 = = 1
..
.
Nada que ver con la solucion!

Probemos con h mas pequeno, por ejemplo h = 0.01. Resulta

Y1 =1
Y2 = Y1 + hf (t1 , Y1 ) = Y1 + h(100Y1 ) = 1 + 0.01(100 1) = 1 1 = 0
Y3 = Y2 + hf (t2 , Y2 ) = Y2 + h(100Y2 ) = 0 + 0.02(100 0) = 1 + 2 = 0
Y4 = Y3 + hf (t3 , Y3 ) = Y3 + h(100Y3 ) = 0 + 0.02(100 0) = 1 2 = 0
Y5 = = 0
Y6 = = 0
..
.
Esta ya se parece un poco...

Para h mas pequenos ya se parece un poco mas. Pero para h > 0.01 las soluciones
son realmente diferentes a la solucion exacta y = e100t . Es mas, si h > 0.02, Yn
cuando n .
El concepto de estabilidad mas estudiado en metodos numericos para ecuaciones di-
ferenciales tiene que ver con el comportamiento del metodo al resolver el siguiente PVI
para C: (
y 0 = y, t > 0,
y(0) = 1,

88
cuya solucion exacta para = R + iI es
 
t R t
y(t) = e = e cos I t + i sin I t .

La misma se mantiene acotada para todo t 0 si y solo si R = Re 0.

Definicion 53. La region de estabilidad de un metodo numerico para EDO se define


como el conjunto de h C tal que el metodo aplicado a
(
y 0 = y, t > 0,
y(0) = 1,

produce una sucesion {Yn }


n=1 acotada.

La motivacion principal para esta definicion es que si un metodo numerico no produce


soluciones acotadas para C con R 0, entonces no podemos esperar que funcione
bien en problemas mas complejos.
Consideramos valores de complejos porque estan relacionados con los autovalores
en el caso en que queramos resolver sistemas de ecuaciones diferenciales ordinarias. En
el caso de sistemas, las soluciones exactas de los PVI son acotadas cuando todos los
autovalores tengan parte real negativa o cero.

5.8. Region de estabilidad para los metodos de Runge-


Kutta
Region de estabilidad para el metodo de Euler.
Notemos que el metodo de Euler aplicado al problema modelo produce la sucesion

Y1 = 1,
Yn+1 = Yn + hYn = (1 + h)Yn = (1 + h)n+1 ,

por lo que la sucesion {Yn }n=1 sera acotada si y solo si |1 + h| 1. Por lo tanto, la
region de estabilidad para el metodo de Euler es

REuler = {z C : |1 + z| < 1} = B(1, 1).

Observacion 54.

Se consideran numeros complejos, pues el comportamiento para problemas vecto-


f
riales esta relacionado con los autovalores de , que pueden ser complejos.
y
Si Re > 0 no hay ningun valor de h > 0 tal que h R, pero la solucion exacta
tampoco es acotada.

Si < 0, h debe satisfacer h 2/, as que debe ser muy pequeno cuando || es
grande.

89
Cuando se quieren disenar metodos mas estables, se entiende que se desean metodos
con una mayor region de estabilidad.
f
Cuando un problema y 0 = f (t, y) tiene con autovalores de parte real muy
y
negativa (que exige h muy pequeno) se dice que la EDO es stiff (rgida). Esta
situacion es muy comun en problemas que involucran reacciones qumicas.

Region de estabilidad para RK2.


Dado Yn , el metodo RK2 aplicado al problema modelo produce el siguiente Yn+1 :

k1 = hYn ,
k2 = h(Yn + k1 ) = h(Yn + hYn ) = [h + (h)2 ]Yn ,
h h (h)2
 
k1 + k2
Yn+1 = Yn + = Yn 1 + + +
2 2 2 2
2
 
(h)
= Yn 1 + h + .
2
2 n
 
Luego, Yn+1 = 1 + h + (h)
2
y el metodo es estable si y solo si

z2
h RRK2 := {z C : |1 + z + | 1}.
2
La region R de estabilidad de RK2 puede verse en la Figura 5.2.

Region de estabilidad de RK4.


Analogamente a como se hizo para RK2 se puede ver que la region de estabilidad de
RK4 es
z 2 z 3 z 4
 

RRK4 := z C : 1 + z +
+ + 1 ,
2 3! 4!
que se ilustra en la Figura 5.2.
Las regiones de estabilidad de los metodos explcitos de un paso vistos hasta el mo-
mento son bastante pequenas. Regiones de estabilidad mas grandes se obtienen al utilizar
metodos implcitos.

5.9. Metodo Retro-Euler o Euler implcito


El metodo de Euler se puede obtener a partir de la formula de Taylor alrededor de tn ,
en efecto

y(tn+1 ) = y(tn ) + hy 0 (tn ) + O(h2 )


y(tn+1 ) y(tn ) + hf (tn , y(tn ))
Yn+1 = Yn + hf (tn , Yn )

90
Region de estabilidad Euler Region de estabilidad RK4
Region de estabilidad RK2

3 3 3

2 2 2

1 1 1

0 0 0

1 1 1

2 2 2

3 3 3

4 3 2 1 0 1 4 3 2 1 0 1 4 3 2 1 0 1

Figura 5.2: Regiones de estabilidad para metodos de Runge-Kutta. Euler o RK1 (izquier-
da), RK2 (medio), RK4 (derecha).

Si usamos la formula de Taylor alrededor de tn+1 obtenemos

y(tn ) = y(tn+1 ) hy 0 (tn+1 ) + O(h2 )


y(tn+1 ) = y(tn ) + hy 0 (tn+1 ) + O(h2 )
y(tn+1 ) y(tn ) + hf (tn+1 , y(tn+1 ))
Yn+1 = Yn + hf (tn+1 , Yn+1 )

El metodo de Euler implcito o Retro Euler se define entonces por la iteracion

Yn+1 = Yn + hf (tn+1 , Yn+1 ),

Es decir, Yn+1 es la solucion Y de la ecuacion algebraica

Y = Yn + hf (tn+1 , Y ).

Este metodo implica resolver, en cada paso, una ecuacion o sistema de ecuaciones que
en general sera no lineal. En cada paso se puede resolver con un metodo tipo Newton
(por ejemplo). Este metodo tiene un costo adicional de resolver un sistema no lineal en
cada paso de tiempo, pero permite tomar f h mucho mas grande que el metodo de Euler
f
explcito, en especial cuando < 0 y es grande (ecuaciones stiff). Veamos la region

y y
de estabilidad de Retro Euler (RE). Si aplicamos la definicion Yn+1 = Yn + hf (tn+1 , Yn+1 )
al problema modelo y 0 = y obtenemos que
1  1 n+1
Yn+1 = Yn + hYn+1 Yn+1 = Yn = Y0 .
1 h 1 h
Por lo tanto, el metodo resultara estable cuando h pertenezca a la region de estabilidad
n 1 o
RRE = z C : 1 = {z C : |1 z| 1} = B(1, 1)c ,

1z

91
que contiene a todo el semiplano complejo {z C : Re z 0}. En este caso se dice que
el metodo es incondicionalmente estable, pues h no debe cumplir ninguna condicion para
que el metodo sea estable, cuando Re 0.

5.10. Ejercicios
5.1. Verifique el funcionamiento del metodo de Euler (euler1.m), utilizandolo para re-
solver el siguiente PVI: (
y 0 = y, 0 t 1,
y(0) = 1.
Este PVI tiene solucion exacta y(t) = et . Llene la siguiente tabla:

L h error
10 0.1
20 0.05
40 0.025
80 0.0125
160 0.00625
320 0.003125

En la columna error debe ir max1iL+1 |y(ti ) Yi |. Si el metodo esta bien implemen-


tado, debera ocurrir que el error de cada casilla es aproximadamente la mitad del error
en la casilla anterior.
5.2. Resuelva el problema
(
y 0 = cos(2t2 ) ty, 0 t 4,
y(0) = 2.

con el metodo de Euler. Utilice diferentes valores de L (por ejemplo: 10, 20, 40, 80, 160,
. . . ) y grafique las soluciones que se van obteniendo. Determine visualmente un valor de
L para el que la solucion no cambia mas. Finalmente calcule el maximo y el mnimo de
la solucion en el intervalo [0, 4].
5.3. Utilizando el valor de L del ejercicio anterior, calcule las soluciones de la misma
ecuacion con condicion inicial y(0) = 1, y(0) = 0 y y(0) = 1. Grafquelas todas sobre el
mismo par de ejes y diga que ocurre a medida que el tiempo t avanza. Se acercan o se
alejan las trayectorias? Como se relaciona esto con fy
?
5.4. Utilizando L = 10000, resuelva el PVI
(
y 0 = y(1 y)(1 + y), 0 t 2,
y(0) = y0 ,

con y0 = 1.4, 1.3, 1.2, . . . , 1.3, 1.4. Superponga todas las soluciones en un grafico y
explique el comportamiento cualitativo de las soluciones.

92
5.5. Consideremos el siguiente PVI correspondiente a un sistema de EDOs:
( (
x01 (t) = x2 (t) x1 (0) = 1
0 0 t 2, .
x2 (t) = x1 (t) x2 (0) = 0
La solucion exacta es x1 (t) = cos(t), x2 (t) = sen(t). Realice una tabla similar a la del
Ejercicio 1 y verifique si el error tiende a cero con orden O(h), es decir, verifique si el
error se divide aproximadamente por la mitad cada vez que h se divide por la mitad.
5.6. La trayectoria de una partcula que se mueve en el plano esta dada por la curva
(x1 (t), x2 (t)), donde las funciones x1 y x2 son la solucion del siguiente sistema de ecua-
ciones diferenciales: (
x01 (t) = tx2 (t)
x02 (t) = tx1 (t) tx2 (t)
Resuelva este sistema en el intervalo [0, 20] con el metodo de Euler utilizando paso h =
0.05 y grafique la trayectoria de la partcula, sabiendo que en tiempo t = 0 se encontraba
en el punto (1, 1).
5.7. Programe el metodo de Runge-Kutta de orden 2, el formato debe ser:
[t,y] = rk2(f, [t0 TF], y0, L)
Donde las entradas f, [T0 Tf], y0, L y las salidas [t,y] son como se describe en el
apunte, previo a la funcion euler.m.
Verificar su funcionamiento repitiendo el ejercicio 5.5, pero con el metodo de Runge-
Kutta de orden 2, en lugar del de Euler. Si el metodo esta bien implementado, cada vez
que h se divide por la mitad, el error debera dividirse por 4(= 22 ).
5.8. Repetir el ejercicio anterior para el metodo de Runge-Kutta de orden 4. Es decir,
programar la funcion rk4 con el formato:
[t,y] = rk4(f, [t0 TF], y0, L)
Verificar su funcionamiento repitiendo el ejercicio 5.5, pero con el metodo de Runge-
Kutta de orden 4, en lugar del de Euler. Si el metodo esta bien implementado, cada vez
que h se divide por la mitad, el error debera dividirse por 16(= 24 ).
5.9. El siguiente PVI de orden 3 tiene como solucion exacta y(t) = cos(t):
y + 4y 00 + 5y 0 + 2y = 4 sen t 2 cos t
(3)



y(0) = 1


y 0 (0) = 0
y 00 (0) = 1

Resuelvala sobre el intervalo [0, 6] con Euler, RK2 y RK4 y llene una tabla como la
siguiente con el error global:
h Euler RK2 RK4
1/10
1/20
1/40
1/80
1/160
1/320

93
Determine a partir de la tabla, el valor de h y el numero de evaluaciones de f que fueron
necesarios, en cada metodo, para tener un error global:

(a) Menor a 103 . (b) Menor a 106 . (c) Menor a 1010 .

5.10. Consideremos el siguiente modelo de predador presa

x01 (t) = 3x1 (t) 0.002x1 (t)x2 (t)


x02 (t) = 0.0006x1 (t)x2 (t) 0.5x2 (t)

(a) Cual variable representa al predador y cual a la presa? Para determinar esto, puede
resolver el sistema en los siguientes casos:

(i) x1 (0) = 1000, x2 (0) = 0


(ii) x1 (0) = 0, x2 (0) = 1000

Cual de las dos especies puede sobrevivir sin la existencia de la otra?


Que especie se extingue si la otra no existe?

(b) Calcule numericamente una solucion donde la poblacion inicial de la presa es 1000
y la de predadores es 500. Dibujar la solucion, graficando ambas poblaciones con el
tiempo, y describir el fenomeno representado (utilice un metodo que usted considere
apropiado, y un intervalo de tiempo que sea representativo de lo que sucede).

5.11. Si consideramos un pendulo de brazo rgido de longitud `, donde no hay friccion


ni resistencia del aire, el angulo (t) que forma el pendulo con la vertical satisface la
siguiente ecuacion diferencial de orden dos:

g
00 (t) +
sen (t) = 0,
`
donde g = 9.81g/m2 es la constante de aceleracion gravitacio-
nal.

Supongamos (por simplicidad) que la longitud del brazo es igual a 9.81m, con lo que
obtenemos la ecuacion
00 (t) + sen (t) = 0.
Resolver esta ecuacion numericamente (utilizando ode45) en el intervalo [0, 10], en los
siguientes casos, y explicar la situacion fsica descripta (condiciones iniciales y evolucion):

(a) (0) = 0.1, 0 (0) = 0 (e) (0) = 0, 0 (0) = 1


(b) (0) = 0.7, 0 (0) = 0 (f ) (0) = 0, 0 (0) = 1.99
(c) (0) = 3.0, 0 (0) = 0 (g) (0) = 0, 0 (0) = 2
(d) (0) = 3.5, 0 (0) = 0 (h) (0) = 0, 0 (0) = 2.01

94
5.12. Un sistema qumico muy comun en la industria de procesos es el Reactor en tan-
que continuamente agitado (CSTR por su nombre en ingles: Continuously Stirred Tank
Reactor ). En este trabajo estudiaremos un reactor en tanque enfriado2 . Se supone que
el recipiente esta perfectamente mezclado, y que ocurre una reaccion exotermica e irre-
versible de primer grado A B. Un diagrama esquematico del dispositivo y la chaqueta
enfriante se muestra en la figura.

Modelado del CSTR


Un caudal constante F del agente A se alimenta al tanque. Mientras el tanque se
mantiene agitado, el producto final sale del tanque a la misma velocidad que el agente A
entra al tanque, por lo que el volumen V del reactor se mantiene constante.
El cambio de concentracion del agente A en el tanque por unidad de tiempo se modela
por
dCA (t) F 
= CAf CA (t) r(t),
dt V
donde el primer termino expresa los cambios en la concentracion de A en el tanque CA (t)
debidos a la diferencia entre ella y la concentracion de A en el flujo entrante CAf . El
segundo termino expresa los cambios de concentracion (tasa de reaccion) que ocurren
debido a la reaccion qumica en el tanque. La tasa de reaccion por unidad de volumen se
describe por la ley de Arrhenius
E
r(t) = k0 e RT (t) CA (t),
que dice que la tasa de reaccion qumica crece exponencialmente con la temperatura
absoluta en el reactor T (t), k0 es una constante no-termica, E es la energa de activacion,
R la constante de gas ideal de Boltzman.
El cambio de temperatura T (t) dentro del reactor por unidad de tiempo dTdt(t) puede
modelarse por
dT (t) F  H UA  
= Tf T (t) r(t) T (t) Tj
dt V cp cp V
Donde el primer y el tercer termino describen cambios de temperatura debidos a la dife-
rencia de temperatura entre el flujo de entrada Tf y la temperatura del lquido refrigerante
2
Una descripcion extensiva de este reactor y modelos matematicos pueden encontrarse en el libro de
Bequette Process Dynamics: Modeling, Analysis and Simulation

95
Tj con la temperatura T (t) del tanque. El segundo termino indica la influencia sobre la
temperatura del reactor causada por la reaccion qumica. En esta ecuacion, H es un
parametro de calor de reaccion, cp un termino de capacidad calorica, una densidad, U
un coeficiente de transferencia de calor, y A el area para el intercambio de calor (area de
contacto entre el refrigerante y el tanque).
Poniendo todo junto, el CSTR tiene tres senales de entrada:
CAf Concentracion de A en el caudal de entrada [kgmol/m3 ]
Tf Temperatura de la alimentacion [K]
Tj Temperatura del lquido refrigerante [K]
Dos senales de salida, o variables de estado:
y1 (t) = CA (t) Concentracion de A en el tanque reactor [kgmol/m3 ]
y2 (t) = T (t) Temperatura del reactor [K]
Despues de agrupar algunos de los parametros originales, llegamos a ocho parametros
diferentes:
F Tasa de flujo volumetrico [volumen/tiempo] [m3 /h] 1
3
V Volumen del reactor [m ] 1
k0 Factor no-termico pre-exponencial [1/h] 35 106
E Energa de activacion [kcal/kgmol] 11850
R Constante de gas de Bolzman [kcal/(kgmol K)] 1.98589
H Calor de la reaccion [kcal/kgmol] -5960
3
HD = cp Capacidad calorica por densidad [kcal/(m K)] 480
3
HA = U A Tasa total de transferencia de calor por area [kcal/(m K h)] 145
Con estas unidades, el tiempo t se mide en horas.

1. Escribir un script MATLAB para simular el reactor. Permitir que las constantes y
datos del problema sean facilmente modificadas.

2. Simular el comportamiento durante un da del reactor en los siguientes casos, y ela-


borar un pequeno informe con lo que se observa en las senales de salida, o variables
de estado (como para ser ledo por un ingeniero).

a) CA (0) = 8.5, T (0) = 310, CAf = 10, Tf = 250, Tj = 250.


b) CA (0) = 8.5, T (0) = 310, CAf = 10, Tf = 320, Tj = 320.
c) CA (0) = 8.5, T (0) = 310, CAf = 10, Tf = 250, Tj = 320.
d ) CA (0) = 8.5, T (0) = 310, CAf = 10, Tf = 320, Tj = 250.

5.13. Consideremos el siguiente PVI, para 0 t 0.5


2 2

0
u = 32u + 66v + 3 t + 3




1 1


v 0 = 66u 133v t


3 3
1
u(0) =





3
v(0) = 1



3
96
Resolver con el metodo de Runge-Kutta de orden 4 con h = 0.1, h = 0.025, h = 0.005,
h = 0.001.
Grafique las soluciones.
Para que valor de h la solucion luce razonable?

5.14. Considerar el siguiente PVI de orden dos.

x00 + 0.2x0 + sen(x) = 0


x(0) = 1.9
x0 (0) = 1

(a) Resolver el PVI con un metodo numerico para 0 t 24 y determinar aproximada-


mente (a partir de un grafico) los puntos maximos de x(t). Indicar los instantes de
tiempo en que se dan los maximos de x y el valor de x en cada maximo.

(b) Calcular x(t) y x0 (t) a tiempo t = 6 con un error menor a 104 .

Si le interesa leer un poco mas sobre los temas de este captulo, le recomendamos los
siguientes libros:

K.E. Atkinson, An introduction to Numerical Analysis, 2nd edition, John Wiley &
Sons, 1989.

Charles Van Loan, Introduction to scientific computing. A matrix-vector approach


using MATLAB, Prentice Hall, 1997.

97
Captulo 6

Ecuaciones en derivadas parciales

Una ecuacion en derivadas parciales (EDP) es una ecuacion matematica que contiene
derivadas parciales, por ejemplo:
u u
+3 = 0. (6.1)
t x
Podramos comenzar nuestro estudio determinando que funciones u(x, t) satisfacen (6.1).
Sin embargo, preferimos comenzar investigando un problema fsico.
El estudio de las EDP domina diversas areas de la ingeniera y de la fsica. He aqu
una lista (no exhaustiva) de areas altamente dependientes del estudio de EDP: acustica,
aerodinamica, elasticidad, electrodinamica, dinamica de fluidos, geofsica, transferencia
de calor, meteorologa, etc.
Con respecto al estudio de EDP seguiremos cierta filosofa de matematica aplicada en
la cual el analisis de un problema tendra tres etapas:

1. Formulacion

2. Resolucion

3. Interpretacion

En este curso estudiaremos las ecuaciones del flujo de calor que describen la trans-
ferencia de energa termica. La energa termica es causada por la agitacion de materia
molecular. El movimiento de la energa termica es causado por dos procesos basicos:
conduccion y conveccion. La conduccion resulta de las colisiones de moleculas vecinas
en las cuales la energa cinetica de la vibracion de una molecula es transmitida a la de
su vecina mas cercana. De este modo la energa termica se propaga por conduccion aun
si las moleculas no se mueven de una region a otra. Ademas, si una molecula que esta
vibrando se mueve de una region a otra, se lleva la energa termica con ella. Este tipo de
movimiento de energa termica se denomina conveccion. Para comenzar nuestro estudio
con problemas relativamente simples, estudiaremos el flujo de calor solo en casos donde
la conduccion de energa calorica es mucho mas significante que su conveccion. Es decir,
estaremos pensando en flujo de calor en el caso de solidos. Aunque la transferencia de
calor en fluidos (lquidos y gases) esta tambien gobernada principalmente por conduccion
si la velocidad del fluido es suficientemente pequena.

98
6.1. Derivacion de la Conduccion del Calor en una
Barra Unidimensional
Densidad de Energa Termica. Comenzamos considerando una barra de seccion
transversal constante de area A, orientada en la direccion del eje x (desde x = 0 hasta
x = L) como se ve en la Figura 6.1. Introducimos la cantidad de energa termica por
unidad de volumen como una variable desconocida (incognita) y la llamamos densidad
de energa termica:
e(x, t) densidad de energa termica.
Supondremos de ahora en adelante que todas las cantidades termicas son constantes
en cualquier seccion transversal (esto quiere decir que consideramos la barra como uni-
dimensional). La forma mas sencilla de lograr esto es aislar perfectamente la superficie
lateral de la barra. De este modo no hay energa pasando a traves de la superficie lateral
de la barra. La dependencia de x y t corresponde al caso en que la distribucion de
temperatura no es uniforme; la energa termica vara de una seccion transversal a otra.

Energa Termica. Consideramos un segmento finito de la barra, que va desde x = a


hasta x = b (ver Figura 6.1).

Figura 6.1: Energa calorica fluyendo hacia dentro y hacia fuera de un segmento de la
barra.

Si la energa termica es constante en toda la barra, luego la energa total en la seccion


considerada es el producto de la densidad de energa termica por el volumen de la seccion.
Dado que e(x, t) es la densidad de energa termica, la energa total en el segmento es
Z b
energa termica en la seccion = A e(x, t) dx.
a

Conservacion de la Energa Calorica. Investigaremos la conservacion de energa


calorica en esta region, seccion o segmento. Los cambios de energa calorica entre x = a
y x = b se producen a medida que transcurre el tiempo debido solo a la energa que fluye
a traves de los lados (x = a y x = b) y la energa generada dentro de la seccion (debido a
fuentes positivas o negativas de energa calorica). Ningun cambio de energa es generado
por el flujo a traves de la cara lateral, puesto que hemos supuesto que esta se encuentra

99
termicamente aislada. El proceso fundamental de flujo de calor se describe entonces por
la ecuacion

razon de cambio energa calorica que


energa generada adentro
de la energa = fluye por los costados +
por unidad de tiempo.
en el tiempo por unidad de tiempo

Esta expresion se conoce como conservacion de la energa calorica. Para la seccion en


consideracion, la razon de cambio de energa termica es

razon de cambio  Z b  Z b
d d
de la energa = A e(x, t) dx = A e(x, t) dx.
dt a dt a
en el tiempo
Rb
Tecnicamente, aqu aparece una derivada ordinaria d/dt, pues la expresion a
e(x, t) dx
depende solo de t y no depende de x. Por otro lado, para a y b fijos,
Z b Z b
d e
e(x, t) dx = (x, t) dx.
dt a a t

Flujo de Calor. En una barra unidimensional como la que estamos considerando noso-
tros, la energa termica fluye hacia la derecha o hacia la izquierda. Introducimos ahora la
variable (x, t) que llamaremos flujo de calor y que contiene la cantidad de energa termi-
ca que fluye hacia la derecha por unidad de tiempo por unidad de area. Si (x, t) < 0,
entonces la energa esta fluyendo hacia la izquierda.
La energa calorica que fluye por unidad de tiempo hacia adentro de la seccion entre
x = a y x = b esta dada por

energa calorica que energa calorica que


energa calorica que
fluye por x = a fluye por x = b
fluye por los costados = +
hacia la derecha hacia la izquierda
por unidad de tiempo
por unidad de tiempo por unidad de tiempo

Ahora bien, como (x, t) es el flujo por unidad de area y por lo tanto debe multiplicarse
por el area para saber el flujo total a traves de una seccion, tenemos que

energa calorica que energa calorica que


fluye por x = a fluye por x = b
= A(a, t), y = A(b, t).
hacia la derecha hacia la izquierda
por unidad de tiempo por unidad de tiempo

Luego

energa calorica que


fluye por los costados = A(a, t) A(b, t) = A ((a, t) (b, t)) .
por unidad de tiempo

100
Fuentes de Calor. Nuestro modelo tambien nos permitira considerar la existencia de
fuentes internas de energa termica, y utilizaremos la variable Q(x, t) para denotar la
energa calorica generada por unidad de tiempo por unidad de volumen. Esta energa
generada puede deberse por ejemplo a reacciones qumicas o a calentamiento por
medio de electricidad.
Como Q(x, t) representa la energa calorica generada por unidad de tiempo por unidad
de volumen, para obtener la energa generada por unidad de tiempo en la seccion que va
desde x = a hasta x = b debemos integrar, y obtenemos que
Z b
energa generada dentro
= A Q(x, t) dx.
de la seccionpor unidad de tiempo a

Conservacion de la energa calorica. Acorde a lo expresado en los parrafos ante-


riores, la razon de cambio de energa calorica se debe a energa termica fluyendo a traves
de los lados y a las fuentes de calor internas:
Z b Z b
e
A (x, t) dx = A ((a, t) (b, t)) + A Q(x, t) dx. (6.2)
a t a

Cancelando A, resulta
Z b Z b
e
(x, t) dx = (a, t) (b, t) + Q(x, t) dx. (6.3)
a t a

Por el teorema fundamental del Calculo, resulta


Z b

(a, t) (b, t) = (x, t) dx.
a x

y entonces la ecuacion de balance puede escribirse como


Z b Z b Z b
e
(x, t) dx + (x, t) dx Q(x, t) dx = 0.
a t a x a

Como todas las integrales estan escritas sobre el mismo intervalo [a, b] resulta que
Z b 
e
(x, t) + (x, t) Q(x, t) dx = 0.
a t x

Esta integral debe ser cero para toda seccion a < x < b, y por lo tanto, el integrando
debe ser cero. As obtenemos la siguiente ecuacion de balance:
e
(x, t) = (x, t) + Q(x, t). (6.4)
t x

Temperatura y calor especfico. Usualmente, el estado con respecto a la energa


calorica de un material se describe por medio de su temperatura y no por medio de
su densidad de energa. Por este motivo queremos encontrar la relacion existente entre
la temperatura y la densidad de energa termica, es decir, encontrar una expresion de

101
la temperatura que denotaremos con u(x, t) en terminos de la densidad de energa
termica e(x, t). Para poder relacionar la energa termica con la temperatura necesitamos
introducir el concepto de calor especfico o capacidad calorica:

energa calorica que debe administrarse a


c = calor especfico = una unidad de masa de una sustancia para
elevar su temperatura en una unidad (un grado).

En general, de los experimentos y de la definicion que hemos dado, el calor especfico c de


un material depende de la temperatura u. Por ejemplo, la energa termica necesaria para
elevar una unidad de masa de 0o C a 1o C no es la misma que la necesaria para elevar la
temperatura de 85o C a 86o C para la misma sustancia. Los problemas de flujo de calor con
el calor especfico dependiente de la temperatura son matematicamente muy complicados,
y escapan al interes de esta parte del curso. A menudo para intervalos de temperatura
restringidos, el calor especfico es aproximadamente independiente de la temperatura, y
este es el caso que consideraremos nosotros. Por otro lado, experimentos sugieren que el
calor especfico depende fuertemente del material. Como queremos que el modelo repre-
sente correctamente el caso en que la composicion de nuestra barra unidimensional vare
de una posicion a otra, permitiremos a la variable c depender de x; c = c(x). En muchos
problemas la barra esta hecha de un solo material (barra uniforme), en cuyo caso c sera
constante. La mayora de los problemas que trataremos en este libro contemplan este caso
de c constante.

Energa termica. La energa termica en una unidad de volumen con densidad de


energa termica e es e. Por otro lado, la energa termica de una sustancia tambien se
define como la energa necesaria para elevar la temperatura desde una temperatura de
referencia 0o a su temperatura actual. Para pasar de unidades de volumen a unidades de
masa necesitamos introducir la densidad de masa , que indica la masa de una unidad
de volumen. Luego, la energa termica en una unidad de volumen con densidad de masa
y densidad de energa termica e, que se encuentra a temperatura u es cu.
Si permitimos que = (x) y c = c(x) varen con x para considerar barras no
uniformes, la densidad de energa termica y la temperatura se relacionan de la siguiente
manera:
e(x, t) = c(x)(x)u(x, t). (6.5)
Esto nos dice que la energa termica por unidad de volumen es igual a la energa termi-
ca por unidad de masa (calor especfico) por la temperatura por la densidad de masa
(masa por unidad de volumen). Cuando reemplazamos la densidad de energa termica
utilizando (6.5), la conservacion de energa termica (6.4) resulta
u
c(x)(x) (x, t) = (x, t) + Q(x, t). (6.6)
t x

Ley de Fourier. Usualmente, la ecuacion (6.6) se entiende como una ecuacion con dos
incognitas: la temperatura u(x, t) y el flujo de calor (flujo por unidad de area por unidad
de tiempo) (x, t). Surge ahora la pregunta: Como y por que fluye la energa calorica?
En otras palabras, Cual es la relacion entre el flujo de energa calorica y el campo de
temperaturas?

102
Primero resumimos ciertas propiedades cualitativas del flujo de calor con las que ya
estamos familiarizados:

1. Si la temperatura es constante en una region, no hay flujo de energa calorica.

2. Si hay diferencias de temperatura, la energa calorica fluye de la region mas caliente


hacia la region mas fra.

3. Cuanto mayor es la diferencia de temperatura (para el mismo material), mayor sera


el flujo de energa calorica.

4. El flujo de energa calorica sera diferente para diferentes materiales, aun para la misma
diferencia de temperatura.

Fourier (17681830) reconocio estas propiedades y concluyo, luego de numerosos ex-


perimentos que el flujo esta dado por la formula
u
= K0 , (6.7)
x
u
que se conoce como Ley de Fourier para la conduccion del calor. Aqu es la
x
derivada de la temperatura; la pendiente de la temperatura como funcion de x para
un instante de tiempo t fijo; representa las diferencias de temperatura por unidad de
longitud. La ecuacion (6.7) dice que el flujo de calor es proporcional a la diferencia de
temperaturas (por unidad de longitud). Si la temperatura u crece a medida que x crece
u
(es decir, la temperatura es mayor a la derecha), > 0, y sabemos, por la propiedad 2
x
que la energa fluye hacia la izquierda. Esto explica la aparicion del signo menos en (6.7)
Hemos introducido la constante K0 que es un coeficiente de proporcionalidad. Este
mide la habilidad del material para conducir el calor, y se conoce con el nombre de
conductividad termica. Los experimentos indican que distintos materiales conducen el
calor de diferente manera; K0 depende del material. A igual diferencia de temperaturas,
cuanto mayor es K0 , mayor es el flujo de energa calorica. Un material con un valor bajo
de K0 sera un mal conductor de calor (bueno como aislante). Para una barra compuesta
por diferentes materiales, K0 sera funcion de x. Mas aun, experimentos muestran que la
habilidad para conducir calor para la mayora de los materiales, es diferente a diferentes
temperaturas, es decir K0 = K0 (x, u). Sin embargo, tal como lo hicimos para el calor
especfico c, la dependencia de K0 de la temperatura no es muy importante y nosotros la
supondremos solamente dependiente de x, es decir K0 = K0 (x).

Ecuacion del Calor. Si ahora tomamos la Ley de Fourier (6.7) y la reemplazamos en


la ecuacion (6.6), resulta una ecuacion en derivadas parciales
 
u u
c(x)(x) (x, t) = K0 (x) (x, t) + Q(x, t). (6.8)
t x x

En general pensamos que Q(x, t) es un dato dado, y resulta ser la temperatura u(x, t)
la unica funcion incognita. Los coeficientes termicos c, , K0 dependen del material y

103
pueden ser funciones de x. En el caso especial de una barra uniforme en que c, , K0 son
todos constantes, la ecuacion diferencial (6.8) se transforma en

u 2u
c (x, t) = K0 2 (x, t) + Q(x, t). (6.9)
t x
Si ademas suponemos que no hay fuentes de calor (Q = 0), dividiendo la ecuacion por c
la ecuacion en derivadas parciales se vuelve

u 2u u 2u
(x, t) = k 2 (x, t), o = k 2, (6.10)
t x t x
K0
donde la constante k = se llama difusividad termica, la conductividad termica divi-
c
dida por el producto del calor especfico y la densidad de masa. La ecuacion (6.10) se
conoce como ecuacion del calor ; corresponde a un caso sin fuentes de calor y propiedades
termicas constantes. Si la energa calorica esta inicialmente concentrada en un lugar, la
ecuacion (6.10) describe como se va a propagar la energa, un proceso fsico conocido co-
mo difusion. Ademas de la temperatura, existen otras cantidades fsicas que se propagan
de forma similar satisfaciendo la misma ecuacion diferencial (6.10). Por este motivo, la
ecuacion (6.10) se conoce como ecuacion de difusion. Por ejemplo, la concentracion u(x, t)
de qumicos (como ser perfumes y contaminantes) satisface la ecuacion de difusion (6.10)
en ciertas situaciones unidimensionales.

6.2. Condiciones Iniciales.


Las ecuaciones diferenciales parciales que describen el flujo de energa calorica (6.8)
u
y (6.10) tienen una derivada temporal ( ). Cuando una ecuacion diferencial ordinaria
t
tiene una derivada, el problema a valores iniciales consiste en resolver la ecuacion dife-
rencial con una condicion inicial. Si pensamos que x es la posicion de una partcula, la
segunda ley de Newton (ma = f ) se escribe como la ecuacion diferencial de segundo or-
2
den m ddt2x = f . Aqu aparecen derivadas de segundo orden. El problema a valores iniciales
consiste en resolver la ecuacion diferencial con dos condiciones iniciales, la posicion inicial
x y la velocidad inicial dxdt
. A partir de esta informacion (incluyendo el conocimiento de
las fuerzas), resolviendo la ecuacion diferencial con las condiciones iniciales, podemos pre-
decir el movimiento futuro de una partcula en la direccion x. Queremos hacer lo mismo
para nuestra ecuacion diferencial, es decir, queremos predecir las temperaturas futuras.
Como la ecuacion del calor tiene una derivada con respecto al tiempo t, debemos proveer
una condicion inicial (CI), usualmente a tiempo t = 0: la temperatura inicial. Es posi-
ble que la temperatura inicial no sea constante, sino que dependa de x. Luego, debemos
proveer una distribucion inicial de temperatura

u(x, 0) = f (x), 0 x L.

Es esta informacion suficiente para predecir la temperatura en el futuro? Sabemos la


distribucion de temperatura inicial y sabemos que la temperatura cambia acorde a la
ecuacion diferencial parcial (6.8) o (6.10). Pero aun nos falta saber que ocurre en los

104
extremos x = 0 y x = L. Sin esta informacion, no podemos predecir el futuro. Como
tenemos dos derivadas con respecto a x en la ecuacion diferencial, necesitaremos dos
condiciones en los extremos de la barra, generalmente una condicion en cada extremo.
Discutiremos estas condiciones, conocidas como condiciones de borde (CB) en la siguiente
seccion.

6.3. Condiciones de Borde (CB)


Al resolver la ecuacion del calor, ya sea (6.8) o (6.10), es necesario imponer una
condicion de borde (CB) en cada extremo de la barra. La condicion de borde apropiada
depende del mecanismo fsico en efecto en cada extremo. A menudo la condicion en la
frontera depende tanto del material que compone la barra como del material que esta
fuera de la barra. Para evitar un problema matematicamente mas difcil, supondremos
que la temperatura del ambiente donde se encuentra la barra es conocida, y no se altera
significativamente por la barra. A lo largo del curso consideraremos los siguientes tipos
de condiciones de borde:

Temperatura prescripta. En ciertas situaciones, puede suponerse que la temperatura


en uno de los extremos de la barra (por ejemplo el extremo x = 0) se conoce o esta
predeterminada y es igual a uB (t) en el instante t. En este caso, la condicion de borde se
escribe temperatura prescripta,
u(0, t) = uB (t). (6.11)
Una situacion fsica que puede representarse on esta CB es el caso en que uB (t) es la
temperatura de un bano de fluido con el cual la barra esta en contacto.

Frontera aislada. En otras situaciones es posible suponer que se conoce (o esta pres-
cripto) el flujo de calor en lugar de la temperatura, es decir

u
K0 (0, t) = (t), (6.12)
x
donde (t) es una funcion conocida o dada. Esto es equivalente a dar una condicion para
la primera derivada u/x en x = 0, es decir, se considera conocida o predeterminada la
pendiente de la curva y = u(x, t). La ecuacion (6.12) no puede ser integrada en x puesto
que la pendiente se conoce solo en el punto x = 0. El ejemplo mas simple de flujo de
calor prescripto en la frontera es cuando uno de los extremos esta perfectamente aislado.
En este caso no hay flujo en la frontera. Si el extremo x = 0 esta aislado, luego
u
(0, t) = 0. (6.13)
x

Ley de enfriamiento de Newton. Cuando un extremo de la barra unidimensional


esta en contacto con un fluido en movimiento (aire, agua, aceite, etc.), entonces las condi-
ciones hasta ahora vistas no parecen del todo apropiadas. Por ejemplo, imaginemos una
barra que esta caliente, y en contacto con aire en movimiento. El calor saldra de la barra,
calentando el aire. Y el aire se llevara el calor por el movimiento mismo. Experimentos

105
muestran que el flujo de calor que sale de la barra es proporcional a la diferencia de tem-
peratura entre la barra y la temperatura del fluido exterior. Esta condicion de frontera
se llama Ley de enfriamiento de Newton. Si la queremos escribir en el extremo x = 0, es
de la forma
u
K0 (0) (0, t) = H[u(0, t) uB (t)], (6.14)
x
donde la constante de proporcionalidad H se lama coeficiente de transferencia de calor o
coeficiente de conveccion. Esta condicion de borde involucra una combinacion lineal de u y
u
. Debemos ser cuidadosos con el signo de la constante H de proporcionalidad. Veamos,
x
si la barra esta mas caliente que el bano del fluido (u(0, t) > uB (t)), entonces el calor
fluira hacia fuera de la barra en x = 0. Luego, el calor fluye hacia la izquierda y en este
caso el flujo (x, t) debe ser negativo. Este es el motivo por el que aparece el signo menos
adelante de H en (6.14). Si hubieramos supuesto u(0, t) < uB (t) habramos arribado a
la misma conclusion respecto al signo frente a H. En un ejercicio se pide repetir este
razonamiento, para obtener que la ley de enfriamiento de Newton en el extremo derecho
de la barra (x = L) es
u
K0 (L) (L, t) = H[u(L, t) uB (t)], (6.15)
x
donde uB (t) es la temperatura externa en x = L. Inmediatamente puede apreciarse la di-
ferencia importante de signo entre la frontera izquierda (6.14) y la frontera derecha (6.15).
El coeficiente H en la ley de enfriamiento de Newton se determina experimentalmente.
Depende de las propiedades de la barra como as tambien de las del fluido (inclusive de
la velocidad con la que el fluido se mueve). Si el coeficiente es muy pequeno, muy poca
energa fluye a traves del extremo. En el lmite H 0, la ley de enfriamiento de Newton,
se convierte en la condicion de borde aislado. Podemos pensar que la ley de Newton con
H 6= 0 representa un extremo que no esta perfectamente aislado.
Cuando H es grande, mucha energa fluye a traves del extremo. En el lmite H ,
la condicion de borde se transforma en la condicion de temperatura prescripta u(0, t) =
uB (t). Esto puede verse facilmente si dividimos (6.14) por H:

K0 (0) u
(0, t) = [u(0, t) uB (t)],
H x
y tomamos lmite cuando H .

Resumen. Hemos descripto tres clases diferentes de condiciones de frontera. En x = 0


las escribimos as:

u(0, t) = uB (t) temperatura prescripta


u
K0 (0) (0, t) = (t) flujo de calor prescripto
x
u
K0 (0) (0, t) = H[u(0, t) uB (t)] ley de enfriamiento de Newton.
x
Las mismas condiciones pueden prescribirse en x = L, notando que es necesario un cambio
de signo (H se transforma en H) en la ley de enfriamiento de Newton.

106
Una condicion de borde ocurre en cada extremo. No es necesario que las condiciones
en los dos extremos sean del mismo tipo. Por ejemplo, es posible que para x = 0 se tenga
una temperatura prescripta oscilante

u(0, t) = 100 25 cos t,

mientras que el extremo derecho, x = L, se encuentre aislado


u
(L, t) = 0.
x

6.4. Distribucion de temperatura en equilibrio


6.4.1. Temperatura prescripta
Formulemos ahora un problema simple, pero tpico de flujo de calor. Si los coeficientes
termicos son constantes y no hay fuentes de energa termica (Q(x, t) = 0), entonces la
temperatura u(x, t) en una barra unidimensional 0 x L satisface
u 2u
= k 2. (6.16)
t x
La solucion de esta ecuacion en derivadas parciales debe satisfacer la condicion inicial

u(x, 0) = f (x) (6.17)

y una condicion de borde en cada extremo. Por ejemplo, cada extremo puede estar en
contacto con grandes banos de fluidos diferentes, tal que la temperatura en cada extremo
esta prescripta
u(0, t) = T1 (t) u(L, t) = T2 (t). (6.18)
Uno de los objetivos de este curso es aprender a resolver el problema (6.16)(6.18).

Distribucion de temperatura en equilibrio. Antes de comenzar a atacar un proble-


ma como el recien expuesto, discutimos una pregunta con importante interes fsico y que
es mas facil de resolver, puesto que se reduce a una ecuacion diferencial ordinaria. Con-
sideremos el caso en que las condiciones de borde en x = 0 y en x = L son estacionarias
(es decir, independientes de la variable t),

u(0, t) = T1 u(L, t) = T2 , (6.19)

donde T1 y T2 son dos constantes dadas (por ejemplo T1 = 10 y T2 = 12.)

Llamaremos solucion en estado estacionario o estado de equilibrio a una dis-


tribucion de temperatura independiente del tiempo, es decir, u(x, t) = u(x) que sea
solucion de la ecuacion diferencial (6.16) y satisfaga las condiciones de borde esta-
cionarias dadas por (6.19).

Tratemos ahora de ver si es posible hallar una solucion estacionaria. Supongamos que
u
u es una solucion en estado estacionario, entonces u no depende de t, y luego (x) = 0.
t
107
2u
Como u es solucion de (6.16), se tiene que k = 0, pero como u = u(x) depende de
x2
una sola variable, las derivadas no son parciales sino ordinarias y tenemos que u = u(x)
satisface la ecuacion diferencial ordinaria

d2 u
= 0. (6.20)
dx2

Por las condiciones de borde (6.19), u satisface

u(0) = T1 u(L) = T2 (u(0) = 10 u(L) = 12).

En general, cuando calculamos soluciones estacionarias la condicion inicial se ignora. La


ecuacion (6.20) es bien sencilla y su solucion general se obtiene integrando dos veces:

u(x) = C1 x + C2 .

Esta es tambien la ecuacion general de la recta. De las condiciones de borde se deduce


que la distribucion de temperatura en estado de equilibrio es la lnea recta que pasa por
la altura T1 (10) en x = 0 y por T2 (12) en x = L, como se muestra en la Figura 6.2.
Geometricamente vemos que hay una unica solucion de equilibrio para este problema.

Figura 6.2: Temperatura en estado de equi-


librio para condiciones de borde de tempera-
tura prescripta y sin fuentes (q = 0).

Algebraicamente, podemos determinar las constantes C1 y C2 forzando las condiciones


de borde u(0) = T1 y u(L) = T2 :

u(0) = T1 implica T1 = C2 (C2 = 10)


(6.21)
u(L) = T2 implica T2 = C1 L + C2 (C1 L + C2 = 12)

Recordemos que T1 y T2 son datos dados y que tendran un cierto valor en cada caso
particular, y que las incognitas son C1 y C2 . Resolviendo (6.21) obtenemos que C2 = T1
(C2 = 10) y C1 = (T2 T1 )/L (C1 = (12 10)/L = 2/L). Por lo tanto la unica solucion
en estado de equilibrio de la ecuacion del calor con condiciones de temperatura prescripta
en los bordes es
T2 T1 2
u(x) = T1 + x (u(x) = 10 + x).
L L
Si la barra fuera por ejemplo de longitud 4, entonces u(x) = 10 + x/2.

108
Convergencia al estado de equilibrio. Para el problema dependiente del tiem-
po (6.16) y (6.17) con condiciones de borde estacionarias (6.19), se espera que la dis-
tribucion de temperatura se modifique a medida que pase el tiempo; no va a permanecer
igual a la distribucion inicial f (x) a menos que esta coincida con la solucion estacionaria.
Si esperamos un perodo largo de tiempo, imaginamos que la influencia de las condiciones
en los extremos va a dominar el comportamiento de la temperatura en la barra: la con-
dicion inicial poco importa si estamos mirando lo que ocurre despues de mucho tiempo.
Se espera que eventualmente el perfil de la temperatura se aproxime a la distribucion de
la temperatura en equilibrio

T2 T1
lm u(x, t) = u(x) = T1 + x.
t L
Mas adelante veremos como resolver el problema evolutivo (ecuacion dependiente del
tiempo) y veremos efectivamente que este lmite es cierto. Mientras tanto, si solo nos
interesa encontrar el estado estacionario o lmite cuando t , basta con resolver el
problema estacionario que hemos visto en el parrafo anterior.

Conclusion: Para hallar la solucion estacionaria a la ecuacion del calor, basta con
reemplazar u/t por 0, y resolver la ecuacion diferencial ordinaria en la variable x
resultante.

6.4.2. Bordes aislados.


Como segundo ejemplo de calculo de soluciones en estado estacionario, consideramos
una barra unidimensional con coeficientes termicos constantes en la que no se aplican
fuentes de calor, pero esta vez con bordes aislados en x = 0 y x = L. La formulacion del
problema evolutivo es la siguiente:

u 2u
EDP: =k 2 (6.22)
t x
CI: u(x, 0) = f (x) (6.23)
u
CB1: (0, t) = 0 (6.24)
x
u
CB2: (L, t) = 0. (6.25)
x
u
El problema estacionario correspondiente se obtiene haciendo = 0. Luego la distribu-
t
cion de temperatura en estado de equilibrio satisface

d2 u
EDO: =0 (6.26)
dx2
du
CB1: (0) = 0 (6.27)
dx
du
CB2: (L) = 0, (6.28)
dx

109
d2 u
donde la condicion inicial es ignorada (por el momento). La solucion general de 2 = 0
dx
es otra vez una lnea recta arbitraria

u(x) = C1 x + C2 .

Las condiciones de borde implican que la pendiente debe ser cero en ambos extremos.
Geometricamente, cualquier lnea recta horizontal satisfara ambas condiciones de borde
simultaneamente. Luego la solucion es cualquier distribucion de temperatura constante,
du
por ejemplo: u(x) = 3, u(x) = 25.7. Algebraicamente, = C1 y entonces las dos
dx
condiciones de borde implican C1 = 0. Luego

u(x) = C2

para cualquier constante C2 . Este caso es diferente al primero en el que obtenamos


una unica solucion estacionaria. En este caso (bordes aislados) cualquier temperatura
constante es una distribucion de temperatura de equilibrio.
Esto quiere decir que si u(x, t) es la solucion del problema evolutivo (dependiente del
tiempo), esperamos que
lm u(x, t) = C2 .
t

En otras palabras, si esperamos un lapso de tiempo suficientemente largo, la distribucion


de temperatura en la barra con bordes aislados sera casi constante, lo cual es fsicamente
razonable. Sin embargo, no parece razonable que la solucion se aproxime a cualquier
constante; de que debera depender la constante C2 ? de que depende la constante a la
cual converge u(x, t) cuando t ?

La falta de unicidad se debe a que hemos ignorado completamente la condicion inicial.

En general, la temperatura en estado estacionario no satisfara la condicion inicial (a


menos que esta sea constante). Sin embargo, la constante C2 de la temperatura estacio-
naria queda determinada por la condicion inicial del problema evolutivo (6.17): como
ambos extremos estan aislados, y como estamos suponiendo que no hay fuentes de calor
(Q(x, t) = 0), la energa termica total en la barra no cambia, es decir, la energa termica
total en la barra permanece constante. Si llamamos E(t) a la energa termica total en la
barra, por lo antedicho, tenemos que dE(t)/dt = 0.
RL
En terminos matematicos, observemos que E(t) = Ac 0 u(x, t) dx, y entonces por
la ley de conservacion (como Q = 0, la razon de cambio de E(t) por unidad de tiempo es
igual al flujo por unidad de tiempo a traves de las caras en x = 0 y en x = L) tenemos
que
 Z L 
d d u u
E(t) = A c u(x, t) dx = A (0, t)A (L, t) = A K0 (0, t)+A K0 (L, t).
dt dt 0 x x

Como ambos extremos estan aislados, el lado derecho es cero y luego

d
E(t) = 0,
dt
110
por lo que E(t) es constante. En consecuencia la energa termica total inicial E(0) debe
ser igual a la energa termica total final E() = lmt E(t). Pero
Z L Z L
E(0) = c u(0, t) dx = c f (x) dx
0 0

y
Z L Z L Z L
E() = lm E(t) = lm c u(x, t) dx = c lm u(x, t) dx = c C2 dx.
t t 0 0 t 0

Luego, E(0) = E() implica que


Z L Z L
c f (x) dx = c C2 dx.
0 0

Despejando obtenemos que la unica solucion estacionaria debe ser

1 L
Z
u(x) = C2 = f (x) dx.
L 0

Esto es, la solucion en estado de equilibrio para la ecuacion del calor con bordes aislados
es la distribucion de temperatura constante cuyo valor es el promedio de la distribucion
de temperatura inicial. En este caso (bordes aislados) la condicion inicial es importante, y
la barra no se olvida completamente de la condicion inicial, se acuerda de su promedio.

6.5. Derivacion de la ecuacion del calor en 2 o 3 di-


mensiones
Introduccion. En la Seccion 6.1 hemos visto que al considerar la conduccion del calor
en una barra unidimensional, la temperatura u(x, t) satisface
 
u u
c = K0 + Q.
t x x

En el caso en que no hay fuentes de calor Q = 0 y las propiedades termicas son constantes,
la ecuacion en derivadas parciales luce

u 2u
= k 2,
t x
donde k = K0 /c. Antes de comenzar a estudiar metodos para resolver esta ecuacion,
formularemos las ecuaciones en derivadas parciales que corresponden a problemas de flujo
de calor en dos o tres dimensiones espaciales. Veremos que la derivacion y obtencion de la
ecuacion es muy similar a la que hemos hecho para el problema unidimensional, aunque
apareceran diferencias importantes. Nos proponemos derivar ecuaciones nuevas y mas
complejas (antes de resolver las mas simples) para que cuando discutamos tecnicas para
la resolucion de las EDPs, tengamos mas de un ejemplo para trabajar.

111
Energa calorica. Supongamos ahora que tenemos un solido sobre el que queremos
estudiar la propagacion de energa calorica. Comenzamos nuestra derivacion de las ecua-
ciones o modelo matematico considerando una sub-region arbitraria R contenida en el
solido. Como en el caso unidimensional, la conservacion de la energa calorica se resume
en la siguiente ecuacion:
razon de cambio energa calorica que
energa generada
de la energa fluye por la frontera
= + dentro de la region R
en la region R de la region R
por unidad de tiempo.
con respecto al tiempo por unidad de tiempo
Como ahora estamos considerando el caso de una region tridimensional, las constantes
que dependen del material dependeran de tres variables: c = c(x, y, z), = (x, y, z); y la
temperatura dependera de cuatro variables, tres (x, y y z) que dan la posicion espacial y
la cuarta (t) que representa el tiempo: u = u(x, y, z; t). Ahora bien, la energa dentro de
una sub-region arbitraria R es la integral triple
ZZZ
energa calorica en R = cu dV.
R

De aqu en adelante, dV significa integral de volumen con respecto a las tres variables x,
y, z: dV = dx dy dz.

Flujo de calor y vectores normales. Ahora necesitamos una expresion para el flujo
de energa. En el problema unidimensional el flujo de calor se define como la cantidad
de calor por unidad de area que fluye hacia la derecha ( < 0 significa que el flujo es
hacia la izquierda). En un problema tridimensional, el flujo de calor se dirige en alguna
direccion (no necesariamente alineada con alguno de los ejes), por lo que el flujo es un
campo vectorial . La magnitud de es la cantidad de energa calorica que fluye por
unidad de tiempo por unidad de area.
Por otro lado, cuando se considera la conservacion de la energa, lo unico que interesa
del flujo es la energa que pasa por unidad de tiempo a traves de la superficie que
encierra la region R (denotaremos con R a esta superficie que tambien se denomina
frontera de R). Es decir, lo que interesa de es la componente normal a la superficie
R. En cada punto de R hay dos normales, la normal exterior, (que denotaremos con
n) y la normal interior (n).

Conservacion de la energa calorica. En cada punto de R, la cantidad de energa


que fluye hacia fuera de la region R por unidad de tiempo por unidad de area es la
componente en la direccion de la normal exterior n del flujo , es decir n. Para
calcular el total de energa termica fluyendo hacia fuera de R por unidad de tiempo
debemos integrar n sobre la superficie R con respecto al diferencial de area. Es decir
ZZ
energa fluyendo hacia fuera de R por unidad de tiempo = n d,
R
o sea
ZZ
energa fluyendo hacia adentro de R por unidad de tiempo = n d.
R

112
El signo de esta integral tiene la siguiente interpretacion fsica: si es positiva, luego la
energa calorica total dentro de la barra decrece, y si es negativa, crece.
Denotemos con Q la densidad de energa termica generada por unidad de tiempo por
unidad de volumen,
RRR luego el total de energa termica generada por unidad de tiempo en
la region R es R
Q dV .
En consecuencia, la ley de conservacion de energa calorica para una region arbitraria
tridimensional R se escribe
ZZZ ZZ ZZZ
d
cu dV = n d + Q dV. (6.29)
dt R R R

Teorema de la divergencia. Cuando trabajamos en el caso unidimensional, deriva-


mos, a partir de la ley de conservacion integral, una relacion en derivadas. Hicimos esto
observando que por el teorema fundamental del calculo
Z b

(a, t) (b, t) = (x, t) dx;
a x

es decir, el flujo a traves de los extremos puede expresarse como una integral sobre toda
la porcion de la barra en consideracion. El teorema de la divergencia nos permite realizar
algo analogo para tres variables. En efecto, el teorema de la divergencia dice que si F es
un campo vectorial de clase C 1 en una region que contiene a la region R, entonces
ZZZ ZZ
div F dV = F n d.
R R

Es decir, la integral de volumen de la divergencia de cualquier campo vectorial F dife-


renciable en una region es igual a la integral sobre la superficie que encierra a la region
de la componente normal exterior del campo vectorial F.

Aplicacion del teorema de la divergencia al flujo de calor. Si aplicamos el teo-


rema de la divergencia al campo vectorial obtenemos que
ZZ ZZZ
n d. = div dV. (6.30)
R R

Recordemos aqu que = (x, y, z; t) y estamos considerando siempre t fijo, por lo que
la divergencia se toma con respecto a las tres variables espaciales x, y, z. Es decir, si
(x, y, z; t) = 1 (x, y, z; t)i + 2 (x, y, z; t)j + 3 (x, y, z; t)k,

1 2 3
div (x, y, z; t) = (x, y, z; t) + (x, y, z; t) + (x, y, z; t).
x y z

Reemplazando la igualdad (6.30) en la expresion matematica de la conservacion de la


energa dada por (6.29) obtenemos
ZZZ ZZZ ZZZ
d
cu dV = div dV + Q dV.
dt R R R

113
Como la region R bajo consideracion se encuentra fija, podemos pasar la derivada tem-
poral dentro del signo de la integral, y juntando todos los terminos del mismo lado
obtenemos ZZZ  
u
c + div Q dV = 0.
R t
Ahora bien, como esta integral es cero para toda sub-region R que uno quiera considerar,
es necesario que el integrando sea cero en todo punto:
u
c + div Q = 0,
t
o equivalentemente
u
c = div + Q. (6.31)
t

Ley de Fourier para la conduccion del calor. En problemas unidimensionales, y


por experimentos Fourier concluyo que el flujo de calor es proporcional a la derivada
u
de la temperatura con signo opuesto = K0 . El signo menos esta relacionado con
x
el hecho de que la energa termica fluye de las zonas calientes hacia las zonas fras. La
u
cantidad es el cambio en temperatura por unidad de longitud. Estas mismas ideas
x
son validas en tres dimensiones. En efecto, se puede ver que el vector de flujo de calor
u u u
es proporcional al gradiente de temperatura u = i+ j+ k, pero apunta en
x y z
la direccion opuesta:
= K0 u. (6.32)
Esta ultima expresion se conoce como ley de Fourier para la conduccion del calor,
donde nuevamente K0 se llama coeficiente de conductividad termica.

Ecuacion del calor. Si utilizamos la expresion (6.32) del flujo en la ecuacion de


conservacion (6.31) obtenemos la ecuacion en derivadas parciales
u
c = div(K0 u) + Q. (6.33)
t
En los casos en que no hay fuentes de energa termica (Q = 0) y los coeficientes termicos
son constantes, la ecuacion (6.33) se transforma en
u
= k div(u), (6.34)
t
donde k = K0 /c se llama nuevamente difusividad termica. Si utilizamos la definicion de
divergencia y gradiente, obtenemos:
2u 2u 2u
     
u u u
div(u) = (u) = + + = + + .
x x y y z z x2 y 2 z 2
Esta ultima expresion se conoce como Laplaciano de u y se denota con 2 u. Luego la
ecuacion del calor puede escribirse como
u
= k2 u. (6.35)
t
114
La ecuacion (6.35) se conoce como ecuacion del calor o ecuacion de difusion en tres
dimensiones.

Problema de valores iniciales y de frontera. Ademas de la ecuacion (6.33) o


de (6.35) la temperatura u satisface una distribucion inicial de temperatura

u(x, y, z; 0) = f (x, y, z).

La temperatura tambien satisface una condicion de frontera en cada punto de la superficie


que encierra la region de interes. La condicion de frontera puede ser de distinto tipo. La
temperatura podra estar prescripta

u(x, y, z; t) = T (x, y, z; t)

en todo punto de la frontera, donde T es una funcion conocida (dato) definida para todo
t en cada punto (x, y, z) de la frontera. Tambien es posible que el flujo a traves de la
frontera este prescripto. Frecuentemente consideraremos el caso de frontera (o parte de
ella) aislada. Esto quiere decir que no hay flujo de calor a traves de esa porcion de la
frontera. Como el vector de flujo de calor es K0 u, el calor que fluye hacia fuera de
la superficie por unidad de area es la componente normal del vector de flujo, es decir
K0 u n, donde n es el vector normal unitario exterior. Por lo tanto, en los puntos de
la frontera que se encuentran termicamente aislados se tiene que

u n = 0.

Recordemos que un es la derivada direccional de u en la direccion de la normal exterior


u
n, tambien llamada derivada normal de u, y a veces se denota con .
n
Una condicion de borde mas realista, y que aparece a menudo en las aplicaciones, es la
ley de enfriamiento de Newton. Esta dice que la energa que fluye hacia fuera por unidad
de tiempo por unidad de area es proporcional a la diferencia de temperatura entre la de
la superficie (u) y la temperatura fuera de la region (uB ). En terminos matematicos se
escribe de la siguiente manera:

K0 u n = H(u uB ).

Notemos que la constante de proporcionalidad H es positiva, puesto que si u > uB ,


entonces la energa fluira hacia fuera y K0 u n es positivo.

Estado estacionario. Si las condiciones de frontera y la fuente de calor son estaciona-


rias o independientes del tiempo, es posible que existan soluciones de estado estacionario
de la ecuacion del calor que satisfagan las condiciones de frontera dadas:

0 = div(K0 u) + Q.

Notemos ahora que al estar en dimension tres, la ecuacion de estado estacionario sigue
siendo una ecuacion en derivadas parciales. Es cierto que tenemos una variable menos (t
no aparece en esta ecuacion), pero sigue habiendo derivadas con respecto a x, y y z. En

115
el caso que las propiedades termicas sean constantes, la distribucion de temperatura en
estado de equilibrio satisfara la ecuacion
Q
2 u = ,
K0
que se conoce como ecuacion de Poisson.
Si ademas no hubiera fuentes de calor (Q = 0), la ecuacion resultara

2 u = 0;

el laplaciano de la distribucion de temperatura es cero. Esta ecuacion se conoce como


ecuacion de Laplace. Tambien se conoce como ecuacion potencial, pues el potencial
gravitacional y el potencial electrostatico la satisfacen en la ausencia de fuentes.

Problemas bidimensionales. Todos los comentarios previos acerca de problemas tri-


dimensionales son validos si la geometra del problema es tal que la temperatura solo
depende de x, y y t (la temperatura es constante en todo segmento vertical). Esto ocurre
si tenemos una placa horizontal de espesor pequeno que esta termicamente aislada arriba
y abajo. La ecuacion del calor en dos dimensiones para coeficientes constantes es entonces
 2
u 2u

u
c = K0 + + Q.
t x2 y 2

6.6. Ejercicios
R1
6.1. Hallar una funcion continua en [0, 1] tal que 0
f (x) dx = 0 pero f no sea la funcion
constantemente cero.

6.2. Si se conoce u(x, t) (x), c(x), K0 (x), dar una expresion para la energa termica
total contenida en una barra de longitud L.

6.3. Considerar una barra unidimensional 0 x L. Suponer que la energa que fluye
hacia afuera de la barra en x = L es proporcional a la diferencia de temperatura entre
el extremo derecho de la barra y una temperatura externa conocida. Escribir la ley de
enfriamiento de Newton en terminos matematicos usando la temperatura u(x, t) y la
temperatura exterior uB (t). Analizar si los signos estan correctos considerando el caso
u(L, t) > uB (t) y el caso u(L, t) < uB (t).

6.4. Consideremos dos barras unidimensionales de materiales diferentes. La primera ocu-


pa la region 0 x x0 y la segunda la region x0 x L. La funcion u1 (x, t), para
0 x x0 , t 0 denota la temperatura de la primera barra y la funcion u2 (x, t), para
x0 x L, t 0 denota la temperatura en la segunda. Se dice que estas barras, unidas
en x = x0 estan en contacto termico perfecto si se cumplen dos condiciones:

(a) La temperatura de ambas barras es la misma en x = x0 .

(b) No se pierde nada de energa calorica en x = x0 (es decir, la energa calorica que
fluye hacia afuera de una barra fluye hacia adentro de la otra).

116
Escribir ecuaciones matematicas que representen estas dos condiciones. Para ello, denotar
con c1 , c2 , 1 , 2 , K01 , K02 las capacidades caloricas, las densidades y las conductividades
termicas de ambos materiales.
6.5. Determinar la distribucion de temperatura en estado de equilibrio para una barra
unidimensional con propiedades termicas constantes con las siguientes fuentes y condi-
ciones de borde (suponer u(x, 0) = f (x))

(a) Q = 0, u(0) = 0 u(L) = T

(b) Q = 0, u(0) = T u(L) = 0


u
(c) Q = 0, (0) = 0 u(L) = T
x
u
(d) Q = 0, u(0) = T (L) =
x
Q
(e) = 1, u(0) = T1 u(L) = T2
K0
Q u
(f) = x2 , u(0) = T (L) = 0
K0 x
u
(g) Q = 0, u(0) = T (L) + u(L) = 0
x
u u
(h) Q = 0, (0) [u(0) T ] = 0 (L) =
x x
6.6. Considerar la distribucion de temperatura en equilibrio para una barra uniforme
unidimensional con fuentes de calor Q/K0 = x, sujeta a las condiciones de borde u(0) = 0
y u(L) = 0.
(a) Determinar la energa calorica generada por unidad de tiempo dentro de toda la
barra.

(b) Determinar la energa calorica fluyendo hacia fuera de la barra por unidad de tiempo
en x = 0 y x = L.

(c) Que relacion debera existir entre las respuestas a la parte (a) y (b)?
6.7. Determinar la distribucion de temperatura en equilibrio para una barra unidimen-
sional compuesta de dos materiales diferentes en contacto termico perfecto en x = 1.
Para 0 x < 1, hay un material con coeficientes c = 1 y K0 = 1 con una fuente de
calor constante Q = 1. Para la otra parte de la barra 1 < x 2 no hay fuentes (Q = 0)
y los coeficientes son c = 2, K0 = 2, con condiciones de borde u(0) = 0 y u(2) = 0.
6.8. Si ambos extremos estan aislados, concluir a partir de la ecuacion en derivadas
parciales
u u
c(x)(x) (x, t) = (K0 (x) (x, t)), 0 x L, t 0,
t x x
que la energa termica total en la barra es constante.

117
6.9. Considerar una barra unidimensional 0 x L de longitud conocida y propiedades
termicas conocidas constantes y sin fuentes de calor, en estado de equilibrio. Suponer que
la temperatura es una constante desconocida T en x = L. Determinar T si se conocen la
temperatura y el flujo en x = 0. (Llamar T0 a la temperatura y 0 al flujo en x = 0, y
encontrar una formula para T en terminos de c, , K0 , T0 y 0 ).

6.10. Los dos extremos de una barra uniforme de longitud L estan aislados. Hay una
fuente constante de energa termica Q0 6= 0 y la temperatura es inicialmente u(x, 0) =
f (x).

(a) Mostrar matematicamente que no existe una temperatura de equilibrio. Explicar


brevemente en terminos fsicos.

(b) Calcular la energa termica total a tiempo t. Dar una expresion en terminos de f (x)
y de Q0 .

6.11. Para los siguientes problemas, determinar una distribucion de temperatura en esta-
do de equilibrio (si existe). Para que valores de existen soluciones? Explicar fsicamente.

u 2u u u
(a) = + 1, u(x, 0) = f (x) (0, t) = 1 (L, t) =
t x2 x x
u 2u u u
(b) = , u(x, 0) = f (x) (0, t) = 1 (L, t) =
t x2 x x
u 2u u u
(c) = + x , u(x, 0) = f (x) (0, t) = 0 (L, t) = 0
t x2 x x
6.12. Denotemos con c(x, y, z; t) la concentracion de un contaminante (cantidad de con-
taminante por unidad de volumen)

(a) Que expresion representa la cantidad total de contaminante en la region R?

(b) Supongamos que el flujo J del contaminante es proporcional al gradiente de la con-


centracion (es esto razonable?). Expresar la ley de conservacion del contaminante.

(c) Derivar la ecuacion en derivadas parciales que gobierna la difusion del contaminante.

6.13. Mostrar que si se satisface la ecuacion de Laplace en tres dimensiones, entonces


ZZ
u n dS = 0
S

para toda superficie cerrada S. (Ayuda: usar el teorema de la divergencia). Dar una
interpretacion fsica de este resultado (en el contexto de flujo de calor).

118
Captulo 7

Metodo de Separacion de Variables

En el captulo 6 hemos desarrollado a partir de principios fsicos una comprension de


la ecuacion del calor y sus correspondientes condiciones iniciales y de frontera. Estamos
ahora preparados para abordar el problema de la resolucion matematica de algunos pro-
blemas de ecuaciones en derivadas parciales. Utilizaremos una tecnica llamada metodo de
separacion de variables. Aprenderemos la tecnica a traves de unos cuantos ejemplos.
Un problema relativamente simple, pero tpico para la ecuacion de conduccion del
calor ocurre cuando consideramos una barra unidimensional (0 x L) con coeficientes
termicos constantes. En ese caso la EDP, resulta
u 2 u Q(x, t)
=k 2 + , t 0 0 x L. (7.1)
t x c
Queremos resolver esta ecuacion con la condicion inicial

u(x, 0) = f (x), 0 x L, (7.2)

y dos condiciones de borde. Por ejemplo, si ambos extremos de la barra tienen la tempe-
ratura prescripta, entonces

u(0, t) = T1 (t) u(L, t) = T2 (t) t 0. (7.3)

El metodo de separacion de variables se utiliza cuando tanto la ecuacion diferencial como


las condiciones de borde son lineales y homogeneas.

7.1. Linealidad
As como en el estudio de ecuaciones diferenciales ordinarias, el concepto de linealidad
sera para nosotros de gran importancia. Un operador L es lineal cuando para todo par
de funciones u1 y u2 , y todo par de numeros reales c1 , c2 se satisface

L(c1 u1 + c2 u2 ) = c1 L(u1 ) + c2 L2 (u2 ). (7.4)

Un ejemplo de operador lineal es el gradiente , puesto que si c1 , c2 son numeros reales


y u1 , u2 son funciones diferenciables,

(c1 u1 + c2 u2 ) = (c1 u1 ) + (c2 u2 ) = c1 u1 + c2 u2 .

119
Otros ejemplos de operadores lineales son /t, y 2 /x2 . Y otro un poquito mas com-
plicado es el operador conocido como operador del calor:

2
k 2,
t x
que tambien es un operador lineal.
Una ecuacion se dice lineal si es de la forma

L(u) = f, (7.5)

con L un operador lineal y f conocida (dato). Los siguientes son ejemplos de ecuaciones
en derivadas parciales lineales

u 2u
=k + f (x, t) (7.6)
t x2
u 2u
= k 2 + (x, t)u + f (x, t) (7.7)
t x
2u 2u
+ =0 (7.8)
x2 y 2
u 3u
= + (x, t)u. (7.9)
t x3
Los siguientes son ejemplos de ecuaciones en derivadas parciales no-lineales

u 2u
= k 2 + (x, t)u4 (7.10)
t x
u u 3u
+u = . (7.11)
t x x3
u
Los terminos u4 y u son no-lineales; no satisfacen (7.4).
x
Si f = 0, entonces (7.5) se llama ecuacion lineal homogenea. La ecuacion del calor

u 2u
k 2 =0 (7.12)
t x
es un ejemplo de ecuacion lineal homogenea, como tambien lo son (7.8) y (7.9). De (7.4),
tomando c1 = c2 = 0, se sigue que si aplicamos un operador lineal L a la funcion u 0,
obtenemos L(0) = 0. Por lo tanto, u 0 es siempre solucion de una ecuacion lineal
homogenea. Por ejemplo, u 0 satisface la ecuacion del calor (7.12). La solucion u 0 se
llama solucion trivial. La manera mas simple de ver si una ecuacion es homogenea consiste
en reemplazar u por la funcion identicamente cero. Si u 0 satisface una ecuacion lineal,
entonces f = 0 y la ecuacion lineal es homogenea.
La propiedad fundamental de los operadores lineales es que nos permiten sumar las
soluciones de una misma ecuacion lineal y obtener otra solucion:

Principio de Superposicion. Si u1 y u2 satisfacen una ecuacion lineal homogenea,


entonces cualquier combinacion lineal de ellas u = c1 u1 + c2 u2 tambien la satisface.

120
La demostracion de este principio depende de la definicion de operador lineal. Supon-
gamos que u1 y u2 son dos soluciones de la ecuacion lineal homogenea L(u) = 0, es decir,
L(u1 ) = 0 y L(u2 ) = 0. Calculemos L(u) para u = c1 u1 + c2 u2 . De la definicion (7.4) de
operador lineal

L(u) = L(c1 u1 + c2 u2 ) = c1 L(u1 ) + c2 L(u2 ) = c1 0 + c2 0 = 0.

Luego u es solucion de la misma ecuacion lineal homogenea L(u) = 0.


Los conceptos de linealidad y homogeneidad tambien se aplican a las condiciones de
borde, en cuyo caso las variables estan evaluadas en puntos especficos. Los siguientes son
ejemplos de condiciones de borde lineales:

u(0, t) = f (t) (7.13)


u
(L, t) = g(t) (7.14)
x
u
(0, t) = 0 (7.15)
x
u
K0 (L, t) = H[u(L, t) g(t)]. (7.16)
x
Una condicion de borde no-lineal, sera, por ejemplo
u
(L, t) = u2 (L, t). (7.17)
x
De las condiciones de borde lineales (7.13)(7.16), la unica que es satisfecha por u 0
es (7.15), y por lo tanto (7.15) es la unica CB homogenea.

7.2. Ecuacion del calor con temperatura prescripta


cero en los extremos
7.2.1. Introduccion
Nos proponemos estudiar la resolucion del siguiente problema.

u 2u
EDP: =k 2 0xL t>0 (7.18)
t
( x
u(0, t) = 0
CB: t0 (7.19)
u(L, t) = 0
CI: u(x, 0) = f (x) 0 x L. (7.20)

El problema consiste en una ecuacion en derivadas parciales lineal homogenea con con-
diciones de borde lineales homogeneas. Hay dos razones para investigar este tipo de
problemas, mas alla de que lo podremos resolver por el metodo de separacion de varia-
bles. Primero, este problema es relevante desde el punto de vista fsico, correspondiente
a una barra unidimensional sin fuentes y con ambos extremos inmersos en un bano a
temperatura 0o . Estamos interesado en poder predecir como cambia la energa termica

121
inicial (representada en el dato inicial f (x)) a medida que pasa el tiempo en esta situacion
fsica relativamente sencilla. Segundo, veremos que para poder resolver el problema no-
homogeneo (7.1)(7.3), necesitaremos saber como resolver el problema homogeneo (7.18)
(7.20).

7.2.2. Separacion de variables


El metodo de separacion de variables, consiste esencialmente en buscar soluciones
del problema que tengan forma de producto

u(x, t) = (x)G(t), (7.21)

donde (x) es funcion solo de la variable x y G(t) es funcion solo de la variable t. La


funcion u(x, t), que es la candidata a solucion, dada en (7.21) debe satisfacer la ecuacion
en derivadas parciales lineal homogenea (7.18) y las condiciones de borde (7.19). Por
el momento ignoraremos la condicion inicial, pues veremos que en general la solucion
producto (7.21) no satisface la condicion inicial. Mas adelante veremos que se debe hacer
para encontrar una solucion que la satisfaga. En principio:

Buscamos todas las soluciones posibles que sean producto de una funcion de x y una
de t y que satisfagan la ecuacion diferencial y las condiciones de borde homogeneas.

Por lo mencionado en la seccion anterior, la funcion u 0 es solucion de la ecuacion


diferencial y satisface las condiciones de borde. Esta solucion se conoce como solucion
trivial, y esta siempre presente. Tengamos pues en mente que estamos buscando soluciones
producto no-triviales.
Seamos francos desde el comienzo, no existe ninguna razon clara por la que elegimos
la forma (7.21). Daniel Bernoulli invento esta tecnica en los 1700s, y funciona, como ya
veremos.
Supongamos entonces que u(x, t) = (x)G(t) ya es una solucion de la ecuacion dife-
rencial que tambien satisface las condiciones de borde. Veamos que deben satisfacer y
G para que esto sea posible. Observemos que usando la forma (7.21) se tiene que

u dG(t) 2u d2 (x)
(x, t) = (x) , (x, t) = G(t).
t dt x2 dx2
En consecuencia la ecuacion del calor (7.18) implica que

dG(t) d2 (x)
(x) =k G(t). (7.22)
dt dx2
Ahora nos damos cuenta de que podemos separar variables dividiendo ambos miembros
de (7.22) por el producto (x)G(t):

1 dG(t) 1 d2 (x)
=k .
G(t) dt (x) dx2
Se ve que las variables han sido separadas en el sentido que el lado izquierdo es solo
funcion de la variable t y el lado derecho es solo funcion de la variable x. Podemos

122
continuar trabajando con esta expresion, pero es conveniente dividir tambien por k, y
luego
1 dG 1 d2
= . (7.23)
kG dt
| {z } dx2
| {z }
funcion de t funcion de x

Como es posible que una funcion solamente dependiente de t sea igual a una funcion que
depende solamente de x? La unica posibilidad es que ambas expresiones sean constantes
e independientes tanto de x como de t. Y por la igualdad deben ser iguales a la misma
constante:
1 dG 1 d2
= = , (7.24)
kG dt dx2

donde es una constante arbitraria conocida como constante de separacion. En un


momento explicaremos la aparicion del misterioso signo menos, que fue introducido solo
por conveniencia.
La ecuacion (7.24) equivale a dos ecuaciones diferenciales ordinarias, una para G(t) y
otra para (x):

d2
= (7.25)
dx2
dG
= kG. (7.26)
dt

Tenemos ahora tres incognitas: , G, y . Para hallar las soluciones producto (7.21)
debemos resolver las dos equaciones diferenciales ordinarias que acabamos de deducir, y
ver para que constantes estas soluciones no dan la solucion trivial.
Repetimos que es constante, y es la misma en ambas ecuaciones (7.25) y (7.24). Las
soluciones producto tambien deben satisfacer las dos condiciones de borde. Por ejemplo,
u(0, t) = 0 implica que (0)G(t) = 0. Hay aqu dos posibilidades. O bien G(t) 0 (
quiere decir que es identicamente cero, para todo t), o (0) = 0. Si G(t) 0, entonces
u 0 y obtuvimos la solucion trivial. Como estamos buscando soluciones no-triviales,
descartamos este caso y suponemos G(t) 6 0. Si G(t) 6 0, es necesario que

(0) = 0. (7.27)

Del mismo modo, observando la condicion de borde u(L, t) = 0, obtenemos que

(L) = 0. (7.28)

Los factores y G intervinientes en las soluciones producto, ademas de satisfacer dos


ecuaciones diferenciales ordinarias (7.25) y (7.26), deben satisfacer las condiciones de
borde (7.27) y (7.28).

123
Conclusion: para encontrar las soluciones de variables separables u(x, t) =
(x)G(t), debemos encontrar las ternas (, G, ) para las cuales se satisfagan las
siguientes ecuaciones simultaneamente:

d2
=
dx2
dG
= kG.
dt

7.2.3. Ecuacion dependiente del tiempo


La ventaja del metodo de separacion de variables es que transforma una ecuacion en
derivadas parciales, que no sabemos resolver, en dos ecuaciones diferenciales ordinarias.
Las condiciones de borde imponen dos condiciones en la ecuacion diferencial ordinaria
que depende de x. La ecuacion que depende del tiempo (7.26) no tiene (aun) ninguna
dG
condicion. Solo = kG. Resolvamosla antes de resolver la otra. Esta ecuacion es
dt
una ecuacion de primer orden con coeficientes constantes. Podemos obtener su solucion
general facilmente. En este caso, la solucion general es

G(t) = c ekt . (7.29)

La solucion de la ecuacion dependiente del tiempo es una simple exponencial. Recordemos


que es la constante de separacion, que por el momento es arbitraria y puede tomar
cualquier valor. Sin embargo, eventualmente descubriremos que solo puede tomar ciertos
valores.

7.2.4. Problema a valores en el borde


La parte dependiente de la variable espacial x de la solucion producto, (x), satisface
una ecuacion diferencial ordinaria (EDO) con dos condiciones de borde homogeneas:

d2
=
dx2
(7.30)
(0) = 0
(L) = 0.

Llamamos a (7.30) problema a valores en el borde para ecuaciones diferenciales


ordinarias. En los cursos donde se ensena ecuaciones diferenciales ordinarias, solo se
estudian problemas a valores iniciales. Por ejemplo (pensando en la segunda ley de
d2 y
Newton), resolvemos ecuaciones diferenciales ordinarias de segundo orden (m 2 = F )
dt
dy
sujetas a dos condiciones iniciales (y(0) y (0) dadas) ambas en el mismo instante de
dt
tiempo (t = 0). Pero (7.30) es muy diferente. Es un problema a valores en el borde, pues
las condiciones no se dan en el mismo lugar, sino en dos lugares diferentes, x = 0 y x = L.

124
No hay ninguna teora simple que garantice que la solucion existe o es unica para este tipo
de problemas. En particular, notamos que (x) 0 satisface la EDO y ambas condiciones
de borde homogeneas, sin importar el valor de , aun para < 0. Esta solucion se conoce
con el nombre de solucion trivial del problema a valores de borde. Como u(x, t) =
(x)G(t), corresponde a u(x, t) 0, si las soluciones de (7.30) fueran unicas, (x) 0
sera la unica solucion; y no podramos obtener soluciones no-triviales de una EDP lineal
homogenea por el metodo de separacion de variables. Afortunadamente s existen otras
soluciones de (7.30), aunque no para cualquier valor de sino solo para algunos. Veremos
a continuacion que hay ciertos valores de , llamados autovalores de (7.30), para los
cuales existen soluciones no-triviales (x). Una (x) no-trivial, correspondiente a algun
valor de se llama autofuncion correspondiente al autovalor .

Un numero se llama autovalor de la ecuacion


d2
= , (0) = 0, (L) = 0, (7.31)
dx2
si y solo si existe una funcion 6 0 que satisface (7.31)

Tratemos de determinar los autovalores . En otras palabras, para que valores de


existe solucion no-trivial de (7.30)? Resolvamos (7.30) directamente. La ecuacion es
de segundo orden y homogenea con coeficientes constantes: usualmente se obtienen dos
soluciones independientes en forma de exponenciales (x) = erx . Sustituyendo esta ex-
ponencial en la ecuacion diferencial obtenemos el polinomio caracterstico r2 = . Las
soluciones correspondientes a las dos races tienen diferentes propiedades dependiendo
del valor de . Existen al menos tres casos:

1. >
0: las dos races son puramente imaginarias y son los numeros complejos r =
i .

2. = 0: las dos races son nulas r = 0.



3. < 0: las dos races son reales y opuestas r = .

Autovalores y autofunciones para > 0. Consideremos primero el caso > 0. La


2
ecuacion diferencial ddx2 = tiene soluciones oscilantes. Todas ellas son las combina-

ciones lineales de cos x y sen x. Entonces, la solucion general de (7.30) en el caso
> 0 es
(x) = c1 cos x + c2 sen x. (7.32)
Si exigimos a la solucion general, que cumpla las condiciones de borde, obtenemos

0 = (0) = c1 cos 0 + c2 sen 0 = c1 .

Luego c1 = 0 y (x) = c2 sen x. Para satisfacer la condicion de frontera en x = L, es
necesario que
0 = c2 sen L.

125
Si c2 = 0, obtenemos la solucion trivial (x) 0 que no nos interesa. Si c2 6= 0 entonces
tenemos que buscar todos los valores de para los que

sen L = 0.

En otras palabras, L debe ser un cero de la funcion seno, es decir un multiplo entero de
: L = n. Como hemos supuesto > 0, n toma los valores 1, 2, . . . . Los autovalores
son entonces  n 2
= , n = 1, 2, 3 . . . . (7.33)
L
2
La autofuncion correspondiente al autovalor = n L
es
nx
(x) = c2 sen x = c2 sen (7.34)
L
donde c2 es una constante arbitraria. A menudo elegimos una autofuncion seleccionando
un valor no-nulo para c2 , por ejemplo c2 = 1. Debemos recordar que cualquier autofuncion
puede ser multiplicada por una constante arbitraria y seguir siendo autofuncion del
mismo autovalor pues la ecuacion es lineal y homogenea.

Autovalores y autofunciones para = 0. Ahora determinaremos si = 0 es un


autovalor de (7.30). El caso = 0 es especial, la solucion general en este caso es
(x) = c1 + c2 x.
Para determinar si = 0 es un autovalor, debemos aplicar las condiciones de borde a la
solucion general . La condicion (0) = 0 implica c1 = 0 y luego (x) = c2 x. La condicion
(L) = 0 implica c2 L = 0. Como la longitud de la barra L es positiva, c2 = 0 y por lo
tanto (x) 0, la solucion trivial. En este caso, decimos que = 0 no es un autovalor.
Debemos estar atentos pues = 0 no es un autovalor en este caso, pero s puede serlo en
otros casos, por ejemplo cuando consideremos bordes termicamente aislados.

Autovalores y autofunciones para < 0. Existen autovalores negativos? Si < 0,


la solucion de
d2
=
dx2
no es difcil, pero debemos ser cuidadosos. Las
races del
polinomio caracterstico son
x x
r = , y por lo tanto las soluciones son e ye . La solucion general es

x
(x) = c1 e + c2 e x
. (7.35)
A menudo, se utilizan tambien las funciones hiperbolicas en lugar de estas exponenciales.
Como repaso, las definiciones de las funciones hiperbolicas son
ez + ez ez ez
cosh z = senh z = ,
2 2
simplemente combinaciones lineales de exponenciales. Notemos que senh 0 = 0 y cosh 0 =
1 (analogo a lo que ocurre con las funciones trigonometricas). Tambien notemos que
d d
cosh z = senh z senh z = cosh z,
dz dz
126
similarmente a lo que ocurre con las trigonometricas, pero mas faciles de recordar por la
falta del signo menos. Otras propiedades importantes son las siguientes:
cosh z 6= 0 para todo z;
senh z = 0 solo si z = 0.
Como ambas funciones hiperbolicas son sumas de exponenciales y son independientes,
la solucion general tambien se puede expresar como

(x) = c3 cosh x + c4 senh x, (7.36)
una forma equivalente a (7.35). Aplicamos ahora las condiciones de borde a la solucion

general (7.36). La condicion (0) = 0 implica c3 = 0 y luego (x) = c4 senh x.
La condicion (L) = 0 implica c4 senh L = 0. Pero senh z = 0 solo para z = 0 y
entonces, como 6= 0 y L > 0, obtenemos c4 = 0 quedandonos nuevamente la solucion
trivial. Por lo tanto no hay autovalores negativos para este problema.

Autofunciones - Resumen. Resumimos ahora lo que hemos concluido acerca de los


autovalores y autofunciones del problema
d2
=
dx2
(0) = 0
(L) = 0.
Los autovalores son todos positivos y dados por
 n 2
n = , n = 1, 2, 3, . . .
L
y las correspondientes autofunciones son
nx
n (x) = sen .
L

7.2.5. Soluciones producto y el principio de superposicion


Juntando lo que hemos obtenido en las dos ultimas secciones, vemos que:
Si u(x, t) = (x)G(t) satisface
u 2u
= k 2, u(0, t) = 0, u(L, t) = 0,
t x
entonces
kt
 n 2
(x) = c2 sen x, G(t) = ce , y =
L
para algun entero positivo n. Escrito de otra forma,
nx n 2
(x) = c2 sen , G(t) = ce( L ) kt
;
L
para algun entero positivo n.

127
Por lo tanto, todas las soluciones producto de la ecuacion del calor son
nx ( n 2
u(x, t) = B sen e L ) kt , n = 1, 2, 3, . . .
L
donde B es una constante arbitraria. Es decir, para cada numero real B y cada entero
positivo n, la expresion anterior es una solucion de la ecuacion del calor con condiciones
de borde de temperatura nula.
Ejemplos: las siguientes funciones son soluciones de la ecuacion del calor con condi-
ciones de borde de temperatura nula:
3x 922 kt
u1 (x, t) = sen e L
L
x 22 kt
u2 (x, t) = 4.5 sen e L .
L
Y como la ecuacion y las condiciones de borde que estamos considerando son lineales y
homogeneas, tambien
3x 922 kt x 22 kt
u3 (x, t) = sen e L + 4.5 sen e L
L L
es una solucion.
Que condicion inicial satisfacen estas tres soluciones? Basta reemplazar t por cero
para ver que
3x
u1 (x, 0) = sen
L
x
u2 (x, 0) = 4.5 sen
L
3x x
u3 (x, 0) = sen + 4.5 sen .
L L
No parece haber mucha libertad para elegir condiciones iniciales generales. Nos ocupare-
mos de este tema en la proxima seccion.

Problema a valores iniciales. Supongamos como ejemplo que queremos resolver el


siguiente problema a valores iniciales:
u 2u
EDP: =k 2
t x
CB: u(0, t) = 0
u(L, t) = 0
3x
CI: u(x, 0) = 4 sen .
L
n 2
La solucion producto u(x, t) = B sen nx L
e( L ) kt satisface la condicion inicial u(x, 0) =
B sen nx
L
. Por lo tanto, eligiendo n = 3 y B = 4, se satisface la condicion inicial, y luego
la solucion es
3x ( 3 2
u(x, t) = 4 sen e L ) kt .
L
Se puede demostrar que este problema fsico tiene una unica solucion, por lo que no
importa el metodo utilizado para resolverlo. Siempre obtendramos la misma.

128
Principio de superposicion. Las soluciones producto son soluciones muy particu-
lares, pues solo sirven cuando la condicion inicial tiene la forma apropiada u(x, 0) =
B sen nx
L
. Sin embargo, este tipo de soluciones es muy util tambien en muchas otras
situaciones. Consideremos la misma EDP con las mismas condiciones de borde pero con
la condicion inicial
3x 8x
u(x, 0) = 4 sen + 7 sen .
L L
La solucion de este problema puede obtenerse sumando dos soluciones producto:
3x ( 3 2 8x ( 8 2
u(x, t) = 4 sen e L ) kt + 7 sen e L ) kt .
L L
Inmediatamente vemos esta funcion resuelve la EDP, las CB y tambien la CI.

Superposicion (extendida). El principio de superposicion puede extenderse para


mostrar que si u1 , u2 ,. . . ,uM son soluciones de un problema lineal homogeneo, enton-
ces cualquier combinacion lineal de ellas:
M
X
c1 u1 + c2 u2 + + cM uM = cn u n
n=1

es tambien una solucion. Como sabemos del metodo de separacion de variables que la
n 2
funcion sen nx e( L ) kt es solucion de la ecuacion del calor para todo entero n positivo,
L
entonces cualquier combinacion lineal de estas soluciones es tambien solucion de la misma
ecuacion del calor con las mismas condiciones de borde homogeneas. Por lo tanto
M
nx ( n 2
e L ) kt
X
u(x, t) = Bn sen (7.37)
n=1
L

es solucion de la ecuacion del calor (con condiciones de borde nulas) para cualquier M y
cualesquiera valores de Bn . Entonces hemos ahora extendido la familia de soluciones. De
soluciones producto, hemos pasado a combinaciones lineales de soluciones produc-
to. Si en (7.37) tomamos t = 0 vemos que
M
X nx
u(x, 0) = Bn sen .
n=1
L

Por lo que podemos resolver la ecuacion del calor para cualquier condicion inicial de la
forma
M
X nx
u(x, 0) = f (x) = Bn sen .
n=1
L
Que hacemos si tenemos que resolver la ecuacion del calor con un dato inicial f (x) que
no es de esta forma? La teora de las series de Fourier dice que:

1. Cualquier funcion f (x) (con algunas restricciones razonables) puede ser aproximada
(en algun sentido) por combinaciones lineales de sen nx
L
.

129
2. La aproximacion tal vez no sera buena para M pequeno, pero mejora a medida que
M crece.

3. Mas aun, si consideramos el lmite cuando M , entonces la serie infinita converge


a f (x).

Afirmamos entonces que cualquier dato inicial f (x) se puede escribir como una com-
binacion lineal infinita de sen nx
L
, conocida como serie de Fourier:

X nx
f (x) = Bn sen . (7.38)
n=1
L

Lo que es mas importante es que la serie infinita correspondiente



nx ( n 2
e L ) kt
X
u(x, t) = Bn sen (7.39)
n=1
L

es solucion de nuestra ecuacion del calor.

7.2.6. Calculo de los coeficientes Bn


La solucion (7.39) es la solucion que buscamos siempre que los coeficientes Bn satis-
fagan (7.38). Pero si tenemos un dato inicial f (x), como determinamos los coeficientes
de Fourier Bn para que esta hipotesis se cumpla? Dada la funcion f (x), los coeficientes
Bn son incognitas de un sistema de infinitas ecuaciones (para cada x en el dominio te-
nemos una ecuacion). La tecnica para resolver este problema esta basada en la siguiente
propiedad de las funciones trigonometricas:
Z L (
nx mx 0 si m 6= n
sen sen dx = (7.40)
0 L L L/2 si m = n,

donde m y n son enteros positivos. Como ejemplo, si consideramos L = 1 valen las


siguientes identidades
Z 1 Z 1
1
sen(3x) sen(5x) dx = 0, sen2 (3x) dx = ,
0 0 2

y para L = 2, valen las siguientes


Z 2 Z 1
16x 4x 8x 2
sen sen dx = 0, sen2 dx = = 1,
0 2 2 0 2 2

Volvamos a lo que nos interesa, utilizar esta propiedad para encontrar un modo de deter-
minar Bn . Supongamos entonces que

X nx
f (x) = Bn sen ,
n=1
L

130
multipliquemos ambos lados por sen mx
L
para un m fijo independiente de n. Obtenemos

mx X nx mx
f (x) sen = Bn sen sen .
L n=1
L L

Ahora integramos de x = 0 a x = L y obtenemos


Z L Z L
mx X nx mx
f (x) sen dx = Bn sen sen dx.
0 L n=1 0 L L

Ahora bien, a que equivale cada termino de la suma infinita del lado derecho? Recor-
demos que m esta fijo (por ejemplo, supongamos m = 23), y que queremos evaluar las
integrales para cada n desde 1 hasta . Entonces el primer termino es
Z L (
1x mx 0 si m 6= 1
sen sen dx =
0 L L L/2 si m = 1
( = 0 si m = 23.)

Sucesivamente, para todo n 6= m la integral da cero. En el caso n = m la integral da


L/2 y entonces la serie deja de ser una suma infinita porque todos los terminos son cero
excepto uno: el que esta en la posicion m. Por lo tanto
Z L
mx L
f (x) sen dx = Bm .
0 L 2
En consecuencia Z L
2 mx
Bm = f (x) sen dx. (7.41)
L 0 L
Este procedimiento se puede hacer para cada m = 1, 2, 3, . . . y as (7.41) resulta una
formula para calcular los coeficientes de Fourier de f (x).

7.2.7. Resumen
Resumamos el metodo de separacion de variables para el ejemplo

u 2u
EDP: =k 2 t 0, 0xL
t x
CB1: u(0, t) = 0 t0
CB2: u(L, t) = 0 t0
CI: u(x, 0) = f (x) 0 x L.

1. Asegurarse de tener una EDP lineal y homogenea con condiciones de borde homogeneas.

2. Temporalmente ignorar la condicion inicial CI.

3. Separar variables (determinar las ecuaciones diferenciales ordinarias que aparecen al


buscar soluciones producto) e introducir una constante de separacion.

131
4. Determinar las constantes de separacion como los autovalores de un problema a valores
de borde (utilizar las condiciones de borde CB).

5. Resolver las otras ecuaciones diferenciales ordinarias para los autovalores encontrados.
Indicar todas las soluciones producto de la EDP que se obtienen por este metodo.

6. Aplicar el principio de superposicion (para una combinacion lineal de todas las solu-
ciones producto)

7. Intentar satisfacer la condicion inicial.

8. Determinar los coeficientes utilizando alguna relacion integral entre las autofunciones.

Estos pasos deben ser comprendidos, no memorizados. Es importante notar


que

1. El principio de superposicion se aplica a soluciones de la ecuacion en derivadas par-


ciales (no sumar soluciones de varias ecuaciones diferenciales ordinarias).

2. No aplicar la condicion inicial u(x, 0) = f (x) hasta despues de haber utilizado el


principio de superposicion.

7.3. Mas Ejemplos para la Ecuacion del Calor


(Otros Problemas a Valores en el Borde)
7.3.1. Conduccion del Calor en una Barra con Bordes Aislados
Trabajemos en detalle la resolucion (y su interpretacion) del siguiente problema defi-
nido para 0 x L y t 0:

u 2u
EDP: =k 2 t 0, 0xL
t x
u
CB1: (0, t) = 0 t0
x
u
CB2: (L, t) = 0 t0
x
CI: u(x, 0) = f (x) 0 x L.

Como repaso, mencionamos que es un problema de conduccion del calor en una barra
unidimensional con propiedades termicas constantes y sin fuentes. El problema es muy
similar al tratado en la Seccion 7.2, la unica diferencia reside en las condiciones de borde.
Aqu los bordes se encuentran aislados, mientras que en la Seccion 7.2 los bordes estaban
mantenidos a temperatura 0o . Tanto la ecuacion en derivadas parciales como las condi-
ciones de borde son lineales y homogeneas, por lo que podemos utilizar el metodo de
separacion de variables.
Busquemos entonces todas las soluciones producto posibles, es decir, proponemos

u(x, t) = (x)G(t).

132
Si esta fuera una solucion, entonces debera cumplirse que
dG d2
= kG = ,
dt dx2
donde es la constante de separacion. Las condiciones de bordes aislados implican que
d d
(0)G(t) = 0 y (L)G(t) = 0 para todo t 0.
dx dx
d d
Para que la solucion no sea la trivial, sera necesario que (0) = 0 y (L) = 0. La
dx dx
constante de separacion se determina entonces encontrando todos los para los que el
problema a valores en el borde:
d2 d d
= , (0) = 0, (L) = 0,
dx2 dx dx
tiene solucion no-trivial. Aunque la ecuacion diferencial ordinaria es la misma que la del
caso ya analizado, las condiciones de borde son diferentes. Dada esta diferencia, debemos
repetir el calculo de los autovalores y autofunciones. Nuevamente debemos considerar tres
casos: > 0, = 0, < 0.
Analicemos primero el caso > 0: la solucion general es

(x) = c1 cos x + c2 sen x.
Para que satisfaga las condiciones de frontera, debemos calcular
d  
(x) = c1 sen x + c2 cos x .
dx
d
La condicion de borde (0) = 0 implica c2 = 0, y luego c2 = 0 pues > 0. Por lo
dx
tanto
(x) = c1 cos x.
Los autovalores y sus autofunciones correspondientes se determinan a partir de la
d
condicion de borde restante (L) = 0:
dx

c1 sen L = 0.

Como antes, para soluciones no triviales c1 6= 0 y entonces sen L = 0. Es decir L =
n, o bien  n 2
= , n = 1, 2, 3, . . . .
L
Las autofunciones correspondientes son esta vez cosenos
nx
(x) = c1 cos , n = 1, 2, 3 . . . .
L
Ahora bien, para cualquier valor de , las soluciones G(t) de la ecuacion diferencial
dG
ordinaria = kG son las funciones de la forma
dt
G(t) = cekt .

133
En consecuencia, las soluciones producto (para > 0) de la ecuacion en derivadas par-
ciales son
nx ( n 2
u(x, t) = A cos e L ) kt , (7.42)
L
para cualquier constante A, y para cualquier entero positivo n.

Analicemos ahora el caso = 0. En este caso

(x) = c1 + c2 x.

d
La derivada de es la funcion constante (x) = c2 , por lo que las dos condiciones de
dx
borde dan la misma condicion c2 = 0. Por lo tanto, s existen soluciones no triviales para
= 0. La autofuncion corresondiente al autovalor = 0 es cualquier funcion constante

(x) = c1 .

La parte dependiente del tiempo G(t) tambien es constante, pues para = 0, la funcion
ekt e0 1. Por lo tanto, otra solucion producto de la ecuacion del calor con bordes
aislados es
u(x, t) = A
para cualquier constante A.

Podemos analizar el caso < 0 desde un punto de vista fsico. Si hubiera algun
autovalor negativo, esto significara que habra alguna solucion (no trivial) de la ecuacion
de la forma u(x, t) = (x)ekt . Si < 0 entonces k > 0 y esta solucion crece
exponencialmente a medida que pasa el tiempo. Pero esto es fsicamente imposible si los
bordes estan aislados y no hay fuentes de calor (ambas hipotesis se cumplen en nuestro
caso). La contradiccion provino de suponer la existencia de autovalores < 0. Concluimos
entonces que no hay autovalores negativos. En el ejercicio 7.3.4 se pide la demostracion
matematica de que no hay autovalores negativos.

Conclusion: Las soluciones producto de la ecuacion del calor en una barra


unidimensional de longitud L con bordes aislados son
nx ( n 2
un (x, t) = An cos e L ) kt , n = 1, 2, . . . ,
L
y u0 (x, t) = A0 .

Las recien mencionadas son las soluciones producto de la ecuacion diferencial que tam-
bien satisfacen las condiciones de borde, pero no satisfacen necesariamente la condicion
inicial. Para satisfacer la condicion inicial utilizamos el principio de superposicion. Toma-
mos como solucion general una combinacion lineal de todas las soluciones producto que
hemos encontrado. Es decir

nx ( n 2
e L ) kt .
X
u(x, t) = A0 + An cos (7.43)
n=1
L

134
Es interesante notar que esta solucion tambien se puede escribr as:

nx ( n 2
e L ) kt ,
X
u(x, t) = An cos
n=0
L

(sumando para n desde 0) pues cos 0 = 1 y e0 = 1.


La condicion inicial u(x, 0) = f (x) se satisface si

X nx
f (x) = A0 + An cos , (7.44)
n=1
L

para 0 x L. Para lograr esta igualdad tambien utilizaremos la teora de series de


Fourier. En el caso anterior debamos representar f (x) como una serie de senos, en este
caso, tenemos una serie de cosenos mas el termino constante. Esta diferencia de terminos
de la serie se debe a la diferencia en las condiciones de borde. La pregunta que resta
responder es como se determinan los coeficientes A0 y An (n 1). Afortunadamente, se
sabe que las funciones cos nx
L
satisfacen la siguiente relacion integral:

Z L
nx mx 0 si n 6= m

cos cos dx = L2 si n = m 6= 0 (7.45)
0 L L
L si n = m = 0

para n y m enteros no negativos. Notar que los casos n = 0 y m = 0 corresponden a


la funcion constante 1 que multiplica A0 . Similarmente a como hacamos con la serie de
senos, podemos multiplicar ahora la condicion inicial (7.44) por cos mx
L
e integrar entre
0 y L para obtener
Z L Z L
mx X nx mx
f (x) cos dx = An cos cos dx.
0 L n=0 0 L L

Esto se cumple para todo m = 0, 1, 2, . . . . El caso m = 0 corresponde a integrar directa-


mente (7.44). Usando las relaciones integrales de los cosenos (7.45), obtenemos
Z L Z L
mx mx 2
f (x) cos dx = Am cos dx.
0 L 0 L
Z L
mx 2
El factor cos dx toma dos valores diferentes dependiendo de m: es igual a L
0 L
para m = 0 y es igual a L/2 para m 6= 0. Despejando Am obtenemos

1 L
Z
A0 = f (x) dx
L 0
2 L
Z
mx
Am = f (x) cos dx, m = 1, 2, 3 . . . .
L 0 L
Las dos formulas diferentes para los coeficientes Am son un poco molestas en esta serie de
cosenos. Sin embargo reflejan una diferencia significativa entre las soluciones producto de

135
la EDP para > 0 y las soluciones para = 0. Todas las soluciones para > 0 decaen
exponencialmente en el tiempo, mientras que la solucion para = 0 permanece constante
en el tiempo. Por lo tanto, cuando t la serie infinita (7.43) se aproxima al estado
estacionario
1 L
Z
lm u(x, t) = A0 = f (x) dx.
t L 0
No solo la distribucion de temperatura estacionaria es constante, A0 , sino que recono-
cemos la constante como el promedio de la distribucion inicial de temperatura. Esto
coincide con las conclusiones que habamos obtenido al estudiar soluciones estacionarias
en la Seccion 6.4.

7.3.2. Conduccion del Calor en un Anillo Circular


Hemos investigado un problema de flujo de calor cuyas autofunciones son senos y otro
cuyas autofunciones son cosenos. En esta seccion ilustraremos un problema de flujo de
calor cuyas autofunciones son senos y cosenos.

Figura 7.1: Anillo circular de


longitud 2L

Supongamos que un alambre delgado se curva para formar una circunferencia, como
en la Figura 7.1. Por razones que no son claras ahora, pero que lo seran mas adelante,
supongamos que el alambre tiene longitud 2L, es decir, L es la mitad de la longitud del
2L L
alambre. Como la circunferencia tiene una longitud de 2r, el radio es r = = .
2
Si el alambre es suficientemente delgado, es razonable suponer que la temperatura es
constante en cada seccion transversal del alambre curvo. En esta situacion la temperatura
del alambre debe satisfacer una ecuacion del calor unidimensional, donde x representa la
longitud de arco a lo largo del alambre:
u 2u
= k 2. (7.46)
t x
Nuevamente suponemos que el alambre tiene propiedades termicas constantes y no hay
fuentes de calor. Es conveniente para simplificar algunos calculos, suponer que la longitud
de arco x vara de L a L (en lugar de variar de 0 a 2L).
Supongamos que el alambre esta perfectamente conectado a s mismo en los extremos
(x = L a x = L). All deberan cumplirse las condiciones de contacto termico perfecto:
La temperatura u(x, t) debera ser continua
u(L, t) = u(L, t). (7.47)

136
Tambien el flujo de calor debera ser continuo, y como la conductividad termica es cons-
tante, esto implica que la derivada con respecto a x de la temperatura es continua:
u u
(L, t) = (L, t). (7.48)
x x
Las dos condiciones de borde para la ecuacion en derivadas parciales son entonces (7.47)
y (7.48). La condicion inicial es una funcion dada

u(x, 0) = f (x). (7.49)

El problema matematico consiste luego de la EDP lineal homogenea (7.46), con condicio-
nes de borde lineales y homogeneas (7.47) y (7.48). Es por lo tanto plausible la utilizacion
del metodo de separacion de variables.
Proponemos una solucion producto u(x, t) = (x)G(t). Luego obtenemos para y G
las ecuaciones diferenciales ordinarias
dG d2
= kG = .
dt dx2
Las condiciones de borde que nos interesan ahora implican que la funcion debe satisfacer
d d
(L) = (L) y (L) = (L). La constante de separacion se determina entonces
dx dx
encontrando todos los para los que el problema a valores en el borde:
d2 d d
= , (L) = (L) (L) = (L),
dx2 dx dx
tiene solucion no-trivial. Las condiciones de borde con que nos encontramos se denominan
comunmente condiciones de borde periodicas porque aunque el problema se piensa
definido en L < x < L, se puede pensar que esta definido periodicamente para todo
x R; la temperatura sera periodica (x = x0 es el mismo punto fsico que x = x0 + 2L,
y por lo tanto tendra la misma temperatura). Si > 0, la solucion general del problema
para es
(x) = c1 cos x + c2 sen x.
La condicion de borde (L) = (L) implica que

c1 cos (L) + c2 sen (L) = c1 cos L + c2 sen L

Como
el coseno es una
funcion par, cos (L) = cos L, y como el seno es impar
sen (L) = sen L. Se sigue entonces que (L) = (L) se satisface cuando

c1 cos L c2 sen L = c1 cos L + c2 sen L

y esta igualdad es valida si y solo si



c2 sen L = 0. (7.50)

Antes de resolver esta ecuacion, analicemos la segunda condicion de borde, que involucra
a la derivada,
d  
(x) = c1 sen x + c2 cos x .
dx
137
d d
Luego (L) = (L) se cumple si
dx dx
   
c1 sen (L) + c2 cos (L) = c1 sen L + c2 cos L

Usando nuevamente las propiedades de las funciones trigonometricas (que el coseno es


d d
par y el seno impar) obtenemos que (L) = (L) si y solo si
dx dx

c1 sen L = 0. (7.51)

Ahora veamos que implican las ecuaciones (7.50) y (7.51). Si sen L 6= 0 entonces
por (7.50) c2 = 0 y por (7.51) c1 = 0, obteniendo la solucion trivial. Luego, para obtener
soluciones no-triviales debe cumplirse que

sen L = 0,
lo que determina los autovalores . Nuevamente obtenemos que
 n 2
= , n = 1, 2, 3, . . . .
L
Los autovalores obtenidos son los mismos que los de los casos anteriores (para eso he-
mos tomado el alambre de longitud 2L). Sin embargo, en este caso no hay restricciones
adicionales sobre c1 ni c2 . Ambas constantes pueden tomar cualquier valor. Decimos en
este caso que ambas funciones sen nx L
y cos nx
L
son autofunciones correspondientes al
autovalor = (n/L)2 ,
nx nx
(x) = cos , sen , n = 1, 2, 3 . . . .
L L
En realidad, cualquier combinacion lineal de estas funciones (para el mismo n) es una
autofuncion del autovalor = (n/L)2 . Pero debe entenderse siempre que las dos son
autofunciones independientes. En conclusion, tenemos dos familias infinitas de soluciones
producto de la ecuacion diferencial:
nx ( n 2 nx ( n 2
u(x, t) = cos e L ) kt y u(x, t) = sen e L ) kt , n = 1, 2, 3, . . . .
L L
Todas estas soluciones producto corresponden a > 0.
Analicemos el caso = 0: La solucion general es (x) = c1 + c2 x. La condicion
(L) = (L) implica que
c1 c2 L = c1 + c2 L,
lo que a su vez implica que c2 = 0. Luego (x) = c1 y d
dx
(x) 0, de modo que la segunda
d d
condicion de borde (0) = (L) se cumple automaticamente. Vemos entonces que
dx dx
(x) = c1 ,
cualquier constante, es una autofuncion correspondiente al autovalor = 0. Las solucio-
nes producto tambien son constantes en este caso pues e0 = 1. Notemos que para = 0
hay solo una autofuncion linealmente independiente (todas las otras se obtienen mul-
tiplicandola por una constante). En cambio para cada autovalor positivo = (n/L)2
hay dos autofunciones linealmente independientes, sen nx
L
y cos nx
L
. Nuevamente, no hay
ningun autovalor < 0 (por que?).

138
Conclusion: Las soluciones producto para la conduccion del calor en un
alambre circular de longitud 2L son:
nx ( n 2
uan (x, t) = an cos e L ) kt n = 1, 2, . . . ,
L
nx ( n 2
b
un (x, t) = bn sen e L ) kt n = 1, 2, . . . ,
L
u0 (x, t) = a0 ,

donde a0 , a1 , . . . , b1 , b2 , . . . son constantes arbitrarias.

Para lograr que se cumpla la condicion inicial es necesario aplicar el principio de


superposicion. La solucion mas general que se obtiene por el metodo de separacion de
variables consiste de una combinacion lineal arbitraria de las soluciones producto:

nx ( n )
2 nx ( n 2
e L ) kt .
X X
kt
u(x, t) = a0 + an cos e L + bn sen (7.52)
n=1
L n=1
L

La constante a0 es la solucion producto correspondiente a = 0, mientras que dos


familias de coeficientes arbitrarios an y bn son necesarios para las soluciones producto
correspondientes a > 0. La condicion inicial u(x, 0) = f (x) se satisface si

X nx X nx X nx X nx
f (x) = a0 + an cos + bn sen = an cos + bn sen . (7.53)
n=1
L n=1
L n=0
L n=1
L

Aqu la funcion f (x) es una combinacion lineal de senos y de cosenos. Otra diferencia
crucial es que (7.53) es valida para L x L, mientras que para las series de senos o
de cosenos de los ejemplos anteriores era valida para 0 x L.
Ahora queremos determinar los coeficientes a0 , an , bn (n 1) a partir de (7.53).
Nuevamente, las autofunciones satisfacen las siguientes propiedades integrales (notar que
ahora son diferentes pues estamos considerando el intervalo [L, L] que es simetrico
respecto al origen):

Z L 0
si n 6= m
nx mx
cos cos dx = L si n = m 6= 0
L L L
2L si n = m = 0

(
Z L
nx mx 0 si n 6= m (7.54)
sen sen dx =
L L L L si n = m 6= 0
Z L
nx mx
y sen cos dx = 0 (siempre),
L L L

donde n y m son enteros no negativos arbitrarios. La autofuncion constante corresponde


a n = 0 o m = 0. La ultima de estas integrales es particularmente simple de derivar,
pues el seno es una funcion impar y el coseno es par, entonces el producto es una funcion
impar y la integral en un intervalo simetrico con respecto al origen es cero.

139
Los coeficientes se obtienen de forma similar a como se hizo antes. Si multiplica-
mos (7.53) por cos mx
L
y/o por sen mx
L
(hacemos las dos cuentas a la vez) y luego inte-
gramos de x = L a x = L, obtenemos
mx mx
cos L cos

Z L Z L
L

X nx
f (x) dx = an cos dx
L mx n=0 L L mx
sen

sen


L L
mx
Z L cos

L

X nx
+ bn sen . dx.
n=1 L L mx
sen


L
Ahora utilizamos las propiedades integrales (7.54) y obtenemos
Z L Z L
mx mx 2
f (x) cos dx = am cos dx
L L L L
Z L Z L
mx mx 2
f (x) sen dx = bm sen dx
L L L L
Despejando obtenemos
Z L
1
a0 = f (x) dx
2L L
1 L
Z
mx
am = f (x) cos dx
L L L
1 L
Z
mx
bm = f (x) sen dx
L L L
donde las dos ultimas formulas valen para m = 1, 2, 3, . . . .

7.4. Ecuacion de Laplace: Resolucion y Propiedades


Cualitativas
7.4.1. Ecuacion de Laplace en un Rectangulo
Para obtener un poco mas de practica en el metodo de separacion de variables, con-
sideraremos un problema diferente: la conduccion del calor en estado estacionario en una
region bidimensional. Mas especficamente, buscaremos la temperatura en estado de equi-
librio en un rectangulo (0 x L, 0 y H) cuando la temperatura esta prescripta en
la frontera (borde) del rectangulo. La distribucion de temperatura en equilibrio u(x, y)
satisface la ecuacion de Laplace:
2u 2u
EDP: + =0 0 x L, 0 y H.
x2 y 2

140
Consideraremos primero el caso de condiciones de borde de temperatura prescripta:
CB1: u(0, y) = g1 (y) 0yH
CB2: u(L, y) = g2 (y) 0yH
CB3: u(x, 0) = f1 (x) 0xL
CB4: u(x, H) = f2 (x) 0xL
donde g1 (y), g2 (y), f1 (x) y f2 (x) son funciones dadas. Otras condiciones de borde seran
presentadas en los ejercicios. En este caso, la EDP es lineal y homogenea pero las condi-
ciones de borde, aunque lineales, no son homogeneas. No podremos aplicar el metodo de
separacion de variables a este problema tal como esta. La razon de esto es que al separar
variables, el problema a valores de borde que determina las constantes de separacion po-
sibles o autovalores debe tener condiciones de borde homogeneas. En este ejemplo, todas
las condiciones de borde son no-homogeneas.
Podemos superar esta dificultad dandonos cuenta de que el problema original es no-
homogeneo debido a las cuatro condiciones de borde no-homogeneas. Utilizaremos el
principio de superposicion para desglosar nuestro problema en cuatro subproblemas, cada
uno de los cuales tiene solo una condicion no-homogenea. Escribimos
u(x, t) = u1 (x, t) + u2 (x, t) + u3 (x, t) + u4 (x, t),
donde cada una de las funciones ui (x, y) (i = 1, 2, 3, 4) satisface la ecuacion de Laplace con
una condicion de borde no-homogenea y las otras tres condiciones de borde homogeneas,
como se muestra en la Figura 7.2.

Figura 7.2: Ecuacion de Laplace dentro de un rectangulo

El metodo para hallar cualquiera de las ui (x, y) es el mismo; solo algunos detalles
difieren. Haremos la resolucion para encontrar u4 (x, y), y dejaremos los otros casos para

141
los ejercicios:

2 u4 2 u4
EDP: + =0 0 x L, 0yH
x2 y 2
CB1: u4 (0, y) = g1 (y) 0yH
CB2: u4 (L, y) = 0 0yH
CB3: u4 (x, 0) = 0 0xL
CB4: u4 (x, H) = 0 0 x L.

Nos proponemos resolver este problema por el metodo de separacion de variables. Comen-
zamos ignorando la condicion no-homogenea u4 (0, y) = g1 (y). Eventualmente sumaremos
soluciones producto para obtener esta condicion, pero por ahora la ignoraremos. Busca-
mos soluciones producto
u4 (x, y) = h(x)(y),
que satisfagan las condiciones de borde homogeneas CB2, CB3 y CB4. Estas nos dicen
que
h(L) = 0, (0) = 0, (H) = 0.
Luego, la parte de la solucion dependiente de y, (y) tiene dos condiciones de borde
homogeneas, mientras que la parte dependiente de x solo tiene una. Si sustituimos la
solucion producto en la ecuacion de Laplace obtenemos

(y)h00 (x) + h(x)00 (y) = 0.

Las variables pueden separarse dividiendo por h(x)(y), obteniendo

1 00 1 00
h (x) = (y). (7.55)
h(x) (y)

El lado izquierdo es solo funcion de la variable x, mientras que el lado derecho depende
solo de y. Por lo tanto, ambos deben ser iguales a una constante de separacion. Que
usamos? o ? Una de ellas es mas conveniente. Si la constante de separacion fuera
negativa (como lo era antes), la ecuacion (7.55) implicara que h(x) oscila (trigonometri-
ca) y (y) es una combinacion de exponenciales. Pero las condiciones de borde para (y)
indican que este caso no es posible. Por otro lado, si la constante de separacion fuera po-
sitiva, (7.55) implicara que h(x) es combinacion de exponenciales y (y) es combinacion
de senos y cosenos. Esto parece mas razonable dadas las condiciones de borde y entonces
introducimos la variable de separacion (aunque no suponemos 0):

1 00 1 00
h (x) = (y) = .
h(x) (y)

Obtenemos entonces dos ecuaciones diferenciales ordinarias:

h00 (x) = h(x)


00 (y) = (y).

142
El problema dependiente de la variable x no es un problema a valores en la frontera pues
no tiene dos condiciones homogeneas:

h00 (x) = h(x) h(L) = 0.

En cambio, el problema dependiente de la variable y s lo es y sera utilizado para deter-


minar los autovalores

00 (y) = (y) (0) = 0 (H) = 0.

Este problema a valores en la frontera es el mismo que hemos estudiado anteriormente,


con la unica diferencia dada por la longitud del intervalo, que en este caso es H en lugar de
L. Todos los autovalores son positivos > 0. Las autofunciones son senos pues (0) = 0.
Mas aun, la condicion (H) = 0 implica que
 n 2 ny
= , (y) = sen , n = 1, 2, 3, . . . .
H H
Para obtener soluciones producto, debemos ahora resolver la EDO para h(x) con la con-
dicion de borde homogenea correspondiente y con un autovalor de los ya encontrados.
Como = (n/H)2 , la ecuacion resulta
 n 2
00
h (x) = h(x). (7.56)
H
La solucion general es una combinacion lineal de exponenciales, que tambien puede ex-
presarse como una combinacion lineal de funciones hiperbolicas. Podramos utilizar cual-
quiera de estas dos expresiones de la solucion general, pero ninguna de estas es la mas
apropiada para la condicion de borde h(L) = 0. Podemos encontrar la solucion que bus-
camos de un modo mas rapido y sencillo si observamos que las funciones trasladadas

n(x L) n(x L)
cosh y senh
H H
son soluciones linealmente independientes de (7.56). Por lo que la solucion general tambien
puede escribirse como

n(x L) n(x L)
h(x) = a1 cosh + a2 senh .
H H
Resulta natural preguntarse ahora por que es mas conveniente esta expresion de la solu-
cion general. Bien, si queremos forzar la condicion de borde h(L) = 0 obtenemos

n(L L) n(L L)
0 = h(L) = a1 cosh + a2 senh = a1 cosh 0 + a2 senh 0 = a1 .
H H

De esto resulta a1 = 0 y h(x) = a2 senh n(xL)


H
, una expresion sencilla de la solucion.
Las soluciones producto resultan entonces

ny n(x L)
u4 (x, y) = A sen senh , n = 1, 2, . . . .
H H
143
Ahora queremos encontrar una solucion mas general, para lo cual utilizamos el prin-
cipio de superposicion, obteniendo

X ny n(x L)
u4 (x, y) = An sen senh .
n=1
H H

Una vez que tenemos esta solucion general, imponemos la condicion de borde no-homogenea
u4 (0, y) = g1 (y):

X ny n(L)
u4 (0, y) = An sen senh = g1 (y).
n=1
H H

Este es el mismo tipo de serie de senos que ya hemos discutido con una sola diferencia:
Antes tenamos los coeficientes An multiplicando a las funciones seno, pero ahora tenemos
que An senh n(L)
H
multiplica a las funciones seno (notar que An senh n(L)
H
no depende
n(L)
de la variable y). Por ende, si llamamos Bn = An senh H nuestro problema consiste
en hallar Bn tal que

X ny
Bn sen = g1 (y).
n=1
H
Luego, por lo que ya hemos visto en secciones anteriores

2 H
Z
ny
Bn = g1 (y) sen dy,
H 0 H
y despejando An obtenemos
Z H
Bn 2 ny
An = n(L)
= n(L)
g1 (y) sen dy.
senh H senh 0 H
H H

Es importante notar aqu que senh n(L)H


6= 0 y por ende An esta bien definido para todo
n.
Por lo tanto, la solucion u4 (x, y) es la serie

X ny n(x L)
u4 (x, y) = An sen senh .
n=1
H H

con sus coeficientes An dados por


Z H
2 ny
An = n(L)
g1 (y) sen dy.
H senh 0 H
H

7.4.2. Ecuacion de Laplace en un Disco


Supongamos que se tiene un disco de radio a (con propiedades termicas constantes y
sin fuentes) con la temperatura prescripta en el borde como se ilustra en la Figura 7.3.
Si la temperatura en el borde es independiente del tiempo, entonces es razonable inten-
tar determinar la distribucion de temperatura u en estado de equilibrio. La temperatura

144
Figura 7.3: Ecuacion de Lapla-
ce dentro de un disco

satisface la ecuacion de Laplace 2 u = 0. La geometra (forma) de este problema sugiere


el uso de coordenadas polares, es decir, escribir u = u(r, ). En particular, en la circunfe-
rencia de radio r = R la distribucion de temperatura es una funcion dada de la variable
, u(R, ) = f ().
Para intentar resolver este problema es necesario primero encontrar una expresion de
2 2u 2u
u= + en coordenadas polares, para ello, debemos escribir
x2 y 2
u(r, ) = u (r(x, y), (x, y))
p
r(x, y) = x2 + y 2
(x, y) = tg1 (y/x)

Luego, utilizando la regla de la cadena y la regla para la derivada del producto vemos
que
u u r u
= +
x r x x

2u
   
u u r u
= = +
x2 x x x r x x
 2  2
2 u r 2 u r u 2 r 2 u r 2 u u 2
= 2 + + + + +
r x r x x r x2 r x x 2 x x2
2 2
2 u r u 2 r 2 u r 2 u u 2
   
= 2 + + 2 + +
r x r x2 r x x 2 x x2
Analogamente
2 2
2u 2u u 2 r 2 u r 2 u u 2
 
r
= + + 2 + 2 +
y 2 r2 y r y 2 r y y y y 2
Utilizando ahora las expresiones para r(x, y) y (x, y), derivandolas y haciendo algo de
aritmetica obtenemos (hacer estos pasos como ejercicio)
2u 2u 2 u 1 u 1 2u
2 u = + = + + .
x2 y 2 r2 r r r2 2

145
El problema que queremos resolver es entonces

2 u 1 u 1 2u
EDP: + + =0 0<rR
r2 r r r2 2
CB: u(R, ) = f (), .

A primera vista parecera que no podemos utilizar el metodo de separacion de variables


porque no tenemos ninguna condicion de borde homogenea. Sin embargo, el utilizar coor-
denadas polares requiere una discusion acerca del metodo de separacion de variables que
nos ayudara a comprenderlo un poco mejor. Si resolvemos la ecuacion de Laplace en un
rectangulo, entonces se necesitan condiciones en los extremos de definicion de las varia-
bles, x = 0, x = L, y = 0, y = H. Estos extremos coinciden con los bordes fsicos de la
placa rectangular que se considera. Por otro lado, para coordenadas polares, 0 r a,
. Matematicamente, se necesitan dos condiciones en los extremos r = 0,
r = a, y = , = . La unica condicion que corresponde a una frontera fsica es en
r = a. Por lo tanto todava nos hace falta determinar condiciones de borde en r = 0 y en
= . Para hallarlas utilizaremos consideraciones del problema fsico. Las coordenadas
polares son singulares en r = 0; por razones fsicas, pediremos que la temperatura sea
finita, o acotada all:

acotacion de la temperatura en el origen |u(0, )| < .

Aun nos falta definir condiciones en = . Esto es similar a lo que ocurre en la


situacion del alambre circular. El extremo = r corresponde al mismo punto de la
placa circular que = . Aunque all no hay realmente un borde de la placa, el hecho de
que la temperatura sea continua all y que el flujo de calor en la direccion de tambien
sea continuo, implica las siguientes condiciones de borde:

u u
u(r, ) = u(r, ) (r, ) = (r, ).

Estas condiciones de borde se conocen como condiciones periodicas. Notamos que estas
condiciones de borde son tambien lineales y homogeneas. De este modo, el problema
luce similar a la ecuacion de Laplace en un rectangulo: Hay cuatro condiciones, de las
cuales solo una es no-homogenea: u(a, ) = f (). Aplicaremos entonces el metodo de
separacion de variables.
Buscaremos soluciones producto

u(r, ) = ()G(r),

que satisfagan la EDP y las tres condiciones de borde homogeneas (nuevamente ignoramos
momentaneamente la condicion no-homogenea). Las condiciones periodicas implican

() = () 0 () = 0 ().

Si la funcion producto satisface la EDP se tiene que


1 1
()G00 (r) + ()G0 (r) + 2 G(r)00 () = 0
r r
146
r2
Multiplicando por obtenemos
()G(r)

r2 G00 (r) + rG0 (r) 00 ()


= = .
G(r) ()

Hemos introducido la constante de separacion como (en lugar de ) porque hay dos
condiciones homogeneas para la funcion de la variable . El problema que determinara
los autovalores es

00 () = (), () = (), 0 () = 0 ().

Los autovalores se determinan del modo usual. En efecto, este es uno de los problemas
estandar que ya hemos resuelto, el del alambre circular, con L = . Por lo tanto los
autovalores son  n 2
= = n2 ,
L
con las autofunciones correspondientes

sen n y cos n.

El caso n = 0 debe tambien considerarse pues da la funcion constante.


El problema dependiente de la variable r es entonces

r2 G00 (r) + rG0 (r) = n2 G(r)

o
r2 G00 (r) + rG0 (r) n2 G(r) = 0. (7.57)
La ecuacion (7.57) es lineal y homogenea pero tiene coeficientes no-constantes. Sin
embargo se puede resolver facilmente. La forma mas sencilla de resolver esta ecuacion,
es dandose cuenta de que para el operador diferencial en (7.57) la funcion G(r) = rp se
reproduce a s misma. Esto quiere decir que si reemplazamos rp en el lugar de G(r) en la
ecuacion (7.57) obtenemos un multiplo de rp . En efecto

d2 p d
r2 (r ) + r (rp ) n2 rp = r2 p (p 1) rp2 + r p rp1 n2 rp = p (p 1) + p n2 rp .

dr 2 dr
Luego nuestro problema se transforma en encontrar las potencias p para las cuales

p(p 1) + p n2 = 0.

Pero
p(p 1) + p n2 = p2 p + p n2 = p2 n2
y esta ultima expresion es igual a cero cuando p = n o p = n. Si n 6= 0 estas races son
distintas y las funciones rn y rn son linealmente independientes, por lo que la solucion
general resulta
G(r) = c1 rn + c2 rn .

147
El caso n = 0 es diferente, e igualmente importante porque = 0 tambien es un autovalor.
Si n = 0 la ecuacion (7.57) resulta
r2 G00 (r) + rG0 (r) = 0
que es equivalente a
rG00 (r) + G0 (r) = 0
y tambien a
d
(rG0 (r)) = 0
dr
lo que a su vez equivale a decir que rG0 (r) es constante. Luego G0 (r) = const/r, integrando
obtenemos
G(r) = c1 + c2 ln r.
Ya hemos discutido la condicion en r = 0 y hemos dicho que requeriremos |u(0, )| <
, lo que implica para la solucion producto que
|G(0)| < .
Si ahora observamos las soluciones generales obtenidas, vemos que la parte multiplicada
por c2 tiende a cuando r 0. Esto nos dice que c2 = 0 y luego la solucion general de
la parte dependiente de r es
G(r) = c1 rn , n 0,
donde para n = 0 esta expresion se reduce a la constante c1 .
Concluyendo, las soluciones producto que satisfacen las condiciones homogeneas son
rn cos n (n 1) y rn sen n (n 0).
Por el principio de superposicion, la solucion general de la ecuacion de Laplace en el
crculo es
X X
n
u(r, ) = A0 + An r cos n + Bn rn sen n.
n=1 n=1

Para resolver la condicion de borde no-homogenea u(a, ) = f () los coeficientes An ,


Bn tienen que ser determinados para que se satisfaga la igualdad

X
X
n
f () = A0 + An a cos n + Bn an sen n, .
n=1 n=1

Este problema es similar al que resolvimos en la Seccion 7.3.2. La unica diferencia es que
aqu el papel de los coeficientes an y bn es jugado por An an y por Bn an , respectivamente.
Usando las mismas formulas integrales de esa seccion, obtenemos
Z
1
A0 = f () d
2
Z
1
An an = f () cos n d, n1

1
Z
n
Bn a = f () sen n d, n 1.

148
Como an 6= 0, la solucion de la ecuacion del calor en el disco de radio a con temperatura
prescripta u(a, ) = f () en la frontera es

X
X
n
u(r, ) = A0 + An r cos n + Bn rn sen n,
n=1 n=1

donde los coeficientes An y Bn estan dados por


Z
1
A0 = f () d
2
Z
1
An = n f () cos n d, n1
a
Z
1
Bn = n f () sen n d, n 1.
a

7.4.3. Propiedades Cualitativas de la Ecuacion de Laplace


A menudo, el metodo de separacion de variables no resulta apropiado. Si se desea
informacion cuantitativa acerca de la solucion, suelen ser necesarios y mucho mas eficien-
tes los metodos numericos (veremos alguno mas adelante). Sin embargo, el metodo de
separacion de variables sirve para determinar propiedades cualitativas de las soluciones
de gran interes practico. En esta seccion describiremos brevemente algunas propiedades
cualitativas que se pueden derivar para la ecuacion de Laplace a partir de su solucion por
el metodo de separacion de variables.

Teorema del Valor Medio. La solucion obtenida de la ecuacion de Laplace dentro


de un crculo por el metodo de separacion de variables nos permite deducir un resultado
importante. Si evaluamos la temperatura en el origen r = 0, vemos que
Z
1
u(0, ) = A0 = f () d;
2

es decir, la temperatura en el centro es igual al promedio de la temperatura en el borde del


crculo. Esta propiedad se conoce como propiedad del valor medio para la ecuacion de
Laplace. Se cumple en general en el siguiente sentido. Supongamos que u es solucion de la
ecuacion de Laplace en una region arbitraria R (ver Figura 7.4). Consideremos cualquier
punto P dentro de R, y un crculo de radio r0 (con r0 suficientemente chico para que el
crculo este contenido en R). Llamemos f () a la temperatura u en el borde del disco.
Nuestro analisis previo sigue cumpliendose en este disco, y luego la temperatura en el
punto P es el promedio de la temperatura f () en el borde del crculo. Por lo tanto,
recordando que la solucion de Laplace corresponde al estado de equilibrio o estacionario
para la ecuacion del calor, concluimos que

en estado de equilibrio (estacionario) la temperatura en cualquier punto interior a


R es igual al promedio de la tamperatura alrededor de cualquier crculo (contenido
en R) centrado en ese mismo punto.

149
Figura 7.4: Crculo dentro de
una region general

Principio del Maximo. Podemos utilizar este ultimo resultado para probar el princi-
pio del maximo para la ecuacion de Laplace: en estado de equilibrio la temperatura
no puede tener un maximo en el interior (a menos que la temperatura sea constante
en toda la region considerada). La demostracion se realiza por contradiccion. Sea u la
solucion de la ecuacion de Laplace en una region R. y sea P un punto interior a R, como
el de la Figura 7.4. Por el teorema del valor medio, la temperatura en el punto P es igual
al promedio de la temperatura en el borde del disco de radio r0 . Luego es imposible que
la temperatura en P sea mayor a la temperatura en todos los puntos del borde. Por lo
tanto, u no puede tener un maximo en P . Es decir:

en estado de equilibrio, la temperatura no puede tener un maximo en ningun punto


interior al dominio.

Esto no debera sorprendernos demasiado. Razonemos desde el punto de vista de la


Fsica, recordando que la ecuacion de Laplace corresponde al estado estacionario de la
ecuacion del calor sin fuentes: Si la temperatura fuera maxima en el punto P , luego la
concentracion de energa calorica se difundira y la temperatura disminuira en P con el
paso del tiempo, por lo que no estaramos frente a un estado de equilibrio o estacionario.
Del mismo modo puede probarse que la temperatura tampoco puede tener un mnimo
en el interior de la region. Concluimos entonces que:

en estado de equilibrio, las temperaturas maximas y mnimas se dan en el borde del


dominio.

Buen Planteo del Problema de Laplace. El principio del maximo es una herramien-
ta muy importante para el analisis de ecuaciones en derivadas parciales, especialmente al
establecer propiedades cualitativas. Observemos la siguiente definicion:

150
Se dice que un problema esta bien planteado si existe una unica solucion que
depende en forma continua de los datos no-homogeneos.

Es decir, un problema estara bien planteado si la solucion cambia poco cuando los datos
(valor de borde) cambian poco. Este es un concepto importante en problemas de la Fsi-
ca. Si la solucion cambiara dramaticamente con pequenos cambios en los datos, entonces
cualquier medicion fsica debera ser exacta para que la solucion que se obtiene a partir
de las mediciones sea confiable, o represente bien la realidad. Sabemos que medir exac-
tamente no es posible. Afortunadamente, la mayora de los problemas en ecuaciones en
derivadas parciales estan bien planteados.
El principio del maximo puede utilizarse para demostrar que la ecuacion de Laplace
2
u = 0 esta bien planteada. Supongamos que u y v son dos soluciones de la ecuacion
de Laplace con valor de borde f y g, respectivamente, es decir
2 u = 0, u = f en el borde,
2 v = 0, v = g en el borde.
Supongamos que f y g difieren muy poco y consideremos la diferencia entre estas dos
soluciones: w = u v. Por la linealidad del operador de Laplace, tenemos que
2 w = 0 y w =f g en el borde.
El principio del maximo (y del mnimo) para la ecuacion de Laplace implica que el maximo
(y el mnimo) de w ocurre en el borde del dominio. Luego, en cualquier punto x interior
se tiene que
mn (f (y) g(y)) w(x) = u(x) v(x) max (f (y) g(y)).
y en el borde y en el borde

Es decir, u y v difieren siempre menos que lo que difieren f y g. En otras palabras, la


solucion de la ecuacion de Laplace vara levemente cuando los datos del borde varan
levemente.
Un ejemplo practico: supongamos que f es el valor medido de la temperatura en el
borde de una region y g es el valor real o exacto (f es una aproximacion de g). Sea ahora u
la solucion de la ecuacion de Laplace con dato f en el borde. Si v denota la temperatura
real en la region, entonces v es la solucion de la ecuacion de Laplace con dato g en
el borde. Pregunta: Cuan bien aproxima u (solucion calculada) a v (temperatura real
desconocida)? Respuesta: tan bien como f aproxime a g.

Condicion de Compatibilidad para la Existencia de Soluciones. Podra pre-


sentarsenos el caso de querer resolver la ecuacion de Laplace con condiciones de borde de
flujo prescripto. En cuyo caso se indica el flujo de calor K0 u n, en lugar de la tem-
peratura u. Vimos en el Ejercicio 1.4.7(b) (en una dimension) que si se prescribe el flujo
podra no existir solucion estacionaria. Veamos que si se prescribe el flujo en la frontera,
este debe satisfacer una condicion necesaria para que exista solucion: Supongamos que
u es solucion de la ecuacion de Laplace en una region bidimensional R. Luego 2 u = 0
sobre toda esta region, integrando obtenemos
ZZ ZZ
2
0= u dx dy = (u) dx dy.
R R

151
ZZ Z
Por el teorema de la divergencia se tiene que (u) dx dy = u n ds, donde
R R
R denota la curva cerrada que rodea a R y n el vector normal exterior a R. Luego
Z
u n ds = 0. (7.58)
R

Esto nos dice que si u es solucion de la ecuacion de Laplace (ecuacion del calor esta-
cionaria), el flujo de calor neto a traves de la frontera debe ser cero. Esto tambien esta
claro desde el punto de vista fsico, puesto que en caso contrario habra cambio (en el
tiempo) de la energa termica total dentro de la region, violando la condicion de estado
estacionario. La condicion (7.58) se denomina condicion de compatibilidad para la
ecuacion de Laplace.

7.5. Ejercicios
7.1. Consideremos la ecuacion
u 2u
= k 2,
t x
con las condiciones de borde
u(0, t) = 0 y u(L, t) = 0.
Resolver el problema a valores iniciales si la temperatura es inicialmente
9x 3x
(a) u(x, 0) = 6 sen (c) u(x, 0) = 2 cos
L ( L
x 3x x si 0 x L/2
(b) u(x, 0) = 3 sen sen (d) u(x, 0) =
L L L x si L/2 x L

Las respuestas a (c) y (d) pueden involucrar ciertas integrales que no es necesario
evaluar, solo dejarlas expresadas.
En los ejercicios (a) y (b) graficar la temperatura en el punto medio de la barra para
t entre 0 y 10. Determinar el instante de tiempo en que la temperatura en el punto medio
de la barra es la mitad de la temperatura inicial en ese punto.
7.2. Consideremos la ecuacion del calor siguiente en una barra de longitud 1:

ut = kuxx ,
0 x 1, t 0,
u(0, t) = 0, u(1, t) = 0, t 0,

u(x, 0) = 100 sen(x), 0 x 1.
Dar una expresion para la temperatura en el punto medio de la barra en funcion de
t. Para que valor de t la temperatura en el punto medio es igual a 50?
7.3. Consideremos la ecuacion diferencial
d2
+ = 0.
dx2
Determine los autovalores (y autofunciones correspondientes), si satisface las siguien-
tes condiciones de borde. Analizar los tres casos ( > 0, = 0, < 0).

152
d
(a) (0) = 0 y () = 0 (d) (0) = 0 y (L) = 0
dx
d
(b) (0) = 0 y (1) = 0 (e) (0) = 0 y (L) = 0
dx
d d d d
(c) (0) = 0 y (L) = 0 (f ) (L) = (L) y (L) = (L)
dx dx dx dx
u 2u
7.4. Resolver la ecuacion del calor = k 2 , 0 x L, t 0, con las condiciones de
t x
borde
u u
(0, t) = 0, (L, t) = 0, t > 0,
x x
y con la condicion inicial siguiente:
3x x
(a) u(x, 0) = 6 + 4 cos (c) u(x, 0) = 2 sen
L ( L
8x 0 si x < L/2
(b) u(x, 0) = 3 cos (d) u(x, 0) =
L 1 si x > L/2
En los ejercicios (a) y (b) graficar la temperatura en el extremo derecho de la barra
para t entre 0 y 10. Determinar el instante de tiempo en que la temperatura en el extremo
derecho de la barra es la mitad de la temperatura inicial en ese punto. En cada inciso,
determinar la temperatura cuando t .
7.5. Consideremos la ecuacion del calor siguiente en una barra de longitud 1:
1

ut = 10 uxx ,

0 x 1, t 0,

ux (0, t) = 0, ux (1, t) = 0, t 0,

u(x, 0) = f (x), 0 x 1.

(a) Cual es el lmite cuando t de la solucion u(x, t) en los extremos de la barra?

(b) Considerar ahora el caso particular

f (x) = 100 10 cos(2x).

Dar una expresion para la temperatura en el punto medio de la barra en funcion de


t.
Para que valor de t la temperatura en el punto medio es igual a 101?

7.6. Resolver
u 2u u
=k 2 con (0, t) = 0
t x x
u(L, t) = 0
u(x, 0) = f (x).

Para este problema se puede utilizar que para n, m = 1, 2, . . . resulta:


(
L
(n 12 )x (m 12 )x L
(n 12 )x (m 21 )x L
Z Z
2
, si n = m
sen sen dx = cos cos dx =
0 L L 0 L L 0, 6 m.
si n =

153
7.7. Resolver la ecuacion de Laplace dentro de un rectangulo 0 x L, 0 y H con
las siguientes condiciones de borde:
u u
(a) (0, y) = 0, (L, y) = 0, u(x, 0) = 0, u(x, H) = f (x).
x x
u u
(b) (0, y) = g(y), (L, y) = 0, u(x, 0) = 0, u(x, H) = 0.
x x
u
(c) (0, y) = 0, u(L, y) = g(y), u(x, 0) = 0, u(x, H) = 0.
x
u
(d) u(0, y) = g(y), u(L, y) = 0, (x, 0) = 0, u(x, H) = 0.
y
u u
(e) u(0, y) = f (y), u(L, y) = 0, (x, 0) = 0, (x, H) = 0.
y y
(
u u 0 si x > L/2, u
(f ) (0, y) = 0, (L, y) = 0, u(x, 0) = (x, H) = 0.
x x 1 si x < L/2, y

7.8. Supongamos que u(x, y) es la solucion de la ecuacion de Laplace dentro del rectangulo
0 x L, 0 y H con las siguientes condiciones de borde:
u u u u
(0, y) = 0 (x, 0) = 0 (L, y) = 0 (x, H) = f (x).
x y x y
(a) Sin resolver el problema, explicar la condicion que debe cumplir f para que este
problema tenga solucion.

(b) Resolver el problema por el metodo de separacion de variables. Notar que queda una
constante sin determinar, es decir que puede tomar cualquier valor.
7.9. Resolver la ecuacion de Laplace fuera de un crculo de radio a con la siguiente
condicion de borde (suponer que u(r, ) permanece acotado cuando r .)
(a) u(a, ) = ln 2 + 4 cos 3

(b) u(a, ) = f ()
7.10. Resolver la ecuacion de Laplace dentro de un cuarto de crculo de radio 1 (0
/2, 0 r 1) con las siguientes condiciones de borde
u
(a) (r, 0) = 0, u(r, /2) = 0, u(1, ) = f ()

u u
(b) (r, 0) = 0, (r, /2) = 0, u(1, ) = f ()

u
(c) u(r, 0) = 0, u(r, /2) = 0, (1, ) = f ()
r
7.11. Resolver la ecuacion de Laplace dentro de un semicrculo de radio a (0 r a,
0 ) con las siguientes condiciones de borde:

154
(a) u = 0 sobre el diametro (parte recta) y u(a, ) = g()
(b) el diametro esta aislado y u(a, ) = g().
7.12. Resolver la ecuacion de Laplace en un anillo circular a r b con las siguientes
condiciones de borde
(a) u(a, ) = f (), u(b, ) = 0
u
(b) (a, ) = 0, u(b, ) = f ()
r
7.13. Resolver la ecuacion de Laplace en un sector de 90 de un anillo circular (a r b,
0 /2) con las siguientes condiciones de borde:
u(r, 0) = 0, u(r, /2) = 0, u(a, ) = 0, u(b, ) = f ().
p
7.14. Consideremos el siguiente problema, planteado sobre la region anular 1 x2 + y 2
2:
2 u = 0 1 r 2,
u=0 sobre el borde r = 1,
u = 100 sobre el borde r = 2.
(a) Hallar la solucion (ayuda, es de variables separables en coordenadas polares r, ).
(b) Determinar la curva sobre la que u = 50.
7.15. Consideremos la ecuacion de Laplace siguiente en el cuadrado [0, 1] [0, 1]:


uxx + uyy = 0, 0 x 1, 0 y 1,
0 y 1,

ux (0, y) = 0, u(1, y) = 0,
u(x, 0) = 0, u(x, 1) = 30 cos( x ) 10 cos( 3x ),

0 x 1.

2 2
(a) Halle la solucion u(x, y).
(b) De una formula para la solucion u sobre la lnea x = 0.2, (0 y 1). Grafquela en
la computadora.
(c) Determine el valor aproximado (5 dgitos) de y para el que u(0.2, y) = 15.
7.16. Consideremos la ecuacion de Laplace siguiente en el cuadrado [0, 1] [0, 1]:


uxx + uyy = 0, 0 x 1, 0 y 1,
0 y 1,

u(0, y) = 0, ux (1, y) = 0,
x 3x
u(x, 0) = 0, u(x, 1) = 30 sen( ) 10 sen( ), 0 x 1.


2 2
(a) Diga cual es la solucion u(x, y).
(b) De una formula para la solucion u sobre la lnea x = 0.9, (0 y 1). Grafquela en
la computadora.
(c) Determine el valor aproximado (5 dgitos) de y para el que u(0.9, y) = 30.

155
Captulo 8

Diferencias Finitas

El metodo de diferencias finitas es un metodo numerico para calcular soluciones apro-


ximadas de ecuaciones diferenciales. La aproximacion puede ser tan buena como se desee.
Pero para mayor aproximacion hace falta mas trabajo computacional. En este metodo
no se obtiene una formula analtica de la solucion, sino que se obtienen aproximaciones
en muchos puntos del dominio donde se quiere resolver el problema. La ventaja es que
permite resolver problemas con condiciones de borde mucho mas generales y con terminos
fuente tambien generales. Tambien permite trabajar con coeficientes variables, aunque no
nos preocuparemos por eso en este curso.

8.1. Diferencias finitas en 1D


Consideraremos primero la ecuacion del calor unidimensional. Es decir, estamos con-
siderando una barra donde todas las cantidades son constantes en los planos paralelos al
plano yz, y los cambios o variaciones y el flujo solo ocurre en la direccion x.

8.1.1. Problema estacionario (Poisson)


Recordemos el problema de difusion en una dimension
ut kuxx = f, u = u(x, t), 0 x L, t 0.
Al considerar el estado estacionario en que la variable u(x, t) no cambia con respecto al
tiempo t, tenemos ut = 0 y obtenemos la ecuacion de Poisson
kuxx = f, u = u(x), 0 x L.
En la siguiente seccion vemos como se discretiza el problema de Poisson unidimensio-
nal con condiciones de borde de tipo Dirichlet.

Condiciones de borde Dirichlet


Consideremos el problema

kuxx = f,
0 x L,
u(0) = a, (8.1)

u(L) = b.

156
Idea: La idea principal del metodo de diferencias finitas consiste en reemplazar
derivadas por cocientes de diferencias.

dg g(x + h) g(x)
Recordando que (x) = lm , la idea es tomar h pequeno y aproxi-
dx h0 h
dg
mar dx (x) por g(x+h)g(x)
h
, o alguna variante:
dg
Diferencia Formula Error: formula
dx
dg g(x + h) g(x)
Adelantada: (x) O(h) si g C 2
dx h
dg g(x) g(x h)
Atrasada: (x) O(h) si g C 2
dx h
dg g(x + h2 ) g(x h2 )
Centrada: (x) O(h2 ) si g C 3
dx h
Las acotaciones del error se obtienen utilizando el Teorema de Taylor. Recordemos
2
que en la ecuacion de Poisson aparece uxx = ddxu2 . Para derivadas segundas hacemos lo
siguiente, utilizando diferencias centradas:
du
d2 u + h2 ) du
h2 )
 
d du dx
(x dx
(x
2
(x) = (x)
dx dx dx h
u(x+ h +h )u(x+ h h ) u(x h +h )u(x h h )
2 2
h
2 2
2 2
h
2 2


h
u(x+h)u(x)
h
u(x)u(xh)
h
=
h
u(x + h) 2u(x) + u(x h)
=
h2
Para esta aproximacion de la derivada segunda tenemos el siguiente resultado:

Proposicion 55. Si u C 4 entonces

d2 u u(x + h) 2u(x) + u(x h)


2
(x) = + O(h2 ).
dx h2
Mas precisamente, si M4 = max[xh,x+h] |uIV |, entonces
2
d u u(x + h) 2u(x) + u(x h) M4 2
dx2 (x) 12 h . (8.2)

h2

Demostracion. Observemos que por el teorema de Taylor, como u C 4 , resulta

h2 00 h3 h4
u(x + h) = u(x) + hu0 (x) + u (x) + u000 (x) + uIV (1 )
2 3! 4!
2 3 4
h h h
u(x h) = u(x) hu0 (x) + u00 (x) u000 (x) + uIV (2 ),
2 3! 4!

157
con x h < 2 < x < 1 < x + h. Luego, sumando ambas igualdades, obtenemos

h4 uIV (1 ) + uIV (2 )
u(x + h) 2u(x) + u(x h) = h2 u00 (x) + .
12 2
uIV (1 )+uIV (2 )
Como uIV es continua, 2
= uIV () para algun x h < < x + h, y luego

u(x + h) 2u(x) + u(x h) 00 h2 IV


= u (x) + u (),
h2 12
que implica la afirmacion de la proposicion.
En vista de esta proposicion, si u es la solucion de (8.1), resulta

u(x + h) 2u(x) + u(x h)


k f (x),
h2
siempre que x h, x, x + h [0, L], es decir, si h x L h. El error de aproximacion
en esta formula es O(h2 ).
L
Para obtener un metodo numerico, tomamos N N y h = , y definimos la particion
N
0 = x1 < x2 = h < x3 = 2h < . . . < xN = L h < xN +1 = L.

Si observamos que xi h = xi1 , y que xi + h = xi+1 , resulta

u(xi + h) 2u(xi ) + u(xi h) u(xi+1 ) 2u(xi ) + u(xi1 )


k 2
= k f (xi )
h h2
para i = 2, 3, 4, . . . , L. Ademas, u(x1 ) = a y u(xN +1 ) = b. Resumiendo,

u(x1 ) = a,



u(xi+1 ) 2u(xi ) + u(xi1 )

k f (xi ), i = 2, 3, . . . , N,


h2
UN +1 = b.

La idea es entonces definir aproximaciones Ui u(xi ) que cumplan las formulas


anteriores con igualdad, es decir

U1 = a,

Ui+1 2Ui + Ui1

k 2
= f (xi ), i = 2, 3, . . . , N,


h
UN +1 = b.
2
Multiplicando por hk llegamos al siguiente sistema de ecuaciones:


U1 = a,

h2

Ui1 + 2Ui Ui+1 = f (xi ), i = 2, 3, . . . , N,


k
U = b.N +1

158
Este sistema de ecuaciones tiene N + 1 ecuaciones y N + 1 incognitas U1 , U2 , . . . , UN +1 .
El mismo, puede reescribirse de la siguiente manera:


U1 =a
h2



U + 2U U = f2

1 2 3

k




h2


U2 + 2U3 U4 = f3


k


. .. .
..


h2



U + 2U U = fN

N 1 N N +1

k




UN +1 = b,

En forma matricial resulta



1 0 0 ... ... 0 U1 a
1 2 1 0 . . . 0 U2 h2 f2
k
. . . .. U h2 f

0 1 2 1 .
3 k 3
= .

.
. . . . . . . . . . . 0 .. ...
. .
..

0 . . . 0 1 2 1 UN h2 fN

k
0 0 ... ... 0 1 UN +1 b

He aqu una implementacion computacional, que consiste en escribir un programa que


ensamble el sistema y lo resuelva:

Script poissondirichletdf1d.m.
% poissondirichletdf1d.m
%
% Programita para resolver la ecuacion de Poisson
% con condiciones de Dirichlet.
% Metodo: Diferencias finitas
%
% - k u(x) = f(x), 0 < x < L
% u(0) = a, u(L) = b

% % Parametros del problema


L = 1; k = 1; a = 2; b = -3;
f = @(x)( 100*exp(- 20*(x-L/3).^2 ) );

% % Parametros del metodo de resolucion


N = 30;

% % Armado de la matriz
h = L/N;
unos = ones(N+1,1);
diagonales = [-1*unos 2*unos -1*unos];

159
matriz = spdiags(diagonales, [-1 0 1], N+1, N+1);
matriz(1,[1:2]) = [1 0 ];
matriz(N+1,[N:N+1]) = [0 1];
% % Armado del lado derecho
X = linspace(0,L,N+1);
F = [a ; h^2/k*f(X(2:N)) ; b];

% % Resolucion
% Primero resolvemos para los puntos interiores (i=2:N)
U = matriz \ F;
% Ahora agregamos los valores en los extremos para graficar
figure(1); plot(X,U,*-)
Lo que puede demostrarse, a partir del error cometido por la formula en diferen-
cias (8.2) es que
Teorema 56. Si la solucion exacta u(x) de (8.1) es C 4 [0, L] entonces
1
max |u(xi ) Ui | CM4 h2 = CM4 L2 ,
i=1,2,...,N +1 N2
donde M4 = max[0,L] |uIV | y C es una constante que depende de los parametros k, L, de
la ecuacion, pero es independiente de la funcion f (x), y de los datos de borde a, b y del
parametro de discretizacion h (o N ).
Demostracion. La demostracion de este teorema queda fuera del alcance de este curso.
El lector interesado puede encontrarla en [Larsson-Thomee 2009, Ch. 4]
Observacion 57. Cuando uno escribe un programa como el anterior para resolver un
problema, debe verificar que funcione bien. Para ello, se busca una solucion exacta. Esto
parece difcil, pero es cuestion de elegir una u(x) cualquiera, que sea C 4 [0, L] aunque no
sea muy obvia, como lineal o cuadratica y luego, dado un k elegido, se calcula f (x), u(0)
y u(L).
2
Por ejemplo: Tomemos L = 1, k = 2 y u(x) = x2 + e(x0.5) . Para que esta u sea
solucion de (8.1), calculamos f = kuxx :
2 2
ux (x) = 2x 2(x 0.5)e(x0.5) , uxx (x) = 2 2[1 2(x 0.5)2 ]e(x0.5)
Luego, resolvemos el problema con
 
2 (x0.5)2
f (x) = 4 + 4[1 2(x 0.5) ]e = kuxx (x) con k = 2
 
2
a = e0.5 = u(0)
 
2
b = 1 + e0.5 = u(1) con L = 1
2
y deberamos obtener una solucion aproximada a u(x) = x2 + e(x0.5) .
Para estar seguros que el codigo esta bien programado, debemos verificar que cuando
tomamos h mas pequeno, el error maximo se reduce como Ch2 . Es decir, cada vez que
tomamos h igual a la mitad de un h anterior, el error debe reducirse por un factor 1/4.

160
Otras Condiciones de Borde
En esta seccion consideramos en el extremo derecho x = L una condicion de borde
diferente, que contiene a la de tipo Neumann y de tipo Robin.
Consideremos el problema


kuxx = f, 0 x L,
u(0) = a, (8.3)
ku0 (L) + H u(L) = H u .

1 2 E

Aqu los datos del problema son: k, L, f (x), a, H1 , H2 y uE .


La diferencia esencial entre este problema y el tratado en la seccion anterior radica
en la derivada u0 (L) que aparece en la condicion de borde.
Para no perder precision en el metodo, y mantener un error de orden O(h2 ), usaremos
una diferencia centrada para la derivada:

u(L + h) u(L h)
u0 (L) .
2h
Notamos que xN +2 = L + h es un punto que cae fuera del dominio [0, L] y por eso a xN +2
lo llamamos nodo ficticio. La condicion de borde se reemplaza entonces por la ecuacion

UN +2 UN
k + H1 UN +1 = H2 uE .
2h
Esta ecuacion reemplaza a la ecuacion UN +1 = b en el sistema del problema anterior.
Observamos que seguimos teniendo N +1 ecuaciones, pero ahora tenemos N +2 incognitas,
por lo que nos falta una ecuacion mas. Lo que hacemos es considerar xN +1 = L como un
nodo interior : imponemos la ecuacion diferencial ku00 = f en x = xN +1 = L. Es decir,
agregamos al sistema la ecuacion

UN + 2UN +1 UN +2
k = fN +1 .
h2
De esta manera, el sistema resulta


U1 =a

h2


U1 + 2U2 U3


= f2


k
h2




U2 + 2U3 U4 = f3
k



.. ..


. . (8.4)
2
h


UN 1 + 2UN UN +1


= fN


k
h2




UN + 2UN +1 UN +2 = fN +1
k





2hH1 2hH2

UN + UN +1 + UN +2 = uE ,
k k

161
De forma matricial se escribe de la siguiente manera:

a


1 0 0 ... ... 0
U1
h2
1 U2 k 2
f
1 0

2 ... 0
h2

.. .. U3

k 3
f
0

1 2 1 . .

..

..
= .

.
.. .. .. .. .. . .
. . . . 0 U h2

N 2k f N

0 . . . 0 1 2 1 UN +1 fN +1
h

2hH1
0 . . . 0 1 k
1 UN +2
k
2hH2
uE k

La implementacion computacional consiste en escribir un programa que ensamble el sis-


tema y lo resuelva. Aqu hay uno para MATLAB/OCTAVE):

Script poissonrobindf1d.m.
% poissonrobindf1d.m
%
% Programita para resolver la ecuacion de Poisson
% con condiciones de Dirichlet en x=0 y Robin en x=L.
% Metodo: Diferencias finitas
%
% - k u(x) = f(x), 0 < x < L
% u(0) = a, k u(L) + H1 u(L) = H2 uE

% % Parametros del problema


L = 1; k = 1; a = 2;
H1 = 20; H2 = 1; uE = 0;
f = @(x)(100*exp(-20*(x-.3).^2));
% f = @(x)( 100*(x>0.7) );

% % Parametros del metodo de resolucion


N = 30;

% % Armado de la matriz
h = L/N;
unos = ones(N+2,1);
diagonales = [-1*unos 2*unos -1*unos];
matriz = spdiags(diagonales, [-1 0 1], N+2, N+2);
matriz(1,[1:2]) = [1 0];
matriz(N+2, N:N+2) = [-1 2*h*H1/k 1];

% % Armado del lado derecho


X = linspace(0,L,N+1);
F = [ a ; h^2/k*f(X(2:N+1)) ; 2*h*H2*uE/k];

% % Resolucion
U = matriz \ F;

162
% Ahora eliminamos el valor del punto ficticio N+2
U(N+2) = []; % otra forma: U = U(1:N+1);
figure(1); plot(X,U,m-)

Tambien para este problema se tiene un resultado de estimacion del error, cuya de-
mostracion escapa al alcance de este curso:

Teorema 58. Si la solucion exacta u(x) de (8.3) es C 4 [0, L] entonces


1
max |u(xi ) Ui | CM4 h2 = CM4 L2 ,
i=1,2,...,N +1 N2

donde M4 = max[0,L] |uIV | y C es una constante que depende de los parametros k, L, H1 ,


H2 de la ecuacion, pero es independiente de la funcion f (x), del dato uE y del parametro
de discretizacion h.

8.1.2. Difusion no estacionaria


Consideremos ahora el problema de difusion no estacionaria siguiente


ut kuxx = f (x, t), 0 x L, 0 t T,

u(0, t) = a(t), 0 t T,
(8.5)
kux (L, t) + H1 u(L, t) = H2 uE (t),
0 t T,

u(x, 0) = u0 (x), 0 x L.

Aqu los datos del problema son: k, L, T , f (x, t), a(t), H1 , H2 , uE (t) y u0 (x).
Para resolver este problema consideramos la grilla de puntos (xi , tj ) con xi = (i 1)h
como antes y tj = jt, donde t es el parametro de discretizacion temporal.

Metodo explcito
Si aproximamos ut con una diferencia adelantada

u(x, t + t) u(x, t)
ut (x, t) ,
t
y uxx como antes

u(x h, t) 2u(x, t) + u(x + h, t)


uxx (x, t) ,
h2
obtenemos que en cada punto del dominio se cumple

u(x, t + t) u(x, t) u(x h, t) 2u(x, t) + u(x + h, t)


k f (x, t).
t h2
Si nos centramos en (x, t) = (xi , tj ), observando que xi h = xi1 , tj +t = tj+1 , tenemos
que
u(xi , tj+1 ) u(xi , tj ) u(xi1 , tj ) 2u(xi , tj ) + u(xi+1 , tj )
k f (xi , tj ).
t h2
163
Definimos las aproximaciones Uij de u(xi , tj ) de la siguiente manera:

Uij+1 Uij U j 2Uij + Ui+1


j
k i1 = fij ,
t h2

donde denotamos fij = f (xi , tj ). Observamos que solo hay un supra-ndice j + 1 en la


formula anterior. Si despejamos el termino Uij+1 que lo contiene obtenemos, llamando
= kt
h2
, la siguiente formula:

Uij+1 = tfij + Ui1


 j
+ (1 2)Uij + Ui+1
j

.

Esta formula sera util para calcular U en el interior de [0, L], para t > 0.
En t = 0 (j = 0) usaremos la condicion inicial u(x, 0) = u0 (x), por lo que tomaremos
0
Ui = u0 (xi ), i = 1, 2, . . . , N + 1.
En x = 0 usaremos la condicion de borde u(0, t) = a(t) por lo que tomaremos U1j =
a(tj ).
En x = L tenemos la condicion de borde kux (L, t) + H1 u(L, t) = H2 uE (t). Aproxi-
mando ux (L, t) u(L+h,t)u(Lh,t)
h
llegamos a la formula

UNj +2 UNj 2h
k + H1 UNj +1 = H2 uE (tj ) UNj +2 = (H2 uE (tj ) H1 UNj +1 ) + UNj .
2h k
A partir de estas formula, disenamos el siguiente metodo numerico para la ecuacion
de difusion (8.5): Sean N, M N y definamos h = L/N , t = T /M , = kt/h2

(j = 0) Ui0 = u0 (xi ), i = 1, 2, . . . , N + 1;

UN0 +2 = (H2 uE (0) H1 UN0 +1 ) 2h


k
+ UN0 ;

Para j = 0, 2, . . . M 1

U1j+1 = a(tj+1 );
Uij+1 = tfij + Ui1
 j
+ (1 2)Uij + Ui+1
j

, i = 2, . . . , N + 1;
UNj+1
+2 =
2h
k
(H2 uE (tj+1 ) H1 UNj+1 j+1
+1 ) + UN ;

He aqu una implementacion para MATLAB/OCTAVE de este metodo de resolucion:

Script difusionrobindf1dexpl.m.
% difusion_robin_df_1d_expl.m
%
% Programita para resolver la ecuacion de Difusion
% con condiciones de Dirichlet en x=0 y Robin en x=L.
% Metodo: Diferencias finitas en espacio y Euler EXPLICITO en tiempo.
%
% u_t(x,t) - k u_xx(x,t) = f(x,t), 0 < x < L, t > 0
% u(0,t) = a(t), k u(L,t) + H1 u(L,t) = H2 uE(t), t > 0
% u(x,0) = u0(x), 0 < x < L.

164
% % Parametros del problema
L = 1; T = 2.5; k = 1;
f = @(x,t)(10*exp(-100*(x-.5).^2)*(t<1.5));
a = @(t)(0);
H1 = 3; H2 = 3; uE = @(t)(0);
u0 = @(x)(zeros(size(x)));

% % Parametros del metodo de resolucion


N = 30;
h = L/N;
lambda = 0.25; % la mitad de lo necesario para tener estabilidad
deltat = lambda*h^2/k;

% % Condicion inicial
X = linspace(0,L,N+1);
U = u0(X);
% le damos valor a la U en el nodo ficticio (t=0)
U(N+2) = (H2*uE(0)-H1*U(N+1))*2*h/k + U(N);

ejes = [0 L 0 1];
figure(1); plot(X,U(1:N+1));
title(t = 0)
axis(ejes); pause

% % Resolucion
for t=deltat:deltat:T
% calculamos U en los nodos "interiores"
U(2:N+1) = deltat*f(X(2:N+1), t) ...
+ lambda*U(1:N) + (1-2*lambda)*U(2:N+1) + lambda*U(3:N+2);
% le damos valor a U en el extremo izquierdo
U(1) = a(t);
% le damos valor a la U en el nodo ficticio
U(N+2) = (H2*uE(t)-H1*U(N+1))*2*h/k + U(N);

figure(1); plot(X,U(1:N+1),*-);
title(sprintf(t = %5.3f,t));
axis(ejes); pause(0.01);
end

Este metodo tiene una restriccion para resultar estable. Si observamos el termino que
multiplica Uij en la formula para Uij+1 vemos que es 1 2 con = kt/h2 . Resulta que
si 1/2, de manera que 1 2 0 se observa un fenomeno de inestabilidad (verificarlo
con el codigo) que hace que las soluciones oscilen en cada paso de tiempo. Lo que ocurre
es que pequenos errores de redondeo se magnifican exponencialmente.
Se recomienda, una vez elegido h, elegir t de manera que 1/4, para que el
algoritmo funcione correctamente. Mas aun, en el codigo que mostramos, elegimos y

165
2
luego t se calcula para que = kt
h2
, es decir t = hk .
Tambien hay estimaciones del error, que resumimos en el siguiente Teorema.

Teorema 59. Si la solucion exacta u(x, t) de (8.5) es C 4 [0, L] para la variable x y C 2 [0, T ]
para la variable T , entonces, si = kt/h2 < 1/2, resulta

max |u(xi , tj ) Uij | C(h2 + t)M4,2 ,


i=1,2,...,N +1
j=1,2,...,M

donde M4,2 = max[0,L][0,T ] |uxxxx |+|utt | y C es una constante que depende de los parame-
tros k, L, H1 , H2 de la ecuacion, pero es independiente de la funcion f (x, t), del dato
inicial u0 (x), de los datos de borde a(t), uE (t) y de los parametro de discretizacion h, t.

Metodo implcito
Cuando los coeficientes son variables, o cuando queremos resolver problemas en dos
o tres dimensiones espaciales, la condicion de estabilidad puede ser mas difcil de deter-
minar. En esta seccion veremos un metodo que es incondicionalmente estable, es decir,
resulta estable sin importar la relacion entre t y h.
La diferencia principal con el metodo obtenido anteriormente esta en aproximar la
derivada temporal ut por una diferencia atrasada en lugar de adelantada. Es decir, con-
sideraremos que
u(xi , tj+1 ) u(xi , tj )
ut (xi , tj+1 ).
t
Por lo tanto, vemos que

u(xi , tj+1 ) u(xi , tj ) u(xi1 , tj+1 ) 2u(xi , tj+1 ) + u(xi+1 , tj+1 )


k f (xi , tj+1 ).
t h2

Definimos entonces las aproximaciones Uij de u(xi , tj ) de la siguiente manera:


j+1
Uij+1 Uij Ui1 2Uij+1 + Ui+1
j+1
k 2
= fij+1 .
t h
Si ahora despejamos las incognitas con supra-ndice j + 1 a la izquierda, nos queda
j+1
Ui1 + (1 + 2)Uij+1 Ui+1
j+1
= tfij+1 + Uij .

Vemos que no queda Uij+1 despejada sola a la izquierda, sino que queda relacionada con
j+1 j+1
Ui1 y con Ui+1 . Por eso se dice que el metodo es implcito.
Por lo tanto, en cada paso de tiempo deberemos resolver un sistema de ecuaciones.
Esto es un poco mas costoso computacionalmente que lo que se hace en el caso explcito,
pero se gana en estabilidad.

El metodo implcito resulta estable para cualquier t > 0.

Si incorporamos las condiciones de borde, vemos que, conocido Uij , para un j dado y
para i = 1, 2, . . . , N + 2, los valores Uij+1 , i = 1, 2, . . . , N + 2 deben satisfacer el siguiente

166
sistema de N + 2 ecuaciones


U1j+1 = a(tj+1 ),

j+1
+ (1 + 2)Uij+1 Ui+1
j+1
= tfij+1 + Uij ,

Ui1 i = 2, 3, . . . , N + 1, (8.6)
2hH1 j+1 2hH2
UNj+1 + UN +1 + UNj+1

+2 = uE (tj+1 ).


k k
En forma matricial, el sistema a resolver en cada paso de tiempo resulta:

U1j+1

a(tj+1 ) 0
1 0 0 ... ... 0

j+1 j f2j+1
1 + 2 U2j+1 U2j

0 . . . 0 j+1
U3 U3
.. f
...

3
0 1 + 2 . .. ..

.
. . . . . . = . + t .. .
.. .. .. .. .. 0 UNj+1 UNj
j+1
fN
0 ... 0 1 + 2 j+1 j
j+1
U N +1 U N +1
f
N +1

0 ... 0 1 2hH 1
1
k UNj+1
+2
2hH2
k
uE 0

Esto debe repetirse para j = 0, 1, 2, . . . , M luego de haber definido


2h
Ui0 = u0 (xi ), i = 1, 2, . . . , N + 1 y UN0 +2 = (H2 uE (0) H1 UN0 +1 ) + UN0 .
k
He aqu una implementacion de este metodo de resolucion para MATLAB/OCTAVE:

Script difusionrobindf1dimpl.m.
% difusion_robin_df_impl_1d.m
%
% Programita para resolver la ecuacion de Difusion
% con condiciones de Dirichlet en x=0 y Robin en x=L.
% Metodo: Diferencias finitas en espacio y Euler IMPLICITO en tiempo.
%
% u_t(x,t) - k u_xx(x,t) = f(x,t), 0 < x < L, t > 0,
% u(0,t) = a(t), k u(L,t) + H1 u(L,t) = H2 uE(t), t > 0,
% u(x,0) = u0(x), 0 < x < L.

% % Parametros del problema


L = 1; T = 2.5; k = 1;
f = @(x,t)(10*exp(-100*(x-.5).^2)*(t<1.5));
a = @(t)(0);
H1 = 3; H2 = 3; uE = @(t)(0);
u0 = @(x)(zeros(size(x)));

% % Parametros del metodo de resolucion


N = 30;
h = L/N;
lambda = 0.25; % la mitad de lo necesario para tener estabilidad
deltat = lambda*h^2/k;

167
% % Condicion inicial
X = linspace(0,L,N+1);
U = u0(X);
% le damos valor a la U en el nodo ficticio
U(N+2) = (H2*uE(0)-H1*U(N+1))*2*h/k + U(N);

ejes = [0 L 0 1];
figure(1); plot(X,U(1:N+1));
title(t = 0);
axis(ejes); pause

% % Armado de la matriz
unos = ones(N+2,1);
columnas = [-lambda*unos (1+2*lambda)*unos -lambda*unos];

matriz = spdiags(columnas, [-1 0 1], N+2, N+2);


matriz(1,1:3) = [1 0 0];
matriz(N+2, N:N+2) = [-1 2*h*H1/k 1];

% % Resolucion
F=zeros(N+2,1);

for t=deltat:deltat:T
% Ensamblado del lado derecho
U(1) = a(t);
U(N+2) = 2*H2*h/k*uE(t);

F = [ 0 ; f(X(2:N+1),t) ; 0 ];

lado_derecho = U + deltat*F;

% calculamos la nueva U
U = matriz \ lado_derecho;

figure(1);

plot(X,U(1:N+1),*-);
title(sprintf(t = %5.3f,t));
axis(ejes); pause(0.01);
end

Tambien hay estimaciones del error, que resumimos en el siguiente Teorema.

Teorema 60. Si la solucion exacta u(x, t) de (8.5) es C 4 [0, L] para la variable x y C 2 [0, T ]

168
para la variable T , entonces resulta

max |u(xi , tj ) Uij | C(h2 + t)M,


i=1,2,...,N +1
j=1,2,...,M

donde M = max[0,L][0,T ] |uxxxx |+|utt | y C es una constante que depende de los parametros
k, L, H1 , H2 de la ecuacion, pero es independiente de la funcion f (x, t), del dato inicial
u0 (x), de los datos de borde a(t), uE (t) y de los parametro de discretizacion h, t.

8.2. Diferencias finitas en 2D


El metodo de diferencias finitas se extiende naturalmente a dominios bidimensionales
de forma rectangular o que sean uniones finitas de rectangulos, y el analisis puede hacerse
de manera similar. Lo complicado es numerar los nodos con un solo ndice, y encontrar
la manera automatica de armar la matriz del sistema, pero pensando un poco es posible.
Consideremos la ecuacion del calor con condiciones de borde de tipo Dirichlet, es
decir, temperatura conocida, sobre el dominio = (0, 1) (0, 1) = {(x, y) R2 : 0
x 1, 0 y 1} R2

ut k(uxx + uyy ) = f, en para t 0,


u = , en para t 0,
u = u0 , en para t = 0.

8.2.1. Estado estacionario (Ecuacion de Poisson)


Consideremos primero esta ecuacion en estado estacionario, es decir, consideremos
u = u(x, y) y ut = 0. Luego resulta la ecuacion de Poisson, que consiste en hallar u =
u(x, y), u : R tal que

k(uxx (x, y) + uyy (x, y)) = f (x, y), para (x, y) ,


(8.7)
u(x, y) = (x, y), (x, y) .

Dado N N, definimos h = 1/N y xi = ih, yj = jh i, j = 0, 1, . . . , N , y resulta,


denotando ui,j = u(xi , yj ),

2u 2u
2 u(xi , yj ) = (x i , yj ) + (xi , yj )
x2 y 2
ui+1,j 2ui,j + ui1,j h2 4 u ui,j+1 2ui,j + ui,j1 h2 4 u
= + (i,j , yj ) + + (xi , i,j )
h2 12 x4 h2 12 y 4
ui+1,j + ui,j+1 4ui,j + ui1,j + ui,j1 h2 h 4 u 4u i
= + (i,j , yj ) + (x i , i,j )
h2 12 x4 y 4
Por lo tanto, si la solucion u(x, y) de (8.7) es C 4 en , satisface
ui+1,j ui,j+1 + 4ui,j ui1,j ui,j1
k = fi,j + O(h2 )
h2
para i, j = 1, 2, . . . , N 1. Aqu fi,j denota la evaluacion de f en (xi , yj ), respectivamente.

169
A partir de estas expresiones, definimos Ui,j , aproximaciones de ui,j a traves de las
siguientes igualdades:
Ui+1,j Ui,j+1 + 4Ui,j Ui1,j Ui,j1
k = gi,j , i, j = 1, 2, . . . , N 1,
h2
(8.8)
U0,j = (0, yj ), UN,j = (1, yj ), j = 0, 1, . . . , N,
Ui,0 = (xi , 0), Ui,N = (xi , 1), i = 0, 1, . . . , N.

Esto resulta en un sistema de (N + 1)2 ecuaciones lineales con (N + 1)2 incognitas.


Tambien aqu puede demostrarse que el sistema tiene solucion unica y ademas se
cumple que
max |u(xi , yj ) Ui,j | Ch2 ,
0i,jN

con C una constante que depende de derivadas de hasta orden cuatro de u.

Observacion 61. Para implementarlo debemos numerar los nodos e incognitas con un
solo ndice, por ejemplo k = (i 1)(N + 1) + j. Al hacer esto, el sistema resulta con
una matriz pentadiagonal en lugar de tridiagonal. A continuacion mostramos un codigo
ejemplo

% poisson_dirichlet_2d.m
% Metodo de diferencias finitas en 2d
% para el problema
%
% - k (u_xx + u_yy) = f(x,y), (x,y) en Omega = (a,b) x (a,b)
% u(x,y) = alfa(x,y), (x,y) en la frontera de Omega
%

%% Parametros del problema


a = 0; b = 1; k = 0.001;
f = @(x,y) ones(size(x));
alfa = @(x,y) zeros(size(x));

%% Parametros de la resolucion
N = 30;

%% Resolucion
h=1/N;
xx=linspace(a,b,N+1);
yy=xx;
[x,y] = meshgrid(xx,yy);
x = x; x=x(:);
y = y; y=y(:);
F=f(x,y);
ALFA=alfa(x,y);

diagonales = ones((N+1)^2,1)*(k*[ -1 -1 4 -1 -1 ]/h^2);

170
M = spdiags(diagonales, [N+1 1 0 -1 -(N+1)], (N+1)^2, (N+1)^2);
M = M;

rhs = F;

% Ahora corregimos las ecuaciones de los nodos del borde


% piso techo pared izq pared der
ind=[1:N+1 (N+1)^2-N:(N+1)^2 N+2:N+1:N^2 2*(N+1):N+1:(N+1)*N];
M(ind,:) = 0; M = M + sparse(ind,ind,1);
rhs(ind) = ALFA(ind);

%% Resolvemos
U = M\rhs;

% Transformamos a matrix para graficar


U = vec2mat(U,N+1);
figure(1); mesh(xx,yy,U); xlabel(x); ylabel(y);
title(sprintf(N = %d, N))

8.2.2. Difusion no estacionaria en 2D


En esta seccion consideraremos el metodo implcito, analogo al visto en la seccion 8.1.2
para difusion en 1D. Pero lo haremos de otra forma. Consideremos la ecuacion del ca-
lor con condiciones de borde de tipo Dirichlet, es decir, temperatura conocida, sobre el
dominio = (0, 1) (0, 1) = {(x, y) R2 : 0 x 1, 0 y 1} R2
ut k(uxx + uyy ) = f, en para t 0,
u = , en para t 0,
u = u0 , en para t = 0.
Una discretizacion de la variable tiempo utilizando un metodo de Euler implcito consiste
u(x, t, yn ) u(x, y, tn1 )
en aproximar ut (x, y, tn ) por , con algun t > 0 pequeno. Si
n
t
ahora u denota la aproximacion de u en t = tn que resulta de reemplazar ut por esta
formula, obtenemos:
un un1
k(unxx + unyy ) = f n , en para n 1,
t
un = n , en para n 1,
u0 = u0 , en .
Despejando un en la primera ecuacion, obtenemos que cada un debe satisfacer
un tk(unxx + unyy ) = un1 + tf n , en para n 1,
n n
(8.9)
u = , en para n 1,
De esta manera, dado u0 = u0 , resulta que u1 es la solucion de una ecuacion en
derivadas parciales con valores en el borde. Una vez hallado u1 , u2 es la solucion de

171
otro problema del mismo tipo, y as sucesivamente. Cada uno de estos problemas puede
resolverse de manera similar a la ecuacion de Poisson, discretizando en x y en y con un
parametro h = 1/N . Mas precisamente, aproximaremos unxx (xi , yj ) + unyy (xi , yj ) por la
formula
uni+1,j + uni,j+1 4uni,j + uni1,j + uni,j1
h2
Reemplazando esta formula en (8.9) obtenemos el siguiente sistema de ecuaciones para
n
Ui,j , que son las aproximaciones de uni,j , para n = 1, 2, 3, . . .

n kt n n n n n
 n1 n
Ui,j 2
U i+1,j + U i,j+1 4Ui,j + U i1,j + Ui,j1 = Ui,j + tfi,j , i, j = 1, 2, . . . , N 1,
h
n
U0,j = (0, yj , tn ), UN,j = (1, yj , tn ), j = 0, 1, . . . , N,
Ui,0 = (xi , 0, tn ), Ui,N = (xi , 1, tn ), i = 0, 1, . . . , N.

kt
Llamando = h2
obtenemos

n n n n n n1 n
Ui+1,j Ui,j+1 + (1 + 4)4Ui,j Ui1,j Ui,j1 = Ui,j + tfi,j , i, j = 1, 2, . . . , N 1,
n n n
U0,j = (0, yj , t ), UN,j = (1, yj , t ), j = 0, 1, . . . , N,
Ui,0 = (xi , 0, tn ), Ui,N = (xi , 1, tn ), i = 0, 1, . . . , N.

Esto resulta en un sistema de (N + 1)2 ecuaciones con (N + 1)2 incognitas, que debe ser
resuelto en cada paso de tiempo. Es decir, para n = 1, 2, . . . .
Sin decirlo explcitamente, hemos supuesto que la condicion inicial viene dada por
0
Ui,j = u0 (xi , yj ). La implementacion de este metodo se puede encontrar en el entorno
virtual, en el archivo: difusion_dirichlet_df_2d.m

8.3. Ejercicios
8.1. Demuestre que si u C 2 , entonces

0
u (x) u(x + h) u(x) M2
h,
h 2

con M2 = max[x,x+h] |u00 |.

8.2. Demuestre que si u C 3 , entonces



h h

0 u(x + 2
) u(x )
2 M3 2
u (x) h,
h 24

con M3 = max[xh,x+h] |u000 |.

8.3. Extraiga el codigo poissondirichletdf1d.m del apunte y verifique que el error


tienda a cero como Ch2 siguiendo la sugerencia de la Observacion 57.

172
8.4. Consideremos el siguiente problema:
10(x0.7)2

uxx = 20e
, 0 x 1,
u(0) = 5,

u(1) = 6.

Calcule utilizando la computadora y de una aproximacion de u(1/2) con un error


absoluto menor a 103 .

8.5. Utilice el codigo poissondirichletdf1d.m para resolver los siguientes problemas


(x0.5)2 (x0.5)2

uxx = 200e 20 ,
0 x 1, uxx = 200e 20 ,
0 x 1,
(a) u(0) = 0 (b) u(0) = 0

0
0
u (1) = 0. u (1) = u(1).

Grafique las soluciones obtenidas con N = 100 (h = 1/100). Se anima a dar una interpre-
tacion fsica de las soluciones obtenidas? Recuerde que la ecuacion estudiada corresponde
al estado estacionario de la ecuacion de difusion.

8.6. Escriba una discretizacion analoga a (8.4) para el problema estacionario de difusion
y reaccion siguiente:

kuxx + c u = f, 0 x L,
u(0) = a,
ku0 (L) + H u(L) = H u .

1 2 E

Aqu k, c son las constantes positivas de difusion y reaccion, respectivamente. Expresar


tambien en forma matricial. Implemente en MATLAB/OCTAVE y verificar su funciona-
miento con una solucion exacta.

8.7. Considere el siguiente problema:



uxx + 5u = 100x(1 x),
0 x 1,
u(0) = 0,
u0 (1) = 0.

Calcule utilizando la computadora y de una aproximacion de u(1/2) con un error absoluto


menor a 103 .

8.8. Utilice el codigo MATLAB/OCTAVE correspondiente para resolver los siguientes


problemas:
(x0.5)2 (x0.5)2

uxx + 10u = 200e 20 ,
0 x 1, uxx + 10u = 200e 20 ,
0 x 1,
(a) u(0) = 0 (b) u(0) = 0

u0 (1) = 0. u0 (1) = u(1).

Que diferencias observa con las soluciones del problema 8.5?

173
8.9. Consideremos la siguiente ecuacion del calor:


ut uxx = 100(1 x), 0 x 1, t 0,

u(0, t) = 0, t 0,

ux (1, t) = 0, t 0,

u(x, 0) = 5x(2 x), 0 x 1.

(a) Determine el estado estacionario, al que llamaremos u (x).

(b) Utilizando el metodo numerico implcito, con N = 40 y = 4, determine el valor de


t a partir del cual se cumple que

max |u(x, t) u (x)| 0.1.


0x1

8.10. Utilice el programa difusionrobindf1dimpl.m del apunte (con N = 40 y = 1,


o sea t = h2 ) para resolver los siguientes problemas:


ut 2uxx = 0, 0 x 1, t 0,
ut 6uxx = 0, 0 x 1, t 0,

u(0, t) = 1, t 0, u(0, t) = 1, t 0,
(a) (b)
ux (1, t) = 0,
t 0,
ux (1, t) = 0, t 0,

10x
u(x, 0) = e , 0 x 1. u(x, 0) = e10x , 0 x 1.

Determine en cada caso la solucion estacionaria u (x) y el tiempo t para el cual se cumple

max |u(x, t) u (x)| 0.01.


0x1

A partir de estos calculos, deduzca que efecto tiene sobre la solucion el cambio en el
coeficiente de difusion.
8.11. Modifique el programa difusionrobindf1dimpl.m para resolver problemas de
reaccion-difusion como el siguiente:


ut kuxx + c u = f, 0 x L, t 0,

u(0, t) = a(t) t 0,

kux (L, t) + H1 u(L, t) = H2 uE (t), t 0,

u(x, 0) = u0 (x), 0 x L,

8.12. Utilice el programa del ejercicio anterior (con N = 40 y = 1, o sea t = h2 ) para


resolver los siguientes problemas:
ut uxx + u = 0, 0 x 1, t 0, ut uxx + 10 u = 0, 0x




u(0, t) = 1, t 0, u(0, t) = 1, t 0,



(a) (b)

ux (1, t) = 0, t 0,
ux (1, t) = 0, t 0,
2
2
u(x, 0) = e100(x0.5) , 0 x 1. u(x, 0) = e100(x0.5) ,

0x

Grafique ambas soluciones en diferentes instantes de tiempo entre t = 0 y t = 10 y


deduzca que efecto tiene sobre la solucion el cambio en el coeficiente de reaccion.

174
8.13. Considere la siguiente ecuacion del calor:


ut uxx = 100, 0 x 1, t 0,

u(0, t) = 0, t 0,
()

ux (1, t) = u(1, t), t 0,

u(x, 0) = 10x(1 x)2 , 0 x 1.

(a) Determine el estado estacionario, al que llamaremos u (x).

(b) Para u(x, t) la solucion de (), determine el lmite cuando t de u(1/2, t).

(c) Utilizando el metodo numerico implcito, con N = 40 y = 4, determine el primer


valor de t para el que se cumple que

u(1/2, t) > 23.

8.14. Considere el siguiente problema de difusion-reaccion (no estacionario):




ut uxx + u = f (x, t), 0 x 1,

u(0, t) = 0,

ux (1, t) = 0,

u(x, 0) = 10x2 + 20x.

(a) Modifique
( el codigo desarrollado en clase para resolver este problema con f (x, t) =
100, si t < 2,
. Resuelva con N = 40 y = 4. Visualice la solucion durante el
0, si t 2.
intervalo de tiempo entre t = 0 y t = 4. Explique con palabras lo que se observa,
interpretando u como una temperatura.

(b) Determine el instante de tiempo en que la temperatura en el punto medio es menor


a 7.

Si le interesa leer un poco mas sobre los temas de este captulo, le recomendamos el
siguiente libro:

175
Bibliografa

[Larsson-Thomee 2009] Larsson, S., Thomee, V., Partial Differential Equations with Nu-
merical Methods, Springer, 2009.

176

Anda mungkin juga menyukai