Você está na página 1de 176

Apunte para la asignatura Matemática D

Departamento de Matemática
Facultad de Ingenierı́a Quı́mica
Universidad Nacional del Litoral

16 de marzo de 2016
Capı́tulo 1

Errores y representación de números

1.1. Error absoluto y relativo


Definición 1. Supongamos que p̂ es una aproximación del número p. El error absoluto
es
Ep = |p − p̂|
y el error relativo es
|p − p̂|
Rp = , si p 6= 0.
|p|
Observación 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 aproximación p̂.

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

Veamos algunos ejemplos:


|p−p̂|
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 · · · × 10−5 (0.003 %)
1 × 10−6 1.1 × 10−6 0.1 × 10−6 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 métodos numéricos permiten hallar una aproximación p̂ de una solución
exacta p y proporcionan una estimación 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 aproximación p̂ y una cota para el error absoluto nos permiten establecer
un intervalo donde está 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 estimación Ep ≤ ep (es decir, conocemos ep ), intentamos hallar


una estimación 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 pequeño en relación a |p̂| (un 10 % o menos), entonces es muy
|p̂| − ep
ep
aproximado a .
|p̂|
Muchos algoritmos como los que veremos más adelante se detienen cuando se cumple
ep
que es menor a una tolerancia preestablecida para el error relativo.
|p̂|
En general, un método numérico para calcular soluciones de ecuaciones provee suce-
sivas aproximaciones p̂ y estimaciones del error absoluto ep .
Si se desea una aproximación con un error absoluto menor a una tolerancia tol,
detendremos el procedimiento cuando se cumpla ep < tol.
Si se desea una aproximación 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

¿Qué ocurrió? Ocurre que 2.4495 no es igual a 6 sino sólo una aproximación. Es im-
portante notar que aunque MATLAB muestra que la respuesta a sqrt(6) es 2.4495, en
realidad calculó la raı́z de 6 con 16 dı́gitos exactos. Veamos:

>> sqrt(6)
ans =

3
2.4495
>> ans^2
ans =
6.0000

Para evitar escribir todo el número o copiar y pegar, usamos la variable ans que almacena
el último resultado calculado (que no es asignado a otra variable) con todos los dı́gitos
calculados. Por eso parece que el cálculo 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 más dı́gitos, usamos format long:

>> format long


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

Aquı́ se ven todos los dı́gitos que MATLAB calculó de 6. Nuevamente, para evitar
escribir todo el número o copiar y pegar, usamos la variable ans que almacena el último
resultado calculado (que no es asignado a otra variable).
Ahora bien, ¿cuál es el error entre el último número calculado y 6? Veamos

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

El error es aproximadamente 8.88 × 10−16 .


Las versiones actuales de MATLAB/OCTAVE almacenan de cada número 53 dı́gitos
binarios, que corresponden a 16 dı́gitos 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 × 10−20 :

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

¿Eh? ¿Qué ocurrió? Sucede que cuando la computadora suma 1 más 2 × 10−20 la suma
le da 1 porque redondea al número más cercano que puede representar con 16 dı́gitos:

1 + 2 × 1020 = 1.00000000000000000002 ≈ 1.000000000000000

Los últimos números, marcados en gris, se pierden al hacer la operación 1 + x, luego, al


restarle 1 a ese resultado, el resultado final da cero.
En conclusión, cuando sumo cantidades que tienen magnitudes que difieren en más
de 16 dı́gitos, se ignora el número más pequeño.

Observación 3 (Notación cientı́fica). En MATLAB, para ingresar el número 1, 23 × 109


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

1.3. Pérdida de cifras significativas o aumento del


error relativo
Consideremos un ejemplo:

x = 22.3829, x̂ = 22.3830593, y = 22.3610, ŷ = 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 10−6 y menores a 10−5 . Se dice que
x̂ y ŷ tienen 5 cifras significativas correctas. ¿Qué ocurre cuando restamos x̂ 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 10−2 .


Pasamos de errores relativos de orden 10−6 a errores relativos de orden 10−2 . En
términos de cifras significativas, pasamos de 5 a 2!!! Este fenómeno se conoce como pérdida
de cifras significativas, y ocurre al restar números muy cercanos.

Si le interesa leer un poco más sobre los temas de este capı́tulo, le recomendamos
la sección 1.3 del libro de John H. Mathews, Kurtis D. Fink, Métodos numéricos con
MATLAB, Pearson Educación, Prentice-Hall, 2000.

6
Capı́tulo 2

Resolución de ecuaciones no lineales

El objetivo de este capı́tulo es conocer métodos para aproximar soluciones de ecua-


ciones donde la incógnita no se puede despejar.
Consideremos el siguiente problema:

Determinar cuánto se sumerge una esfera de madera de densidd ρ = 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
4πr3 /3, por lo que la masa de la esfera es Me = 4πρr3 /3. Si una esfera se sumerge d
centı́metros, entonces el volumen del lı́quido desalojado es
Z d
πd2 (3r − d)
Vd = π(r2 − (x − r)2 ) dx [cm3 ] = [cm3 ].
0 3
Según el principio de Arquı́medes, todo cuerpo que se sumerge en un lı́quido recibe un
empuje de abajo hacia arriba igual al peso del volumen del lı́quido desalojado. Luego, la
esfera flotará cuando se sumerja una profundidad d que haga que el peso del volumen
del lı́quido desalojado sea igual al peso de la esfera. Como la densidad del agua pura es
1 g/cm3 , el peso del volumen del lı́quido desalojado al sumergirse d centı́metros será

πd2 (3r − d)
[g]
3
y el peso de la esfera es
4πρr3 /3 [g].
Luego, la ecuación que queremos resolver es:

πd2 (3r − d)
= 4πρr3 /3
3
que equivale a
4r3 ρ − 3rd2 + d3 = 0.
Notemos que r y ρ se conocen, y que la incógnita 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 solución, es decir, si existe d entre 0 y 20(= 2r) tal
que 4r3 ρ − 3rd2 + d3 = 0 podemos graficar la función f (x) = 4r3 ρ − 3rx2 + x3 sobre
ese intervalo; aquı́ cambiamos d por x porque estamos acostumbrados a usar x para la
incógnita. 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

Observación 4 (sobre MATLAB). Algunos comentarios sobre las lı́neas de MATLAB que
acabamos de ver:

La lı́nea f = @(x) 4*r^3*rho - 3*r*x.^2 + x.^3


define una función de la variable x, usando los valores de r y rho definidos en las lı́neas
anteriores.

La lı́nea x=linspace(0,2*r,101); genera una lista de 101 números uniformemente dis-


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

La lı́nea plot(x,f(x),’*-’)
genera el gráfico 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 definición 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 opción ’*-’ indica que por cada punto de la tabla de valores se
debe dibujar un * y que los mismos deben ser unidos por una lı́nea -.

La lı́nea grid indica que debe hacerse un cuadriculado a la gráfica.

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

Vemos en el gráfico que la gráfica corta el eje de las x en un punto cercano a x = 12.
Por lo tanto, dˆ = 12 cm es una primera aproximación a la solución del problema.
El objetivo de este capı́tulo es aprender sobre métodos iterativos para resolver ecua-
ciones donde no se pueda despejar la incógnita. En general, estos métodos parten de una
aproximación inicial p0 y construyen una sucesión p1 , p2 , . . . de aproximaciones cada vez
más precisas de la solución exacta p.

8
2.1. Métodos de punto fijo
El primer método que veremos es el método en que hay una fórmula, representada
por una función g que, dada una aproximación pn nos dice cómo calcular pn+1 . Es decir,
si comenzamos con una primera aproximación p0 ,

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

Consideremos algunos ejemplos para ir ganando intuición

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(pn−1 ) = 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 iteración converge a p = 0.7391 (si miramos 4 dı́gitos después de la


coma).

Nos preguntamos entonces, ¿a qué converge una iteración de la forma pn+1 = g(pn )?
Observemos nuevamente lo que quiere decir iteración de la forma pn+1 = g(pn ):

p1 = g(p0 )
p2 = g(p1 )
..
.
pn = g(pn−1 )
pn+1 = g(pn )
↓ ↓
p = g(p)

Vemos que si pn → p entonces lo que está a la izquierda del signo igual converge a p.
Ahora bien, si g es una función continua y pn → p, entonces g(pn ) → g(p). Es decir, lo
que está a la derecha del signo igual, converge a g(p).
Por lo tanto, si la iteración de punto fijo pn+1 = g(pn ) genera una sucesión convergente
a p, resulta que
p = g(p).

De aquı́ surge la siguiente definición.

10
Definición 8 (Punto fijo). Un pun-
to fijo de una función g es un núme-
ro p tal que p = g(p). Geométrica-
mente, p es un punto fijo si es la
abscisa (y también la ordenada) de
un punto intersección entre la gráfi-
ca de y = x y la de y = g(x).

Lo que razonamos antes de esta definición es la demostración del siguiente teorema:

Teorema 9. Supongamos que g es una función continua y {pn }∞ n=0 es una sucesión
generada por la iteración 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: ¿Qué 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 función 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].

Demostración. Definimos f (x) = g(x) − x. Como g es continua, f también es continua.


Veamos la demostración de (i), la de (ii) es análoga.
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].

Observación 11. El Teorema 9 nos dice que el método de punto fijo con una función g
converge a un p tal que p = g(p). Por lo tanto, si queremos resolver una ecuación por el
método de punto fijo, debemos transformarla en una ecuación 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 función g(x) = e−x en el intervalo [0, 1]. ¿Tiene un
punto fijo? Sı́, pues g(0) = 1 > 0 y g(1) = e−1 ≈ 0.3679 < 1. Veamos qué ocurre al iterar
pn+1 = e−pn 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 iteración converge a p = 0.5671 que cumple p = e−p .

Ejemplo 13. Consideremos la función 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 qué
ocurre al iterar pn+1 = e−pn 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.

Observación 14 (Conclusión importante). La iteración de punto fijo no siempre con-


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

Nos preguntamos ahora, ¿en qué casos podemos asegurar que la iteración de punto
fijo converge?
Analicemos los siguientes casos gráficamente:

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 iteración de punto fijo pn+1 = g(pn )


genera una sucesión {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
f (b) − f (a)
g 0 (z) = .
b−a
Geométricamente, 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)).
Demostración 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 + δ].
Además, 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 − pn−1 |
|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 cálculo numérico suele aparecer esta otra versión del teorema del
punto fijo.

Teorema 17 (Punto fijo, otra versión). Sea g una función 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 único punto fijo p en ese intervalo.

Comenzando a partir de cualquier p0 ∈ [a, b], la iteración de punto fijo pn+1 = g(pn )
converge p y más aún,
|p − pn | ≤ K n |p − p0 |. (2.1)

Observación 18. La demostración es similar a la del teorema anterior, y por ello no


la escribimos aquı́. Vale la pena destacar que la acotación (2.1) sirve para entender la
velocidad de convergencia del método e incluso determinar cuántas iteraciones hacen falta
para tener un error absoluto menor que cierta tolerancia.
Observemos que en general p se desconoce, y sólo se sabe que está en el intervalo [a, b].
Por otro lado, p0 sı́ se conoce, pues es un número inicial que nosotros proponemos. Como
ambos están en [a, b] concluimos que

|p − p0 | ≤ |b − a|.

De esta manera, la acotación (2.1) resulta

|p − pn | ≤ K n |b − a|.

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


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

Observación 19 (Criterio de parada). Aunque la observación anterior permite calcular


cuántas iteraciones harı́an 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 algún número 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 observación, si se quiere calcular una aproximación de p con un error


absoluto menor a tol, se detienen las iteraciones del método de punto fijo cuando

|pn+1 − pn | < tol.

A continuación mostramos una implementación del método de punto fijo para resolver
la ecuación
cos x
x= .
2
Es importante notar que no se almacenan todas las iteraciones sino las últimas dos.
La última en la variable p y la anterior a la última en p0. El algoritmo se detiene entonces
cuando abs(p-p0) ≤ tol . Para asegurarnos que esto ocurra, lo que está dentro del
bloque while se ejecuta mientras abs(p-p0) > tol .
El control por el número máximo de iteraciones se realiza porque puede ocurrir que
estemos ante un caso en que el método de punto fijo no converge, y entonces hacemos
que finalice cuando se supera este número.
Al finalizar el bloque while, hay un bloque if. Este bloque pregunta: si abs(p-p0) > tol,
eso quiere decir que el while terminó porque se alcanzó el número máximo de iteraciones.
En ese caso se informa Se alcanzo el nro maximo de iteraciones. En caso contrario
(else) quiere decir que el bloque while finalizó porque se alcanzó la tolerancia desea-
da, es decir no se cumple más que abs(p-p0) > tol, luego abs(p-p0) ≤ tol , que
equivale a |pn+1 − pn | ≤ tol.

puntofijo.m. No copie y pegue el código. Bájelo 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 método de bisección


En esta sección veremos el método de bisección, que se utiliza para resolver ecuaciones
de una incógnita. Toda ecuación de una incógnita puede escribirse como

f (x) = 0. (2.3)

Si p es un número tal que f (p) = 0 se dice que p es un cero de f o que p es una raı́z de
la ecuación (2.3).
Antes de ver el método, recordamos el teorema del valor intermedio, que es la base
que da la idea al método de bisección.

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


número que está 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 función 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 método de bisección es comenzar con un intervalo [a, b] tal que f (a) y f (b)
tienen signo opuesto, es decir, tenemos localizada una raı́z en el intervalo [a, b]. Luego,
ir reduciendo sistemáticamente la longitud del intervalo donde estamos seguros que hay
una raı́z, hasta que tengamos una tolerancia aceptable, es decir, un intervalo tan pequeño
donde se encuentra la raı́z que es satisfactorio para el problema en cuestión. 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 solución buscada.


Si ocurre el caso (3), hemos encontrado la raı́z (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 raı́z. Para
continuar el proceso, renombramos el nuevo intervalo más pequeño cmoo [a, b] y repetimos
el procedimiento hasta que el intervalo sea tan pequeño como deseamos. Puesto que el
proceso de bisección genera una sucesión de intervalos encajados, con sus correspondientes
puntos medios, usaremos la siguiente notación para tener un registro de los detalles del
proceso:
Método de Bisección
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 ].

···

Después de llegar al intervalo [an , bn ], en el que también se localiza un cero,


y cuyo punto medio es mn , se construye el intervalo [an+1 , bn+1 ], en el que
también 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 además, hay una raı́z p que satisface an ≤ p ≤ bn .


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

Si f (an ) · f (mn ) < 0 (entonces hay una raı́z 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, después de n pasos, la longitud del intervalo es
 n
|b0 − a0 | 1
|bn − an | = = |b0 − a0 |.
2n 2

Como mn está en el centro del intervalo [an , bn ] resulta que la distancia a la raı́z 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 método de bisección). Supongamos que f : [a, b] → R


es continua y que f (a) y f (b) tienen signos distintos. Sea {mn }n≥0 la sucesión de puntos
medios de los intervalos generados por el método de bisección. Entonces existe una raı́z
p de la ecuación f (x) = 0 (es decir, f (p) = 0) en [a, b] tal que mn → p, cuando p → ∞
y además  n+1
1
|p − mn | ≤ |b − a|, n = 0, 1, 2, . . . .
2
Finalizamos esta sección mostrando una implementación en MATLAB del método de
bisección, para resolver la ecuación

x sen(x) = 1

en el intervalo [0, 2]. Comenzamos re-escribiendo la ecuación como

x sen(x) − 1 = 0,

es decir, f (x) = x sen(x). Notamos que f (0) = −1 < 0 y f (2) = 2 sin(2) − 1 ≈ 0.81859 >
0. Hicimos esto en OCTAVE con las siguientes lı́neas:

>> 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 solución en el intervalo [0, 2] a la que convergerá el método de
bisección.

biseccion.m. No copie y pegue el código. Bájelo 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 código del método de bisección presentado es lo que se conoce en MATLAB como un
script. Es muy útil programar algunas resoluciones como scripts, pero conviene programar
algunas como functions (funciones). Cuando programemos un método de resolución de
algún problema, que puede ser utilizado para muchos otros problemas, lo haremos usando
funciones. Estas permiten la re-utilización sin necesidad de cambiar nombres de variables,
y las variables que se usan dentro de las funciones no afectan a las ya existentes.
A continuación mostramos cómo se modifica el código anterior para transformarlo en
una function.

Función bisec.m. No copie y pegue el código. Bájelo 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 lı́nea dice:

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

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

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


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

En la primera lı́nea hemos definido la función h(x) = cos(x) − x. En la segunda


lı́nea llamamos a la función bisec y le decimos cuáles son los cinco argumentos. El
OCTAVE los lee en orden, ası́, dentro de la función bisec, OCTAVE interpretará
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 función h, directamente escribimos la función


en el lugar del primer argumento.
La última observación que hacemos es la siguiente: el resultado que la función bisec
devuelve a ans o a x en el último caso, es lo que está en m. Esto es ası́, porque en
la primera lı́nea dice function m = bisec(...).

Otra observación importante, las primeras lı́neas que tienen % constituyen el help
de la función, hasta la primera lı́nea 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 lı́neas:

>> 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 función bisec la variable f y la variable I


toman otros valores, estos no afectan a nuestras variables f e I. Más aún, la variable
m toma el valor 0.739085130393505 dentro de la función bisec (al finalizar), pero
ese valor se olvida al finalizar la ejecución 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 función 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 función f se define en términos de d en lugar de x, pues ası́ lo hici-


mos cuando estudiamos el ejemplo al principio del capı́tulo. Esto no es un problema, lo
importante es que f es una función escalar, que dado un número devuelve otro número,
y que f(0)*f(2*r) es negativo (para que funcione el método de bisección).

2.3. El método de Newton o Newton-Raphson


En esta sección aprenderemos otro método para hallar raı́ces de ecuaciones de la forma

f (x) = 0.

Es el método de Newton-Raphson, también conocido como método de Newton.


La idea del método de Newton es la siguiente. Si tenemos una aproximación p0 de la
solución p, consideramos la recta tangente a la gráfica de y = f (x) en el punto (p0 , f (p0 ))
(ver gráfico). Luego, definimos p1 como la abscisa del punto intersección entre esa recta
tangente y el eje x (ver gráfico).

26
Para hallar la fórmula de p1 en términos de p0 observamos lo siguiente:
La recta tangente a la gráfica 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 fórmula resulta
f (p1 )
p2 = p1 − .
f 0 (p1 )
En general,
f (pn )
pn+1 = pn − .
f 0 (pn )
Observación 23. El método de Newton es un método de punto fijo, con función de
iteración dada por
f (x)
g(x) = x − 0 .
f (x)
Notar que x = g(x) si y sólo si f (x) = 0 (siempre que f 0 (x) 6= 0). En otras palabras, x es
solución de la ecuación original f (x) = 0 si y sólo si x es un punto fijo de g.
Para comprender cómo funciona el método 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 solución de la ecuación, 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 función 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 método de Newton] Sea p un cero de la función f , es
decir
f (p) = 0.

27
Si f es C 2 en una vecindad de p, f 0 (p) 6= 0 y p0 está suficientemente cerca de p, entonces
la iteración de Newton
f (pn )
pn+1 = pn − , n = 0, 1, 2, . . .
f 0 (pn )
converge a p.
Observación 25. El método de Newton es un método de punto fijo que siempre funciona
(si comenzamos suficientemente cerca). Nos da una manera de construir o elegir la función
de iteración g para que siempre resulte convergente.
Veamos un ejemplo, volvamos a resolver la ecuación

x = cos(x).

Resolvámosla primero con el método 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 método de punto fijo necesitó 37 iteraciones para que la diferencia entre dos ite-
randos consecutivos fuera menor a 10−5 .
Veamos ahora qué ocurre si usamos el método de Newton. Escribimos primero la
ecuación de la forma
x − cos(x) = 0.
Es decir, f (x) = x − cos(x) y f 0 (x) = 1 + sen(x). Luego, la iteración 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

¿Qué? ¿Sólo cuatro iteraciones? ¡No se puede creer! ¡Guau!


Sı́, es ası́. El método de Newton es rapidı́simo. Esto se debe a que no sólo ocurre que
|g 0 (x)| ≤ 1/2 en un entorno de x = p sino que además g 0 (p) = 0, por lo tanto, a medida
que nos acercamos a la solución, el método se va acelerando.
Para ver mejor el efecto de aceleración, veamos lo que ocurre con todos los dı́gitos.

>> 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 10−16 . Impresionante. . .
Veamos lo que ocurre con el error

29
n p |p − pn |
0 1.00000000000000000000 0.26091486678483932771
1 0.75036386784024389218 0.01127873462508321989
2 0.73911289091136167517 0.00002775769620100288
3 0.73908513338528392111 0.00000000017012324882
4 0.73908513321516056127 0.00000000000000011102
5 0.73908513321516067229 0.00000000000000000000
Vemos que la cantidad de ceros después del punto decimal en el error es, en cada
iteración, aproximadamente el doble que en la iteración anterior.
Los números de esa tabla fueron generados con estas lı́neas de código OCTAVE

pp = 0.73908513321516067229;
p = 1;
for i=0:5
fprintf(’%d %22.20f %22.20f \n’,i, p, abs(p-pp));
p = p - (p - cos(p))/(1 + sin(p));
end
Para entender por qué es tan rápido el método de Newton, definiremos a continuación
una manera de estudiar el orden de convergencia de los métodos iterativos.

2.4. Velocidad de convergencia


Definición 26 (Orden de convergencia). Supongamos que la sucesión 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 cuadrática.
En el caso R = 1, para n grande, resulta |p−p n+1 |
|p−pn |
≈ 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 dı́gito por iteración. En el caso A = 0.1 ≈ 0.316 se
gana un dı́gito cada dos iteraciones. Lo importante es que en los métodos de convergencia
lineal se gana un dı́gito cada un cierto número de iteraciones, pero esto se mantiene fijo
a lo largo de toda la iteración.
Veamos qué ocurre con un caso de convergencia cuadrática, es decir, con R = 2. Para
simplificar la presentación consideramos A = 1.

A = 1, R = 2, |p − pn+1 | ≈ |p − pn |2
n |p − pn |
0 10−1 = 0.1
1 10−2 = 0.01
2 10−4 = 0.0001
3 10−8 = 0.00000001
4 10−16 = 0.0000000000000001
5 10−32 = 0.00000000000000000000000000000001
6 10−64 = . . .

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


siguiente teorema.

Teorema 27 (Orden de convergencia del método de Newton). Consideremos el caso en


que el método de Newton genera una sucesión {pn }∞
n=0 que converge a un cero p de la
función f (x). Entonces:

Si p es una raı́z simple, es decir f 0 (p) 6= 0, entonces la convergencia es cuadrática,


y para n grande se cumple que

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

Si p es una raı́z múltiple 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
Observación 28. En palabras, concluimos lo siguiente:

El método de Newton siempre converge, si comenzamos con p0 suficientemente cerca


de p.

La convergencia del método de Newton es cuadrática (R = 2, el número de dı́gitos


exactos se duplica en cada iteración), si f 0 (p) 6= 0.

Si bien no incluimos la demostración de este teorema en este apunte, vale la pena


mencionar que la recta tangente a la gráfica de y = f (x) que pasa por (pn , f (pn )) tiene
ecuación
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 algún z entre x y pn . Esta fórmula nos dice que la ecuación de la recta tangente nos
da una aproximación de la función f (x) con un error

(x − pn )2 00
f (z).‘
2
2
Este error es menor a M2 (x−p
2
n)
si M2 es una cota para el valor absoluto de f 00 . Como ese
error es cuadrático en términos de la distancia a pn , el método de Newton resulta con
convergencia cuadrática.
A continuación presentamos el código del método de Newton.

Función 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 método 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 gráfica 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 intersección entre el eje x y la recta que pasa por (p0 , f (p0 )) y por (p1 , f (p1 )). Para
obtener la fórmula de p2 en términos 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 pn−1 y pn , obtenemos pn+1 a partir de la siguiente fórmula:


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

El resultado de convergencia para el método de la secante se enuncia a continuación.

33
Teorema 29. [Convergencia del método de la secante] Sea p un cero de la función f , es
decir
f (p) = 0.

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


entonces la iteración del método de la secante

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

1+ 5
converge a p. El orden del método es R = 2
≈ 1.61803 . . . (número de oro o razón
áurea).

A continuación presentamos el código para el método de la secante.

Función 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 pn−1 y pn , respectivamente. Otra


cosa a tener en cuenta es que en la fórmula del cálculo 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. Métodos iterativos para sistemas de ecuaciones
Consideremos el siguiente sistema de dos ecuaciones no lineales con dos incógnitas:

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

En términos geométricos, la primera ecuación representa una parábola y la segunda una


elipse. Resolver este sistema significa hallar la intersección 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 qué hacen las instrucciones meshgrid y
contour para entender qué está graficando y cómo harı́a para graficar curvas en otro
problema.
Vemos a partir del gráfico que hay dos soluciones. Se ve que podrı́a haber 3, 4, o
ninguna, dependiendo de la posición relativa de la parábola con respecto a la elipse.
Para otros sistemas de ecuaciones puede ocurrir que haya un número n a priori des-
conocido de soluciones, o también infinitas.
Recordemos que para sistemas lineales hay sólo tres opciones:

Existe única solución.

No hay solución.

Hay infinitas soluciones.

2.6.1. Método de punto fijo


El gráfico nos permite tener una primera aproximación de cada solución, pero qui-
siéramos hallarlas con más precisión. La primera opción es fabricarnos un método de

35
punto fijo. Para ello, podemos despejar un x de la primera ecuación 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 ecuación vectorial
  " x2 −y+0.5 #
x
= −x2 −4y22 +8y+4 .
y 8

Ahora la incógnita es un punto p de dos coordenadas, y la función 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 está 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 qué ocurre cuando comenzamos con que está cerca de la otra
0
solución.

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 iteración no
 converge.
 Veamos qué ocurre si comenzamos
1.9
más 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 iteración converge a la primera solución que habı́amos encontrado.
Claramente, el punto que queremos hallar, no es un punto de atracción de esa iteración
de punto fijo.

37
En el caso de una ecuación con una incógnita, hemos visto que la iteración de punto
fijo pn+1 = g(pn ) converge localmente al punto fijo p si |g 0 (p)| < 1. Se dice que un método
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 = máx ∂x (p) ,

1≤i≤N j
j=1

entonces la iteración de punto fijo

pn+1 = G(pn )

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

38
Observación 31. En general es difı́cil de verificar que kG0 (p)k1 < 1, sobre todo porque
no se conoce p. El teorema recién enunciado es de carácter teórico.
Ahora pensamos, si estamos dispuestos a calcular todas esas derivadas, ¿por qué no
usamos un método de Newton?

2.6.2. Método 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 función 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 solución de ese sistema de ecuaciones,


es decir, F (p) = 0.
Entonces, tal como lo hicimos para una ecuación escalar, consideramos la aproxima-
ción lineal a F alrededor de p0 , que está dada por la fórmula

`(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 continuación, 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 solución al siguiente sistema lineal de N


ecuaciones con N incógnitas:
F 0 (p0 )δp = −F (p0 ).
que ya está 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 incógnita que nos dirá cómo


elegir p1 . De la relación δp = (p1 − p0 ) obtenemos

p1 = p0 + δp.

Este razonamiento nos condujo a una manera de definir p1 a partir de p0 . Análo-


gamente podemos encontrar la manera de definir pn+1 a partir de pn . La resumimos a
continuación.

1. Dado pn , sea δp la solución al sistema lineal de ecuaciones

F 0 (pn ) δp = − F (p0 ) .
| {z } |{z} | {z }
conocido incógnita conocido

2. Definir pn+1 = pn + δp.

A continuación mostramos una implementación del método de Newton para sistemas


de ecuaciones no lineales (o Newton vectorial).

Función 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 cómo se utiliza esta función para hallar la solución 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 aproximación 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 lı́nea 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 lı́nea
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

Observación 32. Finalizamos este capı́tulo enunciando lo siguiente:

El método 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 método de Newton es cuadrática (R = 2, el número de dı́gitos


exactos se duplica en cada iteración), si F 0 (p) es invertible.

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

(b) ¿Cuántos puntos fijos tiene en ese intervalo?

(c) Decir cuáles son de manera aproximada, a partir del gráfico.

(2 + sen(2x))2
2.2. (a) Graficar la función g(x) = 2
y su derivada g 0 (x) en gráficos sepa-
8(1 + cos (x))
rados. Observar que hay un único punto fijo.

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

(c) Si comenzáramos con p0 = 0.5 e iteráramos con la fórmula pn+1 = g(pn ).


Determinar cuántas iteraciones harı́an falta para garantizar una aproximación del
punto fijo P con un error absoluto menor a 10−12 .

42
2.3. Consideremos la ecuación

x4 + 2x2 − x − 3 = 0.

(a) Verificar que α ∈ [1, 32 ] es solución de esa ecuación si y solo si α = gi (α) para cada
una de las funciones gi (x) siguientes. Es decir, α ∈ [1, 23 ] es solución de esa ecuación
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 cuál de ellas se obtiene una convergencia más rápida a la solución
comenzando de p0 = 1.

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


mentalmente coincide con lo esperado desde el punto de vista teórico.

2.4. Baje el código de la función p = newton(f, fprima, x0, tol, maxiter) del apun-
te y guárdelo en su carpeta de trabajo. Verifique que comprende su uso y cómo fue
programado.
Verifique el funcionamiento probando con un problema del cual se conozca la solución.
Por ejemplo, resolver x2 = 25. Verifique que el error decrece cuadráticamente.
3
2.5. El polinomio p(x) = −x3 + 200 x2 + x + 14 tiene tres ceros entre −2 y 2. Utilice
el método de Newton para hallarlas con un error absoluto menor a 10−12 . Para ello,
grafique el polinomio y determine a partir del gráfico tres diferentes valores iniciales p0
que aseguren la convergencia a cada cero del polinomio.

2.6. La función f (x) = x3 −3x2 +4 tiene un cero p = 2. Observe la sucesión de aproxima-


ciones pn generadas por el método de Newton para aproximarla, comenzando de p0 = 4.
¿Qué ocurre con el error? ¿Tiende a cero cuadráticamente? ¿Cómo puede explicar lo que
se observa?

2.7. Baje el código de la función p = secante(f, p0, p1, tol, maxiter) del apunte
y guárdelo en su carpeta de trabajo. Verifique que comprende su uso y cómo fue progra-
mado.
Verifique el funcionamiento probando con un problema del cual se conozca la solución.
Por ejemplo, resolver x3 = 27.

2.8. La ecuación
ln(1 + x4 )
 
x
exp 2 =
x + cos(x) 2
tiene una solución en el intervalo [0, 5]. Calcúlela con un error absoluto menor a 10−12
utilizando el método de la secante. Determine p0 y p1 adecuados a partir de un gráfico.

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

tiene una solución en [0, 1]. Hállela con un error relativo menor que 10−12 .
2.10. Para cada uno de los siguientes sistemas, determinar cuántas soluciones tiene en el
rectángulo indicado, a partir de un gráfico:
(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 rectángulo [0, 3] × [0, 2].
2.11. Escribir una función p = newtonvec(F, JF, p0, tol, maxiter) que reciba co-
mo argumentos:
f: una función vectorial que reciba un vector x y devuelva un vector y = f (x)
(ambos vectores columna); se quiere resolver F (x) = 0;
JF: la función Jacobiano de F; dado x devuelve una matriz que en la posición (i, j)
∂fi
contiene ∂x j

p0: la iteración inicial;


tol: una tolerancia para el error absoluto entre el resultado x y la solución exacta;
maxiter: un número máximo de iteraciones
La funcion newtonvec debe aproximar la solución por el método de Newton para sistemas
de ecuaciones nolineales. Para verificar su funcionamiento, probar con un problema del
cual se conozca la solución. Por ejemplo, aproximar la solución 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 método de Newton
para hallar todas las soluciones en los rectángulos indicados, con una precisión de 10−6 .
Graficarlas sobre las curvas para verificar.
2.13. Utilizar el método de Newton para hallar una solución a cada uno de los siguientes
sistemas no lineales con la aproximación 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 precisión para el error absoluto
de 10−6 , utilizando el método de Newton:
p
6x − 2 cos(yz) = 1, 9y + x2 + sen(z) + 1.06 + 0.9 = 0, 60z + 3e−xy = 3 − 10π.
Comenzar las iteraciones con x = 0, y = 0, z = 0.

44
2.15. En un sistema cerrado tienen lugar las siguientes reacciones quı́micas 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 concentración del compuesto i, y x1 , x2 son los


números de moles que se producen en la primera y segunda reacción, respectivamente. Si
K1 = 4 × 10−4 , K2 = 3.7 × 10−2 y las concentraciones iniciales de cada compuesto valen:
Ca,0 = 50, Cb,0 = 20, Cc,0 = 5, Cd,0 = 10, utilizar el método 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
e−x1 x2 + 20x3 + =0
3
tiene una matriz Jacobiana singular (no invertible) en la solución. Aplicar el método de
Newton con p0 = (1, 1, −1)T y observar qué ocurre. ¿Cómo se explica lo que sucede?

Si le interesa leer un poco más sobre los temas de este capı́tulo, le recomendamos las
secciones 2.1 a 2.4 y la sección 3.7 del libro de John H. Mathews, Kurtis D. Fink, Métodos
numéricos con MATLAB, Pearson Educación, Prentice-Hall, 2000.

45
Capı́tulo 3

Aproximación e Interpolación
Polinomial

Consideremos la situación en que se conocen los valores de una función en algunos


puntos. Esos puntos pueden provenir de mediciones experimentales y por lo tanto podrı́an
contener errores. Se desea hallar una función sencilla que coincida en esos puntos, o que
la gráfica pase cerca.
Consideremos el caso en que queremos calcular la integral de una función sobre la que
no conocemos la primitiva, por ejemplo
Z 1
2
e−x dx.
0

En este caso, lo que se hace, es aproximar la función por funciones sencillas que se sepan
integrar, y luego se integran esas funciones sencillas.
Para los matemáticos, las funciones más sencillas son los polinomios. Algunas razones
por las que se consideran sencillas son las siguientes:

(1) Son fáciles de representar, pues basta un número finito de coeficientes. En OCTAVE,
un vector p de n componentes representa el siguiente polinomio de grado n − 1:

p(x) = p1 xn−1 + p2 xn−2 + · · · + pn−1 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 función 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 lı́neas:

>> 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 fáciles 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 xn−1 + p2 xn−2 + · · · + pn−1 x + pn dx = 1 xn + 2 xn−1 + · · · + n−1 x2 + pn x + c.
n n−1 2

(3) Son fáciles 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 xn−1 + p2 xn−2 + · · · + pn−1 x + pn

dx
= (n − 1)p1 xn−2 + (n − 2)p2 xn−3 + · · · + 3pn−3 x2 + 2pn−2 x + pn−1 .

3.1. Interpolación polinomial


Dados dos puntos en el plano, pasa por ellos una única recta.
Si los dos puntos tienen diferente abscisa, entonces hay una única recta de ecuación

y = ax + b

47
cuya gráfica 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 única parábola de ecuación

y = ax2 + bx + c.

Veamos cómo se calcula dicha parábola. Para que la misma pase por los puntos debe
cumplir

(1, 8) está sobre la parábola ⇐⇒ 8 = a12 + b1 + c


(−1, 9) está sobre la parábola ⇐⇒ 9 = a(−1)2 + b(−1) + c
(2, 15) está sobre la parábola ⇐⇒ 15 = a22 + b2 + c.

Nos queda entonces un sistema de 3 ecuaciones con 3 incógnitas (las incógnitas 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 ecuación 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 qué ocurre cuando tenemos n puntos. La respuesta está en el
siguiente teorema.

Teorema 33. Dados n puntos

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

con abscisas todas distintas, existe un único polinomio p de grado n − 1 cuya gráfica 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 polinomio recordamos que el Teorema Fundamental del Álgebra
dice:

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


los números complejos.

Sin entrar en detalles sobre lo que son los números 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 xn−1 + p2 xn−2 + · · · + pn−1 x + pn cumple

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

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

p1 = p2 = · · · = pn−1 = pn = 0.

Ahora sı́, estamos en condiciones de demostrar el teorema.

Demostración del Teorema 33. Queremos hallar el polinomio, ası́ que proponemos

p(x) = p1 xn−1 + p2 xn−2 + · · · + pn−1 x + pn .

49
El mismo debe cumplir las siguiente n ecuaciones
p(x1 ) = y1
p(x2 ) = y2
..
.
p(xn ) = yn .
Es decir
p1 xn−1
1 + p2 xn−2
1 + · · · + pn−1 x1 + pn = y1
p1 xn−1
2 + p2 xn−2
2 + · · · + pn−1 x2 + pn = y2
..
.
n−1 n−2
p1 xn + p2 xn + · · · + pn−1 xn + pn = yn .
Recordando que las abscisas x1 , x2 , . . . , xn son conocidas y las ordenadas y1 , y2 , . . . , yn
también, las incógnitas son los coeficientes p1 , p2 , . . . , pn del polinomio. Para encontrarlos
debemos resolver ese sistema de ecuaciones que en forma matricial se escribe ası́:
   
 n−1 n−2  p1 y1
x1 x1 . . . x1 1 
xn−1 xn−2 . . . x2 1  p2   y2 
  
 2 2   ..   .. 
 .. .. .. ..   .  =  .  . (3.1)
 . . . .    
pn−1  yn−1 
xn−1
n xn−2
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 solución única si la matriz es invertible, lo cual puede
verificarse demostrando que el problema homogéneo tiene como única solución a la trivial.
Plantear el sistema homogéneo
 
 n−1 n−2  p1  
x1 x1 . . . x1 1  0
xn−1 xn−2 . . . x2 1  p2  0

 2 2  .   
 .. .. .. ..   ..  =  .. 
 . . . .   .
n−1 n−2
pn−1 
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 demostración, esto implica que p1 = p2 = · · · = pn−1 = pn = 0,
es decir, la única solución es la trivial.
Por lo tanto, el sistema (3.1) tiene solución única, o lo que es lo mismo, existe un
único polinomio cuya gráfica pasa por los n puntos dados.
En OCTAVE, para hallar el polinomio de grado n−1 que pasa por n puntos, se utiliza
la función polyfit. Por ejemplo, para hallar el polinomio de grado 4 cuya gráfica 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 lı́neas también incluyen instrucciones para graficar el polinomio en el intervalo [0, 11].

3.2. Aproximación por cuadrados mı́nimos


En la sección anterior vimos cómo calcular un polinomio interpolador de una lista
de puntos. Es decir, buscábamos el polinomio cuya gráfica pasa exactamente por todos
los puntos dados. Volveremos a esto en la sección siguiente, lo que será útil para obtener
fórmulas de integración numérica en el capı́tulo próximo.
Ahora nos enfocaremos en el cálculo 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 gráfica, y buscamos un polinomio de grado menor o igual a 2,


cuya gráfica pase lo más cerca posible de esos puntos. Debemos definir en qué sentido
el polinomio pasa cerca de los puntos. La manera más usual es lo que se conoce como

51
la aproximación por cuadrados mı́nimos, 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 expresión:
n
2 2 2 X 2
p(x1 ) − y1 + p(x2 ) − y2 + · · · + p(xn ) − yn = p(xi ) − yi .
i=1

Geométricamente, estamos mirando la distancia vertical entre el punto dato (xi , yi ) y el


punto de la gráfica con la misma abscisa (xi , p(xi )). Lo que se quiere minimizar es la
suma de esas distancias al cuadrado. En notación más compacta, queremos minimizar la
norma euclı́dea 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 combinación 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 está lo más cerca posible de y.
Recordando un poco de geometrı́a, vemos que M p es el elemento más cercano a dicho
espacio si y sólo 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 . Más 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 notación más compacta


     
col1 (M )T 0 0
col2 (M )T  (y − M p) = 0 ⇐⇒ M T (y − M p) = 0
col3 (M )T 0 0

A su vez, esta última expresión, equivale a

M T M p = M T y.

Es decir, el vector p (de tres componentes) debe ser la solución 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 cálculo del polinomio p se harı́a 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) Hallamos los coeficientes del polinomio que aproxima en el sentido de mı́nimos cua-
drados:

>> p = A \ Y

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

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

Los pasos (1) a (3) de lo recién explicado pueden resumirse en OCTAVE usando
polyfit:

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

53
Observación 34. Recalcamos que igualmente es importante entender cómo se resuelve
un sistema en el sentido de mı́nimos 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)) ]

Observación 35. El estudio del error cometido por el polinomio hallado y la función
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 área Estadı́stica.

3.3. Interpolación de funciones


Volvemos ahora a la idea del polinomio interpolador, es decir, el polinomio cuya
gráfica pasa exactamente por una lista de puntos. Pero consideramos ahora que esos
puntos coinciden con puntos de la gráfica y = f (x) de una función f dada.
Hagamos un poco de matemática experimental. Para ello, a continuación incluimos
una función pruebapolyfit1 que dada una función, un intervalo y un número n de puntos
calcula el polinomio interpolante en n puntos equidistantes. La idea es tratar de medir el
error entre la función y el polinomio hallado.

Función 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);
% 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)

54
% 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 qué ocurre cuando interpolamos la función f (x) = sen(x) sobre el
intervalo [0, 7]. Para entender mejor se recomienda que baje la función 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 número n
de puntos.
2
Ejemplo 37. Consideremos ahora la función f (x) = e−x sobre el intervalo [−1, 3].

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


>> pruebapolyfit1(f,-1,3,2);
maximo_error = 0.72617
>> pruebapolyfit1(f,-1,3,3);
maximo_error = 0.58613
>> pruebapolyfit1(f,-1,3,4);

55
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ı́ también parece ser que el error tiende a cero, aunque da la impresión de que esto
ocurre más lentamente que en el ejemplo anterior.

Veamos un último ejemplo:


1
Ejemplo 38. Consideremos la función 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 qué ocurre si seguimos.

>> pruebapolyfit1(f,-5,5,11);
maximo_error = 1.9156
>> pruebapolyfit1(f,-5,5,12);
maximo_error = 0.55418
>> pruebapolyfit1(f,-5,5,13);

56
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 teorı́a. El teorema del error de interpolación dice lo siguiente.

Teorema 39. Sea f una función definida en el intervalo [a, b]. Si x1 , . . . , xn son todos
puntos distintos en el intervalo [a, b], entonces existe un único polinomio p(x) de grado
menor o igual a n − 1 cuya gráfica pasa por los puntos (xi , f (xi )) para i = 0, 1, . . . , n. Es
decir, existe un único polinomio p(x) = p1 xn−1 + · · · + pn−1 x + pn tal que

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

Además, 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 = máx |f n (ξ)|.
n! ξ∈[a,b]

Corolario 40. Si no se sabe dónde están los puntos xi , entonces, para cada x ∈ [a, b]
sólo sabemos que |x − xi | ≤ |b − a|. Del teorema anterior concluimos que:

Mn
máx |f (x) − p(x)| ≤ |b − a|n .
x∈[a,b] n!

Corolario 41. Si los puntos xi están equiespaciados y x1 = a, xn = b, es decir

b−a
xi = a + (i − 1)∆x, con ∆x = ,
n−1

entonces, resulta (pensemos que x ∈ [x1 , x2 ])

|b − a|n
|x−x1 | |x−x2 | . . . |x−xn | ≤ ∆x ∆x 2∆x 3∆x . . . (n−1)∆x = (n−1)!∆xn = (n−1)! .
(n − 1)n

Luego, del teorema anterior obtenemos

Mn |b − a|n
máx |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 función 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 más pesado calcular derivadas de todos los órdenes de e−x .
Cabe aclarar que Mn → ∞ cuando n → ∞, pero aún ası́,
|b − a|n
Mn → 0, cuando n → ∞.
n(n − 1)n
Sin embargo, el valor de Mn puede tender a infinito tan rápido que los términos
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 aproximación sea cada vez mejor a medida que tomemos más puntos de interpolación
y polinomios de grado mayor.
Para asegurar convergencia de la aproximación, se utiliza la interpolación polinomial
a trozos.

3.4. Interpolación polinomial a trozos


Vimos en la sección anterior que la cota del error para un polinomio p que interpola
a una función 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 = máxξ∈[a,b] |f n (ξ)|. También vimos que Mn puede ser muy grande para n gran-
de. En este caso, no sirve de mucho aumentar excesivamente el número de puntos de
interpolación.
¿Qué se puede hacer para asegurar que el error tiende a cero?
Una cosa que se puede hacer es utilizar interpolación polinomial a trozos. La idea es
fijar el grado polinomial n − 1 e interpolar con ese grado (fijo) sobre L sub-intervalos.
Más precisamente. Consideremos un intervalo [a, b] y un número 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+(L−1)h = b−h, yL+1 = a+Lh = b.

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

58
En el gráfico a continuación se muestra un ejemplo para n = 2. Es decir, en cada
sub-intervalo [yi , yi+1 ] se interpola con una función 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 interpolación (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
|b−a|
intervalo, que tiene longitud h = L . Resumimos esta observación en el siguiente teore-
ma:
Teorema 42. Sea f es una función C n y Mn es una cota para f (n) sobre el intervalo
[a, b]. Si p es el polinomio a trozos de grado ≤ n − 1 sobre una partición de tamaño
h = |b−a|
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 = máxξ∈[a,b] |f n (ξ)|.
Observemos que n está 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 xn−1 + p2 xn−2 + · · · + pn−1 x + pn .

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

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

Además, la instrucción polyval(p,x) evalúa el polinomio en un x dado.


3.1. Programar una función 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 deberı́a verse
ası́:
>> p = [6 -3 0 1];
>> derivarpol(p)
ans =
18 -6 0
3.2. Programar una función 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 último 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 deberı́a 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 deberı́a
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 gráfica 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 gráfica 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. Considerar los siguientes números de la oficina de Censos de Estados Unidos, acerca
de la población de Estados Unidos:

Año Población
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 años dados.

Calcular nuevamente el polinomio interpolador, pero ahora utilizando polyfit de


la siguiente manera:
[p,s,mu] = polyfit(x,y,7)
Averiguar qué son p y mu. Evaluar el polinomio en los puntos de interpolación,
ahora utilizando
z = polyval(p, x, [], mu)
y comparar el valor del polinomio interpolante con los datos.

Graficar el polinomio usando un paso de 1 año entre 1900 y 1970. Repetir los gráficos
entre 1900 y 1980. El número relevado para 1980 es 226.547.082. ¿Qué opina sobre
la predicción dada por el polinomio interpolador?

3.6. Encontrar el polinomio de grado 1 que aproxima en el sentido de cuadrados mı́nimos


la siguiente tabla de datos:

61
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.7. Encontrar el polinomio de grado 2 que aproxima en el sentido de cuadrados mı́nimos
la siguiente tabla de datos:

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

y comparar gráficamente con el polinomio interpolador en el intervalo [−2, 7].


3.8. Utilizar cuadrados mı́nimos para aproximar los valores del censo de EE.UU. dados
en el Ejercicio 3.5, con polinomios de grado 1, 2 y 3. Graficar los polinomios de la misma
manera que en el último punte de dicho ejercicio. ¿Qué grado polinomial le parece más
adecuado? ¿Por qué? ¿Cuál predice mejor la población de 1980? ¿Qué población puede
predecir para el año 2020? ?
3.9. Aproximar la siguiente tabla de datos en el sentido de cuadrados mı́nimos

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.10. Aproximar los datos de la tabla siguiente con un modelo de la forma f (x) ∼
=
ax2 +bx+c
−e , en el sentido de cuadrados mı́nimos para la función ln(f (x)):

x −1 0 1 2
y −1.1 −0.4 −0.9 −2.7

Graficar sobre el intervalo [−1.5, 2.5] la curva y los puntos.


3.11. Un biólogo realiza un experimento de reproducción de mosquitos y toma las si-
guientes mediciones
Semana Cantidad
0 432
1 599
2 1012
3 1909
4 2977
5 4190
6 5961

62
(a) Determinar la función lineal que mejor aproxima en el sentido de cuadrados mı́nimos
los datos dados (modelo lineal).

(b) Determinar el polinomio de grado ≤ 2 que mejor aproxima en el sentido de cuadrados


mı́nimos los datos dados (modelo cuadrático).

(c) Predecir cuál será la cantidad de mosquitos al cabo de 10 semanas según los diferentes
modelos, el lineal y el cuadrático.

(d) Si la medición a las 10 semanas es de 14900 mosquitos, ¿qué modelo le parece que
es más apropiado? ¿El lineal o el cuadrático?

63
Capı́tulo 4

Integración numérica o cuadratura

El objetivo de este capı́tulo es hallar fórmulas que permitan calcular integrales (apro-
ximadas) pero de cualquier función. Cuando decimos aproximadas queremos decir con
tanta precisión 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 expresión analı́tica.


Integrales difı́ciles de resolver analı́ticamente suelen aparecer al calcular el área de
superficies de revolución. Recordamos que el área de la superficie de revolución que se
obtiene al girar el gráfico de y = f (x) alrededor del eje x, para a ≤ x ≤ b es
Z b p
2πf (x) 1 + f 0 (x)2 dx.
a

Rara vez el integrando de esta expresión se podrá integrar analı́ticamente, y son muy
útiles los métodos numéricos. Estos no dan una fórmula cerrada para el resultado, pero
permiten calcular la integral con tanta precisión como se desee.

4.1. Fórmulas de Newton-Côtes


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

para una función dada f .


La idea de las fórmulas de Newton-Côtes es interpolar la función 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 función 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 fórmula se conoce como Regla del Rectángulo, porque estamos calculando el área del
rectángulo 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
b−x x−a
p2 (x) = f (a) + f (b).
b−a b−a
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 fórmula se conoce como Regla del Trapecio, porque estamos calculando el área 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 fórmula se conoce como Regla del Simpson.


Las operaciones que no escribimos y que irı́an en · · · son muy laboriosas. Lo impor-
tante de entender aquı́ son dos cosas:

(1) Las fórmulas de integración numérica consisten en evaluar f en distintos puntos del
intervalo, multiplicar esos valores por otros números, sumar, y finalmente multiplicar
por la longitud del intervalo.

(2) Las fórmulas deberı́an ser exactas, es decir


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

cuando f es un polinomio de grado ≤ n − 1. ¿Por qué? 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 función de partida.

Definición 43. Una fórmula de integración numérica 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 fórmula de Newton-Côtes de n puntos, consi-
deramos el intervalo [0, 1] y recordamos que deberı́a 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 deberı́a cumplirse para f (x) = 1,


para f (x) = x, para f (x) = x2 , . . . , y para f (x) = xn−1 . 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
n−1 1
f (x) = x xn−1 dx = = w1 xn−1
1 + w2 x2n−1 + · · · + wn xnn−1 .
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 incógnitas son los
pesos wi de la fórmula. 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 xn−1
1 + w2 x2n−1 + · · · + wn xnn−1 = .
n
En forma matricial  
1 1 ...
    1
 x1  w1
x2 ...
1
xn
   w2   1 

 x21 x22
  2... x2n
  ..  =  .. 
 ..
 .  .
  . 1
n−1 n−1 n−1 wn n
x1 x2 . . . xn
Por lo tanto, los pesos de la fórmula de Newton-Côtes se encuentran resolviendo ese
sistema. Hay otras maneras de hallar los pesos, que son más precisas si n es grande, pero
para n ≤ 10 (que es lo que utilizaremos nosotros), esta manera es práctica.
El siguiente código calcula las abscisas xi y los pesos wi para el intervalo [0, 1] y un
entero positivo n.

66
Función 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 código calcula la integral aproximada de una función f utilizando la
fórmula de Newton-Côtes de n puntos. Las abscisas se calculan tomando n puntos equies-
paciados en el intervalo [a, b] (usando linspace).
Función 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. Análisis del error para las fórmulas de Newton-


Côtes
Dada una función suave f en el intervalo [a, b], ¿qué error se comete al calcular la
integral con la fórmula 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, según el Corolario 41
Mn |b − a|n
máx |f (x) − pn (x)| ≤ ,
x∈[a,b] n (n − 1)n
con Mn = máxξ∈[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 función 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 = máxξ∈[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 interpolación: Hay muchas funciones para las que ese término no
tiende a cero (cuando Mn → ∞ rápidamente.) Este problema se resuelve utilizando las
fórmulas de Newton-Côtes compuestas.

4.3. Fórmulas de Newton-Côtes compuestas


La idea de estas fórmulas es integrar el interpolante polinomial a trozos:
Particionamos el intervalo [a, b] en L sub-intervalos de longitud h = b−a
L
. Definimos
y1 = a, y2 = a+h, y3 = a+2h, ... yL = a+(L−1)h = b−h, 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 fórmula de Newton-Côtes 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 método, podemos usar el siguiente código.

68
Función 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 implementación es muy ineficiente, pues cada vez que se llama a integralNC se
calculan los pesos de Newton-Côtes, y estos son los mismos en todos los sub-intervalos.
La siguiente, es una implementación un poco más eficiente.

Función 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

Observación 45. La fórmula compuesta correspondiente a n = 2 se llama fórmula del


trapecio compuesta y la correspondiente a n = 3 se llama fórmula de Simpson compuesta.

69
4.4. Análisis del error para las fórmulas de Newton-
Côtes 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 |b−a| |b−a|
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 estimación del error dada por el
Teorema 44. Hemos entonces demostrado el siguiente teorema.
Teorema 46. Si f es una función 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 = máxξ∈[a,b] |f n (ξ)|.
Observación 47. Observemos que si f ∈ C n , entonces Mn es un número finito, y el lado
derecho de la fórmula anterior tiende a cero cuando L → ∞. Es decir, el error tiende a
cero a medida que tomamos L cada vez más grande. Además, cuando mayor sea n, más
rápido tenderá a cero el error.
Pero ¡cuidado! El error no tiende a cero si dejamos L fijo y hacemos tender n a infinito.
¿Por qué? Pensar.

4.5. Ejercicios
4.1. Utilizar la función pesosnc para determinar los pesos de la fórmula de Newton-Côtes
y los puntos xi para n = 2, n = 3, . . . , n = 6.
4.2. Consideremos Qn (f, 0, 5) la fórmula 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 cuál puede
ser el motivo. También pensar por qué el error da tan grande en algunos casos y por qué
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 = tan−1 (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 fórmula del trapecio compuesta con parámetro de discre-
5
tización 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 cuál 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 fórmula de Simpson compuesta QL3 . ¿Cómo se
reduce el error a medida que h se divide por la mitad, para cada ejemplo?
Z 1
2
4.5. Se quiere calcular e−x 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 10−3 .
Calcular la aproximación de la integral.

4.6. Programar la función 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 aproximación 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 están equiespaciados).
Utilizar la función para aproximar la integral de una función 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 función 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 aproximación 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 están equiespaciados y las listas tienen un número impar
de valores).
Utilizar la función para aproximar la integral de una función con los valores de la
tabla del ejercicio anterior.
4.8. Se tiene la siguiente tabla de datos de una función 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 fórmula del trapecio compuesta.

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

(c) Calcular la integral con la mayor precisión 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
¿Qué fórmula 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 10−3 , el área de las superficies de revolución
que se obtienen al girar la gráfica 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 lı́neas que deben escribirse en MATLAB para graficar
la superficie de revolución 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 área de la superficie de revolución que se obtiene al girar el gráfico de

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

alrededor del eje x. Dar el resultado con 12 dı́gitos exactos.

74
Capı́tulo 5

Problemas a valores iniciales

5.1. Introducción
El objetivo en un problema a valores iniciales (PVI) es encontrar una función 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 aproximación a y(t) sobre un intervalo de
interés [T0 , Tf ] para descubrir propiedades cualitativas de la solución. En otras, puede ser
importante conocer una estimación precisa del valor y(t) para un tiempo t = Tf prefijado.
Los datos conocidos de (PVI) son: el valor inicial y0 y la función pendiente f (t, y) que
nos dice cuál tiene que ser la pendiente de la solución y(t) en cada instante de tiempo,
dependiendo de cuánto vale y. Más precisamente:
Se llama solución de (PVI) a una función 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 función pendiente es f (t, y) = −2y (es una función
de dos variables que en realidad depende de una sola). La ecuación diferencial y 0 = −2y
tiene una familia de soluciones, son todas las funciones de la forma y(t) = ce−2t , con c
cualquier constante. La condición inicial y(0) = 3 nos dice que queremos hallar la única
función de esa familia que en t = 0 vale 3. Utilizamos la condición inicial para despejar
c y nos da que c = 3. Luego, la solución del PVI es y(t) = 3e−2t .

5.2. Existencia y estabilidad de soluciones


Vimos un ejemplo muy sencillo donde hallar la solución fue muy fácil. En general, esto
no es tan fácil, como tampoco es obvio que haya solución del problema. A continuación
enunciamos una propiedad que nos afirma la existencia de una solución para (PVI).

75
Si f es una función continua de sus dos variables (y y t) y además ∂f
∂y
existe y está
acotada, entonces el problema a valores iniciales (PVI) tiene una única solución. Más
aún, si L ≤ ∂f
∂y
≤ U para todo (y, t), resulta lo siguiente:

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

|y0 − ỹ0 |eL(t−T0 ) ≤ |y(t) − ỹ(t)| ≤ |y0 − ỹ0 |eU (t−T0 ) , 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 rápido como eLt y no más rápido
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 e−2t por el error inicial. Más precisamente, observemos las soluciones
con y0 = 3 y con ỹ0 = 3.1. En este caso,

y(t) = 3e−2t , y ỹ(t) = 3.1e−2t ,

por lo que
|y(t) − ỹ(t)| = |3e−2t − 3.1e−2t | = |3 − 3.1|e−2t = 0.1e−2t .

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


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

5.3. Método de Euler


Los métodos que desarrollaremos en el curso producen una sucesión 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 disposición es la función pendiente f (t, y), que
puede evaluarse cuando sea necesario.
Recordando que la definición de derivada es
y(t + h) − y(t)
y 0 (t) = lı́m ,
h→0 h
resulta, para h > 0 pequeño,
y(t + h) − y(t)
≈ y 0 (t).
h
Si y es solución de (PVI) entonces, para un parámetro h > 0 pequeño,
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 método 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 = (i − 1) h, i = 1, 2, . . . L + 1.

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

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 números 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 solución obtenida y la exacta
para el ejemplo que venimos trabajando, con L = 20 y L = 40 sobre el intervalo [0, 4].

Figura 5.1: Solución de (PVI) para f (t, y) = −2y, y0 = 3 sobre el intervalo [0, 4] y compa-
ración con el método de Euler. La lı́nea curva representa la solución exacta y(t) = 3e−2t .
Los asteriscos son los puntos (ti , Yi ), y los cı́rculos los puntos (ti , y(ti )). A la izquierda
la solución aproximada se obtuvo con L = 20 (h = 0.2) y el error global es 0.268. A la
derecha, la solución aproximada se obtuvo con L = 40 (h = 0.1) y el error global es 0.121

A continuación se incluye la función euler1.m que tiene una implementación del


método de Euler.

77
Función 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, pequeño si h es pequeño, pero estos
errores de alguna manera se acumulan, y para llegar a Tf la cantidad de pasos será mayor
cuanto menor sea h.
Para entender un poco mejor el error cometido, necesitamos definir algunas cantidades:
Error global: Se llama error global al máximo error entre y(tn ) y Yn , es decir,

gn = |y(tn ) − Yn |, error global = máx gn = máx |y(tn ) − Yn |.


1≤n≤L+1 1≤n≤L+1

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


san por (tj , Yj ), más precisamente, comienzan en tj y cumplen la condición inicial
yj (tj ) = Yj , es decir,
(
yj0 = f (t, yj ), tj ≤ t ≤ Tf ,
y(tj ) = Yj .

Notemos que con esta definición, 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 habı́a 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 análisis del error global. Para fijar ideas,
supongamos que ∂f ∂y
≤ 0 de manera que las trayectorias no se alejan, más 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 − yn−1 (tn )| + |yn−1 (tn ) − yn−2 (tn )| + · · · + |y2 (tn ) − y1 (tn )|
n−1
X
≤ εn−1 + εn−2 + · · · + ε1 = εj .
j=1

Por lo tanto, el máximo error global puede acotarse por


n−1
X L
X
máx gn ≤ máx εj = εj ≤ L máx εj . (5.1)
1≤n≤L+1 1≤n≤L+1 1≤j≤L
j=1 j=1

Hasta aquı́, el análisis que hemos hecho es independiente del método, si es Euler o
algún otro. Veamos cómo se puede acotar εj para el método de Euler.
Una herramienta muy utilizada para estimar y acotar el error en los métodos numéricos
es el Teorema de Taylor, que enunciamos a continuación:
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 algún 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 máxT0 ≤t≤Tf |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 )
máx |Yn − y(tn )| ≤ L máx εj ≤ L = |{z}
Lh = h.
1≤n≤L 1≤j≤L 2 2 2
Tf −T0

Concluimos entonces que si todas las soluciones de la EDO tienen derivada segunda
acotada uniformemente por M , el método de Euler produce una solución con máximo
M (Tf − T0 )
error acotado por h = Const. × h. Se dice que el método de Euler es de orden
2
uno (la potencia de h). La demostración que hemos visto es muy simple, y analizando el
∂f
caso ≤ 0, permite entender la idea general que si un método produce en un paso un
∂y
error de orden hk+1 entonces el error global será 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 numéricamente, primero lo transformamos en una ecuación 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 función
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 solución única.
∂yj
Ejemplo 50 (Péndulo ideal). Si consideramos un péndulo de brazo rı́gido de longitud `,
donde no hay fricción ni resistencia del aire, el ángulo ϕ(t) que forma el péndulo con la
vertical satisface la siguiente ecuación diferencial:

g
ϕ00 (t) = − sen ϕ(t)
`
donde g denota la constante de aceleración gravita-
cional. Esta es una ecuación diferencial ordinaria de
orden dos, pues aparecen derivadas segundas de la
incógnita ϕ.

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 términos 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 continuación una modificación del código de la función euler1.m que


sirve también para resolver PVI para sistemas de ecuaciones diferenciales. La función está
diseñada con el siguiente formato:
[t,y] = euler(f, [T0 TF], y0, L)
Entradas:

f=f(t,y): Es una función 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 solución.

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

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


[T0 TF] para resolver por el método 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-ésima fila debe contener el
estado y a tiempo t(i).

Función 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. Métodos de Runge-Kutta


Hemos visto el método de Euler, que resulta de orden uno, y en cada paso realiza una
evaluación de la función f . Nos preguntamos: ¿Se podrá definir un método que utilizando
dos evaluaciones de f en cada paso resulte de orden 2? La respuesta es positiva, veamos
cómo puede lograrse.
Proponemos un método 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 solución 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 será εn = |Yn+1 − y(tn+1 )| = O(h3 ) si

a+b=1
1
bα =
2
Elegimos la solución simétrica

1 1
a= , b= , α = 1,
2 2
y obtenemos el método de Runge-Kuta de orden 2:

83
Dados tn e Yn , calcular tn+1 e Yn+1 a partir de las siguientes fórmulas:


 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 método vale el siguiente resultado:

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

máx |y(tn ) − Yn | ≤ Ch2 ,


1≤n≤L+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 análoga, pero con cuentas más engorrosas puede deducirse el método de
Runge-Kutta de orden cuatro:

Dados tn e Yn , calcular tn+1 e Yn+1 a partir de las siguientes fórmulas:



 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 método de Runge-Kutta de orden cuatro convergerá con ese
orden cuando las derivadas de hasta orden cinco de y (y cuatro de f ) estén acotadas.
Más precisamente Para este método vale el siguiente resultado:

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


uniformemente por una constante M5 , entonces el método de Runge-Kutta
de orden 2 produce una sucesión (tn , Yn ) que cumple

máx |y(tn ) − Yn | ≤ Ch4 ,


1≤n≤L+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: ¿Cuál es la ganancia de usar un método
de orden superior si es computacionalmente más 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
más costosa desde el punto de vista computacional es la evaluación 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 método 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 × 10−8

Vale la pena observar cuál es el error de cada método correspondiente a un costo de


40 evaluaciones y también al que corresponde a 80 evaluaciones. ¡¡Los métodos de orden
superior son mucho más eficientes!! Claro, cada vez que duplicamos L, el error por el
método de Euler se reduce a la mitad, en cambio el error por el método RK2 se reduce
por 4 y el error por RK4 se reduce por 8.

5.6. Métodos de Runge-Kutta-Fehlberg (RKF)


Son métodos de paso adaptativo, basados en los de Runge-Kutta. El error local de
truncamiento se estima en términos de la diferencia entre una solución calculada Yn+1 y
otra solución Ŷn+1 asociada a un método de orden superior. El objetivo es lograr un error
global menor que una tolerancia dada, a un costo bajo.
El método RKF45 se diseña de la siguiente manera. Primero se buscan dos métodos
de Runge-Kutta, uno de orden 4 y otro de orden 5, pero de manera que los cálculos
realizados para uno de ellos sirvan para el otro. Aquı́ se aprovecha la libertad de elección
de los coeficientes ki en la definición del método.
Sin demostrar todos los detalles, con el objetivo de comprender cómo se define el
método, 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 ),
j−1
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 página 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
Ŷn+1 = Yn + γ̂j kj ,
j=1

entonces Yn+1 corresponde a un método de Runge-Kutta de orden 4 y Ŷn+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 métodos. Por lo tanto el costo, medido en número de evaluaciones de
la función f (t, y), es el mismo tanto para calcular Ŷn+1 como para calcular Yn+1 y Ŷn+1
simultáneamente.
Es decir,

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


ε̂n := |Ŷn+1 − yn (tn+1 )| = O(h6 ),

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

εn = |Yn+1 − yn (tn+1 )| ≤ |Yn+1 − Ŷn+1 | + |Ŷn+1 − yn (tn+1 )| ≈ |Ŷn+1 − Yn+1 | = O(h5 ).


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

La idea del método adaptativo es la siguiente: Fijar los parámetros 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 Ŷn+1


(2) Calcular Tn = |Yn+1 − Ŷn+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 más pequeño que lo deseado
hn+2 = Qhn+1 % agrandar un poco h para la próxima
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
Observación 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
b−a
y por lo tanto,
máx |y(tn ) − Yn | ≤ Ctol,
0≤n≤N +1

∂f
donde C depende del máximo valor de y de la longitud del intervalo.
∂y
El paso marcado con (*) sirve para agrandar el paso de discretización hn cuando el
error es mucho más pequeño que lo deseado. Esto permite ahorrar operaciones.
El paso marcado con (**) permite reducir el paso de discretización hn cuando el
error es más grande que lo permitido.
Observación 52. La idea de este método RKF45 es la base de la función ode45 de
MATLAB, que tiene además otros algoritmos adaptativos para EDOs: ode23, ode15s,
ode23s. Los que terminan en s están diseñados para problemas stiff, que usan métodos
∂f
implı́citos y son especialmente aptos para problemas donde tiene autovalores muy
∂y
negativos.

5.7. Estabilidad de métodos numéricos


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

cuya solución exacta es y(t) = e−100t . Este es un problema estable dado que la solución
tiende a cero cuando t → ∞ y más aún, si tomamos soluciones con y(0) = y0 y ỹ(0) = ỹ0 ,
entonces se cumple
|y(t) − ỹ(t)| ≤ e−100t |y0 − ỹ0 |.
Es decir, la diferencia existente a tiempo t = 0 disminuye (¡exponencialmente!) cuando t
crece.
Consideremos ahora su resolución con el método 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 solución!

87
Probemos con h más pequeño, 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 solución!

Probemos con h más pequeño, 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 solución!

Probemos con h más pequeño, 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 más pequeños ya se parece un poco más. Pero para h > 0.01 las soluciones
son realmente diferentes a la solución exacta y = e−100t . Es más, si h > 0.02, Yn → ∞
cuando n → ∞.
El concepto de estabilidad más estudiado en métodos numéricos para ecuaciones di-
ferenciales tiene que ver con el comportamiento del método al resolver el siguiente PVI
para λ ∈ C: (
y 0 = λy, t > 0,
y(0) = 1,

88
cuya solución exacta para λ = λR + iλI 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.

Definición 53. La región de estabilidad de un método numérico para EDO se define


como el conjunto de hλ ∈ C tal que el método aplicado a
(
y 0 = λy, t > 0,
y(0) = 1,

produce una sucesión {Yn }∞


n=1 acotada.

La motivación principal para esta definición es que si un método numérico no produce


soluciones acotadas para λ ∈ C con λR ≤ 0, entonces no podemos esperar que funcione
bien en problemas más complejos.
Consideramos valores de λ complejos porque están 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. Región de estabilidad para los métodos de Runge-


Kutta
Región de estabilidad para el método de Euler.
Notemos que el método de Euler aplicado al problema modelo produce la sucesión

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

por lo que la sucesión {Yn }∞n=1 será acotada si y solo si |1 + hλ| ≤ 1. Por lo tanto, la
región de estabilidad para el método de Euler es

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

Observación 54.

Se consideran números complejos, pues el comportamiento para problemas vecto-


∂f
riales está relacionado con los autovalores de , que pueden ser complejos.
∂y
Si Re λ > 0 no hay ningún valor de h > 0 tal que hλ ∈ R, pero la solución exacta
tampoco es acotada.

Si λ < 0, h debe satisfacer h ≤ −2/λ, ası́ que debe ser muy pequeño cuando |λ| es
grande.

89
Cuando se quieren diseñar métodos más estables, se entiende que se desean métodos
con una mayor región de estabilidad.
∂f
Cuando un problema y 0 = f (t, y) tiene con autovalores de parte real muy
∂y
negativa (que exige h muy pequeño) se dice que la EDO es stiff (rı́gida). Esta
situación es muy común en problemas que involucran reacciones quı́micas.

Región de estabilidad para RK2.


Dado Yn , el método RK2 aplicado al problema modelo produce el siguiente Yn+1 :

k1 = hλYn ,
k2 = hλ(Yn + k1 ) = hλ(Yn + hλYn ) = [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 método es estable si y solo si

z2
hλ ∈ RRK2 := {z ∈ C : |1 + z + | ≤ 1}.
2
La región R de estabilidad de RK2 puede verse en la Figura 5.2.

Región de estabilidad de RK4.


Análogamente a como se hizo para RK2 se puede ver que la región 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 métodos explı́citos de un paso vistos hasta el mo-
mento son bastante pequeñas. Regiones de estabilidad más grandes se obtienen al utilizar
métodos implı́citos.

5.9. Método Retro-Euler o Euler implı́cito


El método de Euler se puede obtener a partir de la fórmula 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 métodos de Runge-Kutta. Euler o RK1 (izquier-
da), RK2 (medio), RK4 (derecha).

Si usamos la fórmula 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 método de Euler implı́cito o Retro Euler se define entonces por la iteración

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

Es decir, Yn+1 es la solución Y de la ecuación algebraica

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

Este método implica resolver, en cada paso, una ecuación o sistema de ecuaciones que
en general será no lineal. En cada paso se puede resolver con un método tipo Newton
(por ejemplo). Este método tiene un costo adicional de resolver un sistema no lineal en
cada paso de tiempo, pero permite tomar ∂f h mucho más grande que el método de Euler
∂f
explı́cito, en especial cuando < 0 y es grande (ecuaciones stiff). Veamos la región

∂y ∂y
de estabilidad de Retro Euler (RE). Si aplicamos la definición Yn+1 = Yn + hf (tn+1 , Yn+1 )
al problema modelo y 0 = λy obtenemos que
1  1 n+1
Yn+1 = Yn + hλYn+1 ⇒ Yn+1 = Yn = Y0 .
1 − hλ 1 − hλ
Por lo tanto, el método resultará estable cuando hλ pertenezca a la región de estabilidad
n 1 o
RRE = z ∈ C : ≤ 1 = {z ∈ C : |1 − z| ≥ 1} = B(1, 1)c ,

1−z

91
que contiene a todo el semiplano complejo {z ∈ C : Re z ≤ 0}. En este caso se dice que
el método es incondicionalmente estable, pues h no debe cumplir ninguna condición para
que el método sea estable, cuando Re λ ≤ 0.

5.10. Ejercicios
5.1. Verifique el funcionamiento del método de Euler (euler1.m), utilizándolo para re-
solver el siguiente PVI: (
y 0 = −y, 0 ≤ t ≤ 1,
y(0) = 1.
Este PVI tiene solución exacta y(t) = e−t . 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 máx1≤i≤L+1 |y(ti ) − Yi |. Si el método está bien implemen-


tado, deberı́a 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(2πt2 ) − ty, 0 ≤ t ≤ 4,
y(0) = 2.

con el método 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 solución no cambia más. Finalmente calcule el máximo y el mı́nimo de
la solución en el intervalo [0, 4].
5.3. Utilizando el valor de L del ejercicio anterior, calcule las soluciones de la misma
ecuación con condición inicial y(0) = 1, y(0) = 0 y y(0) = −1. Grafı́quelas todas sobre el
mismo par de ejes y diga qué ocurre a medida que el tiempo t avanza. ¿Se acercan o se
alejan las trayectorias? ¿Cómo se relaciona esto con ∂f∂y
?
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 gráfico 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 solución 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 partı́cula que se mueve en el plano está dada por la curva
(x1 (t), x2 (t)), donde las funciones x1 y x2 son la solución 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 método de Euler utilizando paso h =
0.05 y grafique la trayectoria de la partı́cula, sabiendo que en tiempo t = 0 se encontraba
en el punto (1, −1).
5.7. Programe el método 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 función euler.m.
Verificar su funcionamiento repitiendo el ejercicio 5.5, pero con el método de Runge-
Kutta de orden 2, en lugar del de Euler. Si el método está bien implementado, cada vez
que h se divide por la mitad, el error deberı́a dividirse por 4(= 22 ).
5.8. Repetir el ejercicio anterior para el método de Runge-Kutta de orden 4. Es decir,
programar la función rk4 con el formato:
[t,y] = rk4(f, [t0 TF], y0, L)
Verificar su funcionamiento repitiendo el ejercicio 5.5, pero con el método de Runge-
Kutta de orden 4, en lugar del de Euler. Si el método está bien implementado, cada vez
que h se divide por la mitad, el error deberı́a dividirse por 16(= 24 ).
5.9. El siguiente PVI de orden 3 tiene como solución 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

Resuélvala 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 número de evaluaciones de f que fueron
necesarios, en cada método, para tener un error global:

(a) Menor a 10−3 . (b) Menor a 10−6 . (c) Menor a 10−10 .

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) ¿Cuál variable representa al predador y cuál 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

¿Cuál de las dos especies puede sobrevivir sin la existencia de la otra?


¿Qué especie se extingue si la otra no existe?

(b) Calcule numéricamente una solución donde la población inicial de la presa es 1000
y la de predadores es 500. Dibujar la solución, graficando ambas poblaciones con el
tiempo, y describir el fenómeno representado (utilice un método que usted considere
apropiado, y un intervalo de tiempo que sea representativo de lo que sucede).

5.11. Si consideramos un péndulo de brazo rı́gido de longitud `, donde no hay fricción


ni resistencia del aire, el ángulo ϕ(t) que forma el péndulo con la vertical satisface la
siguiente ecuación diferencial de orden dos:

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

Supongamos (por simplicidad) que la longitud del brazo es igual a 9.81m, con lo que
obtenemos la ecuación
ϕ00 (t) + sen ϕ(t) = 0.
Resolver esta ecuación numéricamente (utilizando ode45) en el intervalo [0, 10], en los
siguientes casos, y explicar la situación fı́sica descripta (condiciones iniciales y evolución):

(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 quı́mico muy común en la industria de procesos es el Reactor en tan-
que continuamente agitado (CSTR por su nombre en inglés: Continuously Stirred Tank
Reactor ). En este trabajo estudiaremos un reactor en tanque enfriado2 . Se supone que
el recipiente está perfectamente mezclado, y que ocurre una reacción exotérmica e irre-
versible de primer grado A → B. Un diagrama esquemático 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 concentración 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 término expresa los cambios en la concentración de A en el tanque CA (t)
debidos a la diferencia entre ella y la concentración de A en el flujo entrante CAf . El
segundo término expresa los cambios de concentración (tasa de reacción) que ocurren
debido a la reacción quı́mica en el tanque. La tasa de reacción 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 reacción quı́mica crece exponencialmente con la temperatura
absoluta en el reactor T (t), k0 es una constante no-térmica, E es la energı́a de activación,
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 término describen cambios de temperatura debidos a la dife-
rencia de temperatura entre el flujo de entrada Tf y la temperatura del lı́quido refrigerante
2
Una descripción extensiva de este reactor y modelos matemáticos pueden encontrarse en el libro de
Bequette “Process Dynamics: Modeling, Analysis and Simulation”

95
Tj con la temperatura T (t) del tanque. El segundo término indica la influencia sobre la
temperatura del reactor causada por la reacción quı́mica. En esta ecuación, H es un
parámetro de calor de reacción, cp un término de capacidad calórica, ρ una densidad, U
un coeficiente de transferencia de calor, y A el área para el intercambio de calor (área de
contacto entre el refrigerante y el tanque).
Poniendo todo junto, el CSTR tiene tres señales de entrada:
CAf Concentración de A en el caudal de entrada [kgmol/m3 ]
Tf Temperatura de la alimentación [K]
Tj Temperatura del lı́quido refrigerante [K]
Dos señales de salida, o variables de estado:
y1 (t) = CA (t) Concentración de A en el tanque reactor [kgmol/m3 ]
y2 (t) = T (t) Temperatura del reactor [K]
Después de agrupar algunos de los parámetros originales, llegamos a ocho parámetros
diferentes:
F Tasa de flujo volumétrico [volumen/tiempo] [m3 /h] 1
3
V Volumen del reactor [m ] 1
k0 Factor no-térmico pre-exponencial [1/h] 35 × 106
E Energı́a de activación [kcal/kgmol] 11850
R Constante de gas de Bolzman [kcal/(kgmol K)] 1.98589
H Calor de la reacción [kcal/kgmol] -5960
3
HD = cp ρ Capacidad calórica por densidad [kcal/(m K)] 480
3
HA = U A Tasa total de transferencia de calor por área [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 fácilmente modificadas.

2. Simular el comportamiento durante un dı́a del reactor en los siguientes casos, y ela-
borar un pequeño informe con lo que se observa en las señales de salida, o variables
de estado (como para ser leı́do 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 método de Runge-Kutta de orden 4 con h = 0.1, h = 0.025, h = 0.005,
h = 0.001.
Grafique las soluciones.
¿Para qué valor de h la solución 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 método numérico para 0 ≤ t ≤ 24 y determinar aproximada-


mente (a partir de un gráfico) los puntos máximos de x(t). Indicar los instantes de
tiempo en que se dan los máximos de x y el valor de x en cada máximo.

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

Si le interesa leer un poco más sobre los temas de este capı́tulo, 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
Capı́tulo 6

Ecuaciones en derivadas parciales

Una ecuación en derivadas parciales (EDP) es una ecuación matemática que contiene
derivadas parciales, por ejemplo:
∂u ∂u
+3 = 0. (6.1)
∂t ∂x
Podrı́amos comenzar nuestro estudio determinando qué funciones u(x, t) satisfacen (6.1).
Sin embargo, preferimos comenzar investigando un problema fı́sico.
El estudio de las EDP domina diversas áreas de la ingenierı́a y de la fı́sica. He aquı́
una lista (no exhaustiva) de áreas altamente dependientes del estudio de EDP: acústica,
aerodinámica, elasticidad, electrodinámica, dinámica de fluidos, geofı́sica, transferencia
de calor, meteorologı́a, etc.
Con respecto al estudio de EDP seguiremos cierta filosofı́a de matemática aplicada en
la cual el análisis de un problema tendrá tres etapas:

1. Formulación

2. Resolución

3. Interpretación

En este curso estudiaremos las ecuaciones del flujo de calor que describen la trans-
ferencia de energı́a térmica. La energı́a térmica es causada por la agitación de materia
molecular. El movimiento de la energı́a térmica es causado por dos procesos básicos:
conducción y convección. La conducción resulta de las colisiones de moléculas vecinas
en las cuales la energı́a cinética de la vibración de una molécula es transmitida a la de
su vecina más cercana. De este modo la energı́a térmica se propaga por conducción aún
si las moléculas no se mueven de una región a otra. Además, si una molécula que está
vibrando se mueve de una región a otra, se lleva la energı́a térmica con ella. Este tipo de
movimiento de energı́a térmica se denomina convección. Para comenzar nuestro estudio
con problemas relativamente simples, estudiaremos el flujo de calor sólo en casos donde
la conducción de energı́a calórica es mucho más significante que su convección. Es decir,
estaremos pensando en flujo de calor en el caso de sólidos. Aunque la transferencia de
calor en fluidos (lı́quidos y gases) está también gobernada principalmente por conducción
si la velocidad del fluido es suficientemente pequeña.

98
6.1. Derivación de la Conducción del Calor en una
Barra Unidimensional
Densidad de Energı́a Térmica. Comenzamos considerando una barra de sección
transversal constante de área A, orientada en la dirección del eje x (desde x = 0 hasta
x = L) como se ve en la Figura 6.1. Introducimos la cantidad de energı́a térmica por
unidad de volumen como una variable desconocida (incógnita) y la llamamos densidad
de energı́a térmica:
e(x, t) ≡ densidad de energı́a térmica.
Supondremos de ahora en adelante que todas las cantidades térmicas son constantes
en cualquier sección transversal (esto quiere decir que consideramos la barra como uni-
dimensional). La forma más sencilla de lograr esto es aislar perfectamente la superficie
lateral de la barra. De este modo no hay energı́a pasando a través de la superficie lateral
de la barra. La dependencia de x y t corresponde al caso en que la distribución de
temperatura no es uniforme; la energı́a térmica varı́a de una sección transversal a otra.

Energı́a Térmica. Consideramos un segmento finito de la barra, que va desde x = a


hasta x = b (ver Figura 6.1).

Figura 6.1: Energı́a calórica fluyendo hacia dentro y hacia fuera de un segmento de la
barra.

Si la energı́a térmica es constante en toda la barra, luego la energı́a total en la sección


considerada es el producto de la densidad de energı́a térmica por el volumen de la sección.
Dado que e(x, t) es la densidad de energı́a térmica, la energı́a total en el segmento es
Z b
energı́a térmica en la sección = A e(x, t) dx.
a

Conservación de la Energı́a Calórica. Investigaremos la conservación de energı́a


calórica en esta región, sección o segmento. Los cambios de energı́a calórica entre x = a
y x = b se producen a medida que transcurre el tiempo debido sólo a la energı́a que fluye
a través de los lados (x = a y x = b) y la energı́a generada dentro de la sección (debido a
fuentes positivas o negativas de energı́a calórica). Ningún cambio de energı́a es generado
por el flujo a través de la cara lateral, puesto que hemos supuesto que ésta se encuentra

99
térmicamente aislada. El proceso fundamental de flujo de calor se describe entonces por
la ecuación

razón de cambio energı́a calórica que


energı́a generada adentro
de la energı́a = fluye por los costados +
por unidad de tiempo.
en el tiempo por unidad de tiempo

Esta expresión se conoce como conservación de la energı́a calórica. Para la sección en


consideración, la razón de cambio de energı́a térmica es

razón de cambio  Z b  Z b
d d
de la energı́a = A e(x, t) dx = A e(x, t) dx.
dt a dt a
en el tiempo
Rb
Técnicamente, aquı́ aparece una derivada ordinaria d/dt, pues la expresión a
e(x, t) dx
depende sólo 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 energı́a térmica 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 energı́a térmi-
ca que fluye hacia la derecha por unidad de tiempo por unidad de área. Si φ(x, t) < 0,
entonces la energı́a está fluyendo hacia la izquierda.
La energı́a calórica que fluye por unidad de tiempo hacia adentro de la sección entre
x = a y x = b está dada por

energı́a calórica que energı́a calórica que


energı́a calórica 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 área y por lo tanto debe multiplicarse
por el área para saber el flujo total a través de una sección, tenemos que

energı́a calórica que energı́a calórica 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

energı́a calórica 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 también nos permitirá considerar la existencia de
fuentes internas de energı́a térmica, y utilizaremos la variable Q(x, t) para denotar la
energı́a calórica generada por unidad de tiempo por unidad de volumen. Esta energı́a
generada puede deberse —por ejemplo— a reacciones quı́micas o a calentamiento por
medio de electricidad.
Como Q(x, t) representa la energı́a calórica generada por unidad de tiempo por unidad
de volumen, para obtener la energı́a generada por unidad de tiempo en la sección que va
desde x = a hasta x = b debemos integrar, y obtenemos que
Z b
energı́a generada dentro ∼
= A Q(x, t) dx.
de la secciónpor unidad de tiempo a

Conservación de la energı́a calórica. Acorde a lo expresado en los párrafos ante-


riores, la razón de cambio de energı́a calórica se debe a energı́a térmica fluyendo a través
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 Cálculo, resulta


Z b
∂φ
φ(a, t) − φ(b, t) = − (x, t) dx.
a ∂x

y entonces la ecuación 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 están 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 sección a < x < b, y por lo tanto, el integrando
debe ser cero. Ası́ obtenemos la siguiente ecuación de balance:
∂e ∂φ
(x, t) = − (x, t) + Q(x, t). (6.4)
∂t ∂x

Temperatura y calor especı́fico. Usualmente, el estado con respecto a la energı́a


calórica de un material se describe por medio de su temperatura y no por medio de
su densidad de energı́a. Por este motivo queremos encontrar la relación existente entre
la temperatura y la densidad de energı́a térmica, es decir, encontrar una expresión de

101
la temperatura —que denotaremos con u(x, t)— en términos de la densidad de energı́a
térmica e(x, t). Para poder relacionar la energı́a térmica con la temperatura necesitamos
introducir el concepto de calor especı́fico o capacidad calórica:

energı́a calórica que debe administrarse a


c = calor especı́fico = una unidad de masa de una sustancia para
elevar su temperatura en una unidad (un grado).

En general, de los experimentos y de la definición que hemos dado, el calor especı́fico c de


un material depende de la temperatura u. Por ejemplo, la energı́a térmica 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 especı́fico dependiente de la temperatura son matemáticamente muy complicados,
y escapan al interés de esta parte del curso. A menudo para intervalos de temperatura
restringidos, el calor especı́fico es aproximadamente independiente de la temperatura, y
éste es el caso que consideraremos nosotros. Por otro lado, experimentos sugieren que el
calor especı́fico depende fuertemente del material. Como queremos que el modelo repre-
sente correctamente el caso en que la composición de nuestra barra unidimensional varı́e
de una posición a otra, permitiremos a la variable c depender de x; c = c(x). En muchos
problemas la barra está hecha de un solo material (barra uniforme), en cuyo caso c será
constante. La mayorı́a de los problemas que trataremos en este libro contemplan este caso
de c constante.

Energı́a térmica. La energı́a térmica en una unidad de volumen con densidad de


energı́a térmica e es e. Por otro lado, la energı́a térmica de una sustancia también se
define como la energı́a 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 energı́a térmica en una unidad de volumen con densidad de masa
ρ y densidad de energı́a térmica e, que se encuentra a temperatura u es cρu.
Si permitimos que ρ = ρ(x) y c = c(x) varı́en con x para considerar barras no
uniformes, la densidad de energı́a térmica 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 energı́a térmica por unidad de volumen es igual a la energı́a térmi-
ca por unidad de masa (calor especı́fico) por la temperatura por la densidad de masa
(masa por unidad de volumen). Cuando reemplazamos la densidad de energı́a térmica
utilizando (6.5), la conservación de energı́a térmica (6.4) resulta
∂u ∂φ
c(x)ρ(x) (x, t) = − (x, t) + Q(x, t). (6.6)
∂t ∂x

Ley de Fourier. Usualmente, la ecuación (6.6) se entiende como una ecuación con dos
incógnitas: la temperatura u(x, t) y el flujo de calor (flujo por unidad de área por unidad
de tiempo) φ(x, t). Surge ahora la pregunta: ¿Cómo y por qué fluye la energı́a calórica?
En otras palabras, ¿Cuál es la relación entre el flujo de energı́a calórica 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 región, no hay flujo de energı́a calórica.

2. Si hay diferencias de temperatura, la energı́a calórica fluye de la región más caliente


hacia la región más frı́a.

3. Cuanto mayor es la diferencia de temperatura (para el mismo material), mayor será


el flujo de energı́a calórica.

4. El flujo de energı́a calórica será diferente para diferentes materiales, aun para la misma
diferencia de temperatura.

Fourier (1768–1830) reconoció estas propiedades y concluyó, luego de numerosos ex-


perimentos que el flujo φ está dado por la fórmula
∂u
φ = −K0 , (6.7)
∂x
∂u
que se conoce como Ley de Fourier para la conducción del calor. Aquı́ es la
∂x
derivada de la temperatura; la pendiente de la temperatura como función de x para
un instante de tiempo t fijo; representa las diferencias de temperatura por unidad de
longitud. La ecuación (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 energı́a fluye hacia la izquierda. Esto explica la aparición del signo menos en (6.7)
Hemos introducido la constante K0 que es un coeficiente de proporcionalidad. Éste
mide la habilidad del material para conducir el calor, y se conoce con el nombre de
conductividad térmica. 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 energı́a calórica. Un material con un valor bajo
de K0 será un mal conductor de calor (bueno como aislante). Para una barra compuesta
por diferentes materiales, K0 será función de x. Más aún, experimentos muestran que la
habilidad para conducir calor para la mayorı́a de los materiales, es diferente a diferentes
temperaturas, es decir K0 = K0 (x, u). Sin embargo, tal como lo hicimos para el calor
especı́fico 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).

Ecuación del Calor. Si ahora tomamos la Ley de Fourier (6.7) y la reemplazamos en


la ecuación (6.6), resulta una ecuación 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 única función incógnita. Los coeficientes térmicos 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 ecuación diferencial (6.8) se transforma en

∂u ∂ 2u
cρ (x, t) = K0 2 (x, t) + Q(x, t). (6.9)
∂t ∂x
Si además suponemos que no hay fuentes de calor (Q = 0), dividiendo la ecuación por cρ
la ecuación en derivadas parciales se vuelve

∂u ∂ 2u ∂u ∂ 2u
(x, t) = k 2 (x, t), ó = k 2, (6.10)
∂t ∂x ∂t ∂x
K0
donde la constante k = se llama difusividad térmica, la conductividad térmica divi-

dida por el producto del calor especı́fico y la densidad de masa. La ecuación (6.10) se
conoce como ecuación del calor ; corresponde a un caso sin fuentes de calor y propiedades
térmicas constantes. Si la energı́a calórica está inicialmente concentrada en un lugar, la
ecuación (6.10) describe cómo se va a propagar la energı́a, un proceso fı́sico conocido co-
mo difusión. Además de la temperatura, existen otras cantidades fı́sicas que se propagan
de forma similar satisfaciendo la misma ecuación diferencial (6.10). Por este motivo, la
ecuación (6.10) se conoce como ecuación de difusión. Por ejemplo, la concentración u(x, t)
de quı́micos (como ser perfumes y contaminantes) satisface la ecuación de difusión (6.10)
en ciertas situaciones unidimensionales.

6.2. Condiciones Iniciales.


Las ecuaciones diferenciales parciales que describen el flujo de energı́a calórica (6.8)
∂u
y (6.10) tienen una derivada temporal ( ). Cuando una ecuación diferencial ordinaria
∂t
tiene una derivada, el problema a valores iniciales consiste en resolver la ecuación dife-
rencial con una condición inicial. Si pensamos que x es la posición de una partı́cula, la
segunda ley de Newton (ma = f ) se escribe como la ecuación diferencial de segundo or-
2
den m ddt2x = f . Aquı́ aparecen derivadas de segundo orden. El problema a valores iniciales
consiste en resolver la ecuación diferencial con dos condiciones iniciales, la posición inicial
x y la velocidad inicial dxdt
. A partir de esta información (incluyendo el conocimiento de
las fuerzas), resolviendo la ecuación diferencial con las condiciones iniciales, podemos pre-
decir el movimiento futuro de una partı́cula en la dirección x. Queremos hacer lo mismo
para nuestra ecuación diferencial, es decir, queremos predecir las temperaturas futuras.
Como la ecuación del calor tiene una derivada con respecto al tiempo t, debemos proveer
una condición 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 distribución inicial de temperatura

u(x, 0) = f (x), 0 ≤ x ≤ L.

¿Es esta información suficiente para predecir la temperatura en el futuro? Sabemos la


distribución de temperatura inicial y sabemos que la temperatura cambia acorde a la
ecuación diferencial parcial (6.8) ó (6.10). Pero aún nos falta saber qué ocurre en los

104
extremos x = 0 y x = L. Sin esta información, no podemos predecir el futuro. Como
tenemos dos derivadas con respecto a x en la ecuación diferencial, necesitaremos dos
condiciones en los extremos de la barra, generalmente una condición en cada extremo.
Discutiremos estas condiciones, conocidas como condiciones de borde (CB) en la siguiente
sección.

6.3. Condiciones de Borde (CB)


Al resolver la ecuación del calor, ya sea (6.8) o (6.10), es necesario imponer una
condición de borde (CB) en cada extremo de la barra. La condición de borde apropiada
depende del mecanismo fı́sico en efecto en cada extremo. A menudo la condición en la
frontera depende tanto del material que compone la barra como del material que está
fuera de la barra. Para evitar un problema matemáticamente más difı́cil, 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 está
predeterminada y es igual a uB (t) en el instante t. En este caso, la condición de borde se
escribe temperatura prescripta,
u(0, t) = uB (t). (6.11)
Una situación fı́sica que puede representarse on esta CB es el caso en que uB (t) es la
temperatura de un baño de fluido con el cual la barra está en contacto.

Frontera aislada. En otras situaciones es posible suponer que se conoce (o está 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 función conocida o dada. Esto es equivalente a dar una condición 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 ecuación (6.12) no puede ser integrada en x puesto
que la pendiente se conoce sólo en el punto x = 0. El ejemplo más simple de flujo de
calor prescripto en la frontera es cuando uno de los extremos está perfectamente aislado.
En este caso no hay flujo en la frontera. Si el extremo x = 0 está aislado, luego
∂u
(0, t) = 0. (6.13)
∂x

Ley de enfriamiento de Newton. Cuando un extremo de la barra unidimensional


está 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 está caliente, y en contacto con aire en movimiento. El calor saldrá de la barra,
calentando el aire. Y el aire se llevará 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 condición 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 convección. Esta condición de borde involucra una combinación lineal de u y
∂u
. Debemos ser cuidadosos con el signo de la constante H de proporcionalidad. Veamos,
∂x
si la barra está más caliente que el baño del fluido (u(0, t) > uB (t)), entonces el calor
fluirá 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 hubiéramos supuesto u(0, t) < uB (t) habrı́amos arribado a
la misma conclusión 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ı́ también de las del fluido (inclusive de
la velocidad con la que el fluido se mueve). Si el coeficiente es muy pequeño, muy poca
energı́a fluye a través del extremo. En el lı́mite H → 0, la ley de enfriamiento de Newton,
se convierte en la condición de borde aislado. Podemos pensar que la ley de Newton con
H 6= 0 representa un extremo que no está perfectamente aislado.
Cuando H es grande, mucha energı́a fluye a través del extremo. En el lı́mite H → ∞,
la condición de borde se transforma en la condición de temperatura prescripta u(0, t) =
uB (t). Esto puede verse fácilmente si dividimos (6.14) por H:

K0 (0) ∂u
− (0, t) = −[u(0, t) − uB (t)],
H ∂x
y tomamos lı́mite 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 condición 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. Distribución de temperatura en equilibrio


6.4.1. Temperatura prescripta
Formulemos ahora un problema simple, pero tı́pico de flujo de calor. Si los coeficientes
térmicos son constantes y no hay fuentes de energı́a térmica (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 solución de esta ecuación en derivadas parciales debe satisfacer la condición inicial

u(x, 0) = f (x) (6.17)

y una condición de borde en cada extremo. Por ejemplo, cada extremo puede estar en
contacto con grandes baños de fluidos diferentes, tal que la temperatura en cada extremo
está 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).

Distribución de temperatura en equilibrio. Antes de comenzar a atacar un proble-


ma como el recién expuesto, discutimos una pregunta con importante interés fı́sico y que
es más fácil de resolver, puesto que se reduce a una ecuación 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 solución en estado estacionario o estado de equilibrio a una dis-


tribución de temperatura independiente del tiempo, es decir, u(x, t) = u(x) que sea
solución de la ecuación diferencial (6.16) y satisfaga las condiciones de borde esta-
cionarias dadas por (6.19).

Tratemos ahora de ver si es posible hallar una solución estacionaria. Supongamos que
∂u
u es una solución en estado estacionario, entonces u no depende de t, y luego (x) = 0.
∂t
107
∂ 2u
Como u es solución 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 ecuación 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 condición inicial se ignora. La


ecuación (6.20) es bien sencilla y su solución general se obtiene integrando dos veces:

u(x) = C1 x + C2 .

Esta es también la ecuación general de la recta. De las condiciones de borde se deduce


que la distribución de temperatura en estado de equilibrio es la lı́nea 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.
Geométricamente vemos que hay una única solución 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 tendrán un cierto valor en cada caso
particular, y que las incógnitas 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 única solución
en estado de equilibrio de la ecuación 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-
tribución de temperatura se modifique a medida que pase el tiempo; no va a permanecer
igual a la distribución inicial f (x) a menos que ésta coincida con la solución estacionaria.
Si esperamos un perı́odo 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-
dición inicial poco importa si estamos mirando lo que ocurre después de mucho tiempo.
Se espera que eventualmente el perfil de la temperatura se aproxime a la distribución de
la temperatura en equilibrio

T2 − T1
lı́m u(x, t) = u(x) = T1 + x.
t→∞ L
Más adelante veremos cómo resolver el problema evolutivo (ecuación dependiente del
tiempo) y veremos efectivamente que este lı́mite es cierto. Mientras tanto, si sólo nos
interesa encontrar el estado estacionario o lı́mite cuando t → ∞, basta con resolver el
problema estacionario que hemos visto en el párrafo anterior.

Conclusión: Para hallar la solución estacionaria a la ecuación del calor, basta con
reemplazar ∂u/∂t por 0, y resolver la ecuación diferencial ordinaria en la variable x
resultante.

6.4.2. Bordes aislados.


Como segundo ejemplo de cálculo de soluciones en estado estacionario, consideramos
una barra unidimensional con coeficientes térmicos constantes en la que no se aplican
fuentes de calor, pero esta vez con bordes aislados en x = 0 y x = L. La formulación 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
ción 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 condición inicial es ignorada (por el momento). La solución general de 2 = 0
dx
es otra vez una lı́nea recta arbitraria

u(x) = C1 x + C2 .

Las condiciones de borde implican que la pendiente debe ser cero en ambos extremos.
Geométricamente, cualquier lı́nea recta horizontal satisfará ambas condiciones de borde
simultáneamente. Luego la solución es cualquier distribución 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 obtenı́amos


una única solución estacionaria. En este caso (bordes aislados) cualquier temperatura
constante es una distribución de temperatura de equilibrio.
Esto quiere decir que si u(x, t) es la solución del problema evolutivo (dependiente del
tiempo), esperamos que
lı́m u(x, t) = C2 .
t→∞

En otras palabras, si esperamos un lapso de tiempo suficientemente largo, la distribución


de temperatura en la barra con bordes aislados será casi constante, lo cual es fı́sicamente
razonable. Sin embargo, no parece razonable que la solución se aproxime a cualquier
constante; ¿de qué deberı́a depender la constante C2 ? ¿de qué depende la constante a la
cual converge u(x, t) cuando t → ∞?

La falta de unicidad se debe a que hemos ignorado completamente la condición inicial.

En general, la temperatura en estado estacionario no satisfará la condición inicial (a


menos que ésta sea constante). Sin embargo, la constante C2 de la temperatura estacio-
naria queda determinada por la condición inicial del problema evolutivo (6.17): como
ambos extremos están aislados, y como estamos suponiendo que no hay fuentes de calor
(Q(x, t) = 0), la energı́a térmica total en la barra no cambia, es decir, la energı́a térmica
total en la barra permanece constante. Si llamamos E(t) a la energı́a térmica total en la
barra, por lo antedicho, tenemos que dE(t)/dt = 0.
RL
En términos matemáticos, observemos que E(t) = Acρ 0 u(x, t) dx, y entonces por
la ley de conservación (como Q = 0, la razón 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 están aislados, el lado derecho es cero y luego

d
E(t) = 0,
dt
110
por lo que E(t) es constante. En consecuencia la energı́a térmica total inicial E(0) debe
ser igual a la energı́a térmica total “final” E(∞) = lı́mt→∞ 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(∞) = lı́m E(t) = lı́m cρ u(x, t) dx = cρ lı́m 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 única solución estacionaria debe ser

1 L
Z
u(x) = C2 = f (x) dx.
L 0

Esto es, la solución en estado de equilibrio para la ecuación del calor con bordes aislados
es la distribución de temperatura constante cuyo valor es el promedio de la distribución
de temperatura inicial. En este caso (bordes aislados) la condición inicial es importante, y
la barra no se olvida completamente de la condición inicial, “se acuerda de su promedio.”

6.5. Derivación de la ecuación del calor en 2 o 3 di-


mensiones
Introducción. En la Sección 6.1 hemos visto que al considerar la conducción 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 térmicas son constantes,
la ecuación en derivadas parciales luce

∂u ∂ 2u
= k 2,
∂t ∂x
donde k = K0 /cρ. Antes de comenzar a estudiar métodos para resolver esta ecuación,
formularemos las ecuaciones en derivadas parciales que corresponden a problemas de flujo
de calor en dos o tres dimensiones espaciales. Veremos que la derivación y obtención de la
ecuación es muy similar a la que hemos hecho para el problema unidimensional, aunque
aparecerán diferencias importantes. Nos proponemos derivar ecuaciones nuevas y más
complejas (antes de resolver las más simples) para que cuando discutamos técnicas para
la resolución de las EDPs, tengamos más de un ejemplo para trabajar.

111
Energı́a calórica. Supongamos ahora que tenemos un sólido sobre el que queremos
estudiar la propagación de energı́a calórica. Comenzamos nuestra derivación de las ecua-
ciones o modelo matemático considerando una sub-región arbitraria R contenida en el
sólido. Como en el caso unidimensional, la conservación de la energı́a calórica se resume
en la siguiente ecuación:
razón de cambio energı́a calórica que
energı́a generada
de la energı́a fluye por la frontera
= + dentro de la región R
en la región R de la región R
por unidad de tiempo.
con respecto al tiempo por unidad de tiempo
Como ahora estamos considerando el caso de una región tridimensional, las constantes
que dependen del material dependerán de tres variables: c = c(x, y, z), ρ = ρ(x, y, z); y la
temperatura dependerá de cuatro variables, tres (x, y y z) que dan la posición espacial y
la cuarta (t) que representa el tiempo: u = u(x, y, z; t). Ahora bien, la energı́a dentro de
una sub-región arbitraria R es la integral triple
ZZZ
energı́a calórica en R = cρu 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 expresión para el flujo
de energı́a. En el problema unidimensional el flujo de calor φ se define como la cantidad
de calor por unidad de área 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
dirección (no necesariamente alineada con alguno de los ejes), por lo que el flujo es un
campo vectorial φ. La magnitud de φ es la cantidad de energı́a calórica que fluye por
unidad de tiempo por unidad de área.
Por otro lado, cuando se considera la conservación de la energı́a, lo único que interesa
del flujo φ es la energı́a que pasa por unidad de tiempo a través de la superficie que
encierra la región R (denotaremos con ∂R a esta superficie que también 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).

Conservación de la energı́a calórica. En cada punto de ∂R, la cantidad de energı́a


que fluye hacia fuera de la región R por unidad de tiempo por unidad de área es la
componente en la dirección de la normal exterior n del flujo φ, es decir φ · n. Para
calcular el total de energı́a térmica fluyendo hacia fuera de R por unidad de tiempo
debemos integrar φ · n sobre la superficie ∂R con respecto al diferencial de área. Es decir
ZZ
energı́a fluyendo hacia fuera de R por unidad de tiempo = φ · n dσ,
∂R
o sea
ZZ
energı́a fluyendo hacia adentro de R por unidad de tiempo = − φ · n dσ.
∂R

112
El signo de esta integral tiene la siguiente interpretación fı́sica: si es positiva, luego la
energı́a calórica total dentro de la barra decrece, y si es negativa, crece.
Denotemos con Q la densidad de energı́a térmica generada por unidad de tiempo por
unidad de volumen,
RRR luego el total de energı́a térmica generada por unidad de tiempo en
la región R es R
Q dV .
En consecuencia, la ley de conservación de energı́a calórica para una región arbitraria
tridimensional R se escribe
ZZZ ZZ ZZZ
d
cρu 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 conservación integral, una relación en derivadas. Hicimos esto
observando que por el teorema fundamental del cálculo
Z b
∂φ
φ(a, t) − φ(b, t) = − (x, t) dx;
a ∂x

es decir, el flujo a través de los extremos puede expresarse como una integral sobre toda
la porción de la barra en consideración. El teorema de la divergencia nos permite realizar
algo análogo para tres variables. En efecto, el teorema de la divergencia dice que si F es
un campo vectorial de clase C 1 en una región que contiene a la región 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 región es igual a la integral sobre la superficie que encierra a la región
de la componente normal exterior del campo vectorial F.

Aplicación 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 expresión matemática de la conservación de la


energı́a dada por (6.29) obtenemos
ZZZ ZZZ ZZZ
d
cρu dV = − div φ dV + Q dV.
dt R R R

113
Como la región R bajo consideración se encuentra fija, podemos pasar la derivada tem-
poral dentro del signo de la integral, y juntando todos los términos del mismo lado
obtenemos ZZZ  
∂u
cρ + div φ − Q dV = 0.
R ∂t
Ahora bien, como esta integral es cero para toda sub-región 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 conducción del calor. En problemas unidimensionales, y


por experimentos Fourier concluyó que el flujo de calor φ es proporcional a la derivada
∂u
de la temperatura con signo opuesto φ = −K0 . El signo menos está relacionado con
∂x
el hecho de que la energı́a térmica fluye de las zonas calientes hacia las zonas frı́as. La
∂u
cantidad es el cambio en temperatura por unidad de longitud. Estas mismas ideas
∂x
son válidas 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 dirección opuesta:
φ = −K0 ∇u. (6.32)
Esta última expresión se conoce como ley de Fourier para la conducción del calor,
donde nuevamente K0 se llama coeficiente de conductividad térmica.

Ecuación del calor. Si utilizamos la expresión (6.32) del flujo φ en la ecuación de


conservación (6.31) obtenemos la ecuación en derivadas parciales
∂u
cρ = div(K0 ∇u) + Q. (6.33)
∂t
En los casos en que no hay fuentes de energı́a térmica (Q = 0) y los coeficientes térmicos
son constantes, la ecuación (6.33) se transforma en
∂u
= k div(∇u), (6.34)
∂t
donde k = K0 /cρ se llama nuevamente difusividad térmica. Si utilizamos la definición 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 última expresión se conoce como Laplaciano de u y se denota con ∇2 u. Luego la
ecuación del calor puede escribirse como
∂u
= k∇2 u. (6.35)
∂t
114
La ecuación (6.35) se conoce como ecuación del calor o ecuación de difusión en tres
dimensiones.

Problema de valores iniciales y de frontera. Además de la ecuación (6.33) o


de (6.35) la temperatura u satisface una distribución inicial de temperatura

u(x, y, z; 0) = f (x, y, z).

La temperatura también satisface una condición de frontera en cada punto de la superficie


que encierra la región de interés. La condición de frontera puede ser de distinto tipo. La
temperatura podrı́a estar prescripta

u(x, y, z; t) = T (x, y, z; t)

en todo punto de la frontera, donde T es una función conocida (dato) definida para todo
t en cada punto (x, y, z) de la frontera. También es posible que el flujo a través de la
frontera esté prescripto. Frecuentemente consideraremos el caso de frontera (o parte de
ella) aislada. Esto quiere decir que no hay flujo de calor a través de esa porción 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 área 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 térmicamente aislados se tiene que

∇u · n = 0.

Recordemos que ∇u·n es la derivada direccional de u en la dirección de la normal exterior


∂u
n, también llamada derivada normal de u, y a veces se denota con .
∂n
Una condición de borde más realista, y que aparece a menudo en las aplicaciones, es la
ley de enfriamiento de Newton. Ésta dice que la energı́a que fluye hacia fuera por unidad
de tiempo por unidad de área es proporcional a la diferencia de temperatura entre la de
la superficie (u) y la temperatura fuera de la región (uB ). En términos matemáticos 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 energı́a fluirá 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 ecuación del calor que satisfagan las condiciones de frontera dadas:

0 = div(K0 ∇u) + Q.

Notemos ahora que al estar en dimensión tres, la ecuación de estado estacionario sigue
siendo una ecuación en derivadas parciales. Es cierto que tenemos una variable menos (t
no aparece en esta ecuación), pero sigue habiendo derivadas con respecto a x, y y z. En

115
el caso que las propiedades térmicas sean constantes, la distribución de temperatura en
estado de equilibrio satisfará la ecuación
Q
∇2 u = − ,
K0
que se conoce como ecuación de Poisson.
Si además no hubiera fuentes de calor (Q = 0), la ecuación resultarı́a

∇2 u = 0;

el laplaciano de la distribución de temperatura es cero. Esta ecuación se conoce como


ecuación de Laplace. También se conoce como ecuación potencial, pues el potencial
gravitacional y el potencial electrostático la satisfacen en la ausencia de fuentes.

Problemas bidimensionales. Todos los comentarios previos acerca de problemas tri-


dimensionales son válidos si la geometrı́a del problema es tal que la temperatura sólo
depende de x, y y t (la temperatura es constante en todo segmento vertical). Esto ocurre
si tenemos una placa horizontal de espesor pequeño que está térmicamente aislada arriba
y abajo. La ecuación 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 función continua en [0, 1] tal que 0
f (x) dx = 0 pero f no sea la función
constantemente cero.

6.2. Si se conoce u(x, t) ρ(x), c(x), K0 (x), dar una expresión para la energı́a térmica
total contenida en una barra de longitud L.

6.3. Considerar una barra unidimensional 0 ≤ x ≤ L. Suponer que la energı́a 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 términos matemáticos usando la temperatura u(x, t) y la
temperatura exterior uB (t). Analizar si los signos están 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 región 0 ≤ x ≤ x0 y la segunda la región x0 ≤ x ≤ L. La función u1 (x, t), para
0 ≤ x ≤ x0 , t ≥ 0 denota la temperatura de la primera barra y la función u2 (x, t), para
x0 ≤ x ≤ L, t ≥ 0 denota la temperatura en la segunda. Se dice que estas barras, unidas
en x = x0 están en contacto térmico perfecto si se cumplen dos condiciones:

(a) La temperatura de ambas barras es la misma en x = x0 .

(b) No se pierde nada de energı́a calórica en x = x0 (es decir, la energı́a calórica que
fluye hacia afuera de una barra fluye hacia adentro de la otra).

116
Escribir ecuaciones matemáticas que representen estas dos condiciones. Para ello, denotar
con c1 , c2 , ρ1 , ρ2 , K01 , K02 las capacidades calóricas, las densidades y las conductividades
térmicas de ambos materiales.
6.5. Determinar la distribución de temperatura en estado de equilibrio para una barra
unidimensional con propiedades térmicas 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 distribución 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 energı́a calórica generada por unidad de tiempo dentro de toda la
barra.

(b) Determinar la energı́a calórica fluyendo hacia fuera de la barra por unidad de tiempo
en x = 0 y x = L.

(c) ¿Qué relación deberı́a existir entre las respuestas a la parte (a) y (b)?
6.7. Determinar la distribución de temperatura en equilibrio para una barra unidimen-
sional compuesta de dos materiales diferentes en contacto térmico 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 están aislados, concluir a partir de la ecuación en derivadas
parciales
∂u ∂ ∂u
c(x)ρ(x) (x, t) = (K0 (x) (x, t)), 0 ≤ x ≤ L, t ≥ 0,
∂t ∂x ∂x
que la energı́a térmica total en la barra es constante.

117
6.9. Considerar una barra unidimensional 0 ≤ x ≤ L de longitud conocida y propiedades
térmicas 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 fórmula para T en términos de c, ρ, K0 , T0 y φ0 ).

6.10. Los dos extremos de una barra uniforme de longitud L están aislados. Hay una
fuente constante de energı́a térmica Q0 6= 0 y la temperatura es inicialmente u(x, 0) =
f (x).

(a) Mostrar matemáticamente que no existe una temperatura de equilibrio. Explicar


brevemente en términos fı́sicos.

(b) Calcular la energı́a térmica total a tiempo t. Dar una expresión en términos de f (x)
y de Q0 .

6.11. Para los siguientes problemas, determinar una distribución de temperatura en esta-
do de equilibrio (si existe). ¿Para qué valores de β existen soluciones? Explicar fı́sicamente.

∂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 concentración de un contaminante (cantidad de con-
taminante por unidad de volumen)

(a) ¿Qué expresión representa la cantidad total de contaminante en la región R?

(b) Supongamos que el flujo J del contaminante es proporcional al gradiente de la con-


centración (¿es esto razonable?). Expresar la ley de conservación del contaminante.

(c) Derivar la ecuación en derivadas parciales que gobierna la difusión del contaminante.

6.13. Mostrar que si se satisface la ecuación 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
interpretación fı́sica de este resultado (en el contexto de flujo de calor).

118
Capı́tulo 7

Método de Separación de Variables

En el capı́tulo 6 hemos desarrollado a partir de principios fı́sicos una comprensión de


la ecuación del calor y sus correspondientes condiciones iniciales y de frontera. Estamos
ahora preparados para abordar el problema de la resolución matemática de algunos pro-
blemas de ecuaciones en derivadas parciales. Utilizaremos una técnica llamada método de
separación de variables. Aprenderemos la técnica a través de unos cuantos ejemplos.
Un problema relativamente simple, pero tı́pico para la ecuación de conducción del
calor ocurre cuando consideramos una barra unidimensional (0 ≤ x ≤ L) con coeficientes
térmicos 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 ecuación con la condición 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 método de separación de variables se utiliza cuando tanto la ecuación diferencial como


las condiciones de borde son lineales y homogéneas.

7.1. Linealidad
Ası́ como en el estudio de ecuaciones diferenciales ordinarias, el concepto de linealidad
será para nosotros de gran importancia. Un operador L es lineal cuando para todo par
de funciones u1 y u2 , y todo par de números 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 números 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 más com-
plicado es el operador conocido como operador del calor:

∂ ∂2
− k 2,
∂t ∂x
que también es un operador lineal.
Una ecuación 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 términos u4 y u son no-lineales; no satisfacen (7.4).
∂x
Si f = 0, entonces (7.5) se llama ecuación lineal homogénea. La ecuación del calor

∂u ∂ 2u
−k 2 =0 (7.12)
∂t ∂x
es un ejemplo de ecuación lineal homogénea, como también 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 función u ≡ 0,
obtenemos L(0) = 0. Por lo tanto, u ≡ 0 es siempre solución de una ecuación lineal
homogénea. Por ejemplo, u ≡ 0 satisface la ecuación del calor (7.12). La solución u ≡ 0 se
llama solución trivial. La manera más simple de ver si una ecuación es homogénea consiste
en reemplazar u por la función idénticamente cero. Si u ≡ 0 satisface una ecuación lineal,
entonces f = 0 y la ecuación lineal es homogénea.
La propiedad fundamental de los operadores lineales es que nos permiten sumar las
soluciones de una misma ecuación lineal y obtener otra solución:

Principio de Superposición. Si u1 y u2 satisfacen una ecuación lineal homogénea,


entonces cualquier combinación lineal de ellas u = c1 u1 + c2 u2 también la satisface.

120
La demostración de este principio depende de la definición de operador lineal. Supon-
gamos que u1 y u2 son dos soluciones de la ecuación lineal homogénea L(u) = 0, es decir,
L(u1 ) = 0 y L(u2 ) = 0. Calculemos L(u) para u = c1 u1 + c2 u2 . De la definición (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 solución de la misma ecuación lineal homogénea L(u) = 0.


Los conceptos de linealidad y homogeneidad también se aplican a las condiciones de
borde, en cuyo caso las variables están evaluadas en puntos especı́ficos. 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 condición de borde no-lineal, serı́a, por ejemplo
∂u
(L, t) = u2 (L, t). (7.17)
∂x
De las condiciones de borde lineales (7.13)–(7.16), la única que es satisfecha por u ≡ 0
es (7.15), y por lo tanto (7.15) es la única CB homogénea.

7.2. Ecuación del calor con temperatura prescripta


cero en los extremos
7.2.1. Introducción
Nos proponemos estudiar la resolución del siguiente problema.

∂u ∂ 2u
EDP: =k 2 0≤x≤L t>0 (7.18)
∂t
( ∂x
u(0, t) = 0
CB: t≥0 (7.19)
u(L, t) = 0
CI: u(x, 0) = f (x) 0 ≤ x ≤ L. (7.20)

El problema consiste en una ecuación en derivadas parciales lineal homogénea con con-
diciones de borde lineales homogéneas. Hay dos razones para investigar este tipo de
problemas, más allá de que lo podremos resolver por el método de separación de varia-
bles. Primero, este problema es relevante desde el punto de vista fı́sico, correspondiente
a una barra unidimensional sin fuentes y con ambos extremos inmersos en un baño a
temperatura 0o . Estamos interesado en poder predecir cómo cambia la energı́a térmica

121
inicial (representada en el dato inicial f (x)) a medida que pasa el tiempo en esta situación
fı́sica relativamente sencilla. Segundo, veremos que para poder resolver el problema no-
homogéneo (7.1)–(7.3), necesitaremos saber cómo resolver el problema homogéneo (7.18)–
(7.20).

7.2.2. Separación de variables


El método de separación 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 función sólo de la variable x y G(t) es función sólo de la variable t. La


función u(x, t), que es la candidata a solución, dada en (7.21) debe satisfacer la ecuación
en derivadas parciales lineal homogénea (7.18) y las condiciones de borde (7.19). Por
el momento ignoraremos la condición inicial, pues veremos que en general la solución
producto (7.21) no satisface la condición inicial. Más adelante veremos qué se debe hacer
para encontrar una solución que la satisfaga. En principio:

Buscamos todas las soluciones posibles que sean producto de una función de x y una
de t y que satisfagan la ecuación diferencial y las condiciones de borde homogéneas.

Por lo mencionado en la sección anterior, la función u ≡ 0 es solución de la ecuación


diferencial y satisface las condiciones de borde. Esta solución se conoce como solución
trivial, y está siempre presente. Tengamos pues en mente que estamos buscando soluciones
producto no-triviales.
Seamos francos desde el comienzo, no existe ninguna razón clara por la que elegimos
la forma (7.21). Daniel Bernoulli inventó esta técnica en los 1700s, y funciona, como ya
veremos.
Supongamos entonces que u(x, t) = φ(x)G(t) ya es una solución de la ecuación dife-
rencial que también satisface las condiciones de borde. Veamos qué 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 ecuación 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 sólo
función de la variable t y el lado derecho es sólo función de la variable x. Podemos

122
continuar trabajando con esta expresión, pero es conveniente dividir también por k, y
luego
1 dG 1 d2 φ
= . (7.23)
kG dt
| {z } φ dx2
| {z }
función de t función de x

¿Cómo es posible que una función solamente dependiente de t sea igual a una función que
depende solamente de x? La única 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 separación. En un


momento explicaremos la aparición del misterioso signo menos, que fue introducido sólo
por conveniencia.
La ecuación (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 incógnitas: φ, G, y λ. Para hallar las soluciones producto (7.21)
debemos resolver las dos equaciones diferenciales ordinarias que acabamos de deducir, y
ver para qué 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 también 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 idénticamente cero, para todo t), o φ(0) = 0. Si G(t) ≡ 0, entonces
u ≡ 0 y obtuvimos la solución 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 condición de borde u(L, t) = 0, obtenemos que

φ(L) = 0. (7.28)

Los factores φ y G intervinientes en las soluciones producto, además de satisfacer dos


ecuaciones diferenciales ordinarias (7.25) y (7.26), deben satisfacer las condiciones de
borde (7.27) y (7.28).

123
Conclusión: 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 simultáneamente:

d2 φ
= −λφ
dx2
dG
= −λkG.
dt

7.2.3. Ecuación dependiente del tiempo


La ventaja del método de separación de variables es que transforma una ecuación en
derivadas parciales, que no sabemos resolver, en dos ecuaciones diferenciales ordinarias.
Las condiciones de borde imponen dos condiciones en la ecuación diferencial ordinaria
que depende de x. La ecuación que depende del tiempo (7.26) no tiene (aún) ninguna
dG
condición. Sólo = −λkG. Resolvámosla antes de resolver la otra. Esta ecuación es
dt
una ecuación de primer orden con coeficientes constantes. Podemos obtener su solución
general fácilmente. En este caso, la solución general es

G(t) = c e−λkt . (7.29)

La solución de la ecuación dependiente del tiempo es una simple exponencial. Recordemos


que λ es la constante de separación, que por el momento es arbitraria y puede tomar
cualquier valor. Sin embargo, eventualmente descubriremos que λ sólo puede tomar ciertos
valores.

7.2.4. Problema a valores en el borde


La parte dependiente de la variable espacial x de la solución producto, φ(x), satisface
una ecuación diferencial ordinaria (EDO) con dos condiciones de borde homogéneas:

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 enseña ecuaciones diferenciales ordinarias, sólo 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 teorı́a simple que garantice que la solución existe o es única para este tipo
de problemas. En particular, notamos que φ(x) ≡ 0 satisface la EDO y ambas condiciones
de borde homogéneas, sin importar el valor de λ, aún para λ < 0. Esta solución se conoce
con el nombre de solución 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 únicas, φ(x) ≡ 0
serı́a la única solución; y no podrı́amos obtener soluciones no-triviales de una EDP lineal
homogénea por el método de separación de variables. Afortunadamente sı́ existen otras
soluciones de (7.30), aunque no para cualquier valor de λ sino sólo para algunos. Veremos
a continuación que hay ciertos valores de λ, llamados autovalores de (7.30), para los
cuales existen soluciones no-triviales φ(x). Una φ(x) no-trivial, correspondiente a algún
valor de λ se llama autofunción correspondiente al autovalor λ.

Un número λ se llama autovalor de la ecuación


d2 φ
= −λφ, φ(0) = 0, φ(L) = 0, (7.31)
dx2
si y sólo si existe una función φ 6≡ 0 que satisface (7.31)

Tratemos de determinar los autovalores λ. En otras palabras, ¿para qué valores de


λ existe solución no-trivial de (7.30)? Resolvamos (7.30) directamente. La ecuación es
de segundo orden y homogénea con coeficientes constantes: usualmente se obtienen dos
soluciones independientes en forma de exponenciales φ(x) = erx . Sustituyendo esta ex-
ponencial en la ecuación diferencial obtenemos el polinomio caracterı́stico r2 = −λ. Las
soluciones correspondientes a las dos raı́ces tienen diferentes propiedades dependiendo
del valor de λ. Existen al menos tres casos:

1. λ >
√ 0: las dos raı́ces son puramente imaginarias y son los números complejos r =
±i λ.

2. λ = 0: las dos raı́ces son nulas r = 0.



3. λ < 0: las dos raı́ces son reales y opuestas r = ± −λ.

Autovalores y autofunciones para λ > 0. Consideremos primero el caso λ > 0. La


2
ecuación diferencial ddxφ2 = −λφ tiene soluciones oscilantes. Todas ellas son las combina-
√ √
ciones lineales de cos λx y sen λx. Entonces, la solución general de (7.30) en el caso
λ > 0 es √ √
φ(x) = c1 cos λx + c2 sen λx. (7.32)
Si exigimos a la solución 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 condición de frontera en x = L, es
necesario que √
0 = c2 sen λL.

125
Si c2 = 0, obtenemos la solución 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 función seno, es decir un múltiplo 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 autofunción correspondiente al autovalor λ = nπ L
es
√ nπx
φ(x) = c2 sen λx = c2 sen (7.34)
L
donde c2 es una constante arbitraria. A menudo elegimos una autofunción seleccionando
un valor no-nulo para c2 , por ejemplo c2 = 1. Debemos recordar que cualquier autofunción
puede ser multiplicada por una constante arbitraria y seguir siendo autofunción del
mismo autovalor pues la ecuación es lineal y homogénea.

Autovalores y autofunciones para λ = 0. Ahora determinaremos si λ = 0 es un


autovalor de (7.30). El caso λ = 0 es especial, la solución general en este caso es
φ(x) = c1 + c2 x.
Para determinar si λ = 0 es un autovalor, debemos aplicar las condiciones de borde a la
solución general φ. La condición φ(0) = 0 implica c1 = 0 y luego φ(x) = c2 x. La condición
φ(L) = 0 implica c2 L = 0. Como la longitud de la barra L es positiva, c2 = 0 y por lo
tanto φ(x) ≡ 0, la solución 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 térmicamente aislados.

Autovalores y autofunciones para λ < 0. ¿Existen autovalores negativos? Si λ < 0,


la solución de
d2 φ
= −λφ
dx2
no es √difı́cil, pero debemos ser cuidadosos. Las
√ raı́ces del
√ polinomio caracterı́stico son
−λx − −λx
r = ± −λ, y por lo tanto las soluciones son e ye . La solución general es
√ √
−λx
φ(x) = c1 e + c2 e− −λx
. (7.35)
A menudo, se utilizan también las funciones hiperbólicas en lugar de estas exponenciales.
Como repaso, las definiciones de las funciones hiperbólicas son
ez + e−z ez − e−z
cosh z = senh z = ,
2 2
simplemente combinaciones lineales de exponenciales. Notemos que senh 0 = 0 y cosh 0 =
1 (análogo a lo que ocurre con las funciones trigonométricas). También notemos que
d d
cosh z = senh z senh z = cosh z,
dz dz
126
similarmente a lo que ocurre con las trigonométricas, pero más fáciles de recordar por la
falta del signo menos. Otras propiedades importantes son las siguientes:
cosh z 6= 0 para todo z;
senh z = 0 sólo si z = 0.
Como ambas funciones hiperbólicas son sumas de exponenciales y son independientes,
la solución general también 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 solución

general (7.36). La condición φ(0) = 0 √implica c3 = 0 y luego φ(x) = c4 senh −λx.
La condición φ(L) = 0 implica c4 senh −λL = 0. Pero senh z = 0 sólo para z = 0 y
entonces, como λ 6= 0 y L > 0, obtenemos c4 = 0 quedándonos nuevamente la solución
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
nπx
φn (x) = sen .
L

7.2.5. Soluciones producto y el principio de superposición


Juntando lo que hemos obtenido en las dos últimas 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 algún entero positivo n. Escrito de otra forma,
nπx nπ 2
φ(x) = c2 sen , G(t) = ce−( L ) kt
;
L
para algún entero positivo n.

127
Por lo tanto, todas las soluciones producto de la ecuación del calor son
nπx −( 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 número real B y cada entero
positivo n, la expresión anterior es una solución de la ecuación del calor con condiciones
de borde de temperatura nula.
Ejemplos: las siguientes funciones son soluciones de la ecuación del calor con condi-
ciones de borde de temperatura nula:
3πx − 9π22 kt
u1 (x, t) = sen e L
L
πx − π22 kt
u2 (x, t) = 4.5 sen e L .
L
Y como la ecuación y las condiciones de borde que estamos considerando son lineales y
homogéneas, también
3πx − 9π22 kt πx − π22 kt
u3 (x, t) = sen e L + 4.5 sen e L
L L
es una solución.
¿Qué condición inicial satisfacen estas tres soluciones? Basta reemplazar t por cero
para ver que
3πx
u1 (x, 0) = sen
L
πx
u2 (x, 0) = 4.5 sen
L
3πx π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 próxima sección.

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
3πx
CI: u(x, 0) = 4 sen .
L
nπ 2
La solución producto u(x, t) = B sen nπx L
e−( L ) kt satisface la condición inicial u(x, 0) =
B sen nπx
L
. Por lo tanto, eligiendo n = 3 y B = 4, se satisface la condición inicial, y luego
la solución es
3πx −( 3π 2
u(x, t) = 4 sen e L ) kt .
L
Se puede demostrar que este problema fı́sico tiene una única solución, por lo que no
importa el método utilizado para resolverlo. Siempre obtendrı́amos la misma.

128
Principio de superposición. Las soluciones producto son soluciones muy particu-
lares, pues sólo sirven cuando la condición inicial tiene la forma apropiada u(x, 0) =
B sen nπx
L
. Sin embargo, este tipo de soluciones es muy útil también en muchas otras
situaciones. Consideremos la misma EDP con las mismas condiciones de borde pero con
la condición inicial
3πx 8πx
u(x, 0) = 4 sen + 7 sen .
L L
La solución de este problema puede obtenerse sumando dos soluciones producto:
3πx −( 3π 2 8πx −( 8π 2
u(x, t) = 4 sen e L ) kt + 7 sen e L ) kt .
L L
Inmediatamente vemos esta función resuelve la EDP, las CB y también la CI.

Superposición (extendida). El principio de superposición puede extenderse para


mostrar que si u1 , u2 ,. . . ,uM son soluciones de un problema lineal homogéneo, enton-
ces cualquier combinación lineal de ellas:
M
X
c1 u1 + c2 u2 + · · · + cM uM = cn u n
n=1

es también una solución. Como sabemos del método de separación de variables que la
nπ 2
función sen nπx e−( L ) kt es solución de la ecuación del calor para todo entero n positivo,
L
entonces cualquier combinación lineal de estas soluciones es también solución de la misma
ecuación del calor con las mismas condiciones de borde homogéneas. Por lo tanto
M
nπx −( nπ 2
e L ) kt
X
u(x, t) = Bn sen (7.37)
n=1
L

es solución de la ecuación 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 nπx
u(x, 0) = Bn sen .
n=1
L

Por lo que podemos resolver la ecuación del calor para cualquier condición inicial de la
forma
M
X nπx
u(x, 0) = f (x) = Bn sen .
n=1
L
¿Qué hacemos si tenemos que resolver la ecuación del calor con un dato inicial f (x) que
no es de esta forma? La teorı́a de las series de Fourier dice que:

1. Cualquier función f (x) (con algunas restricciones razonables) puede ser aproximada
(en algún sentido) por combinaciones lineales de sen nπx
L
.

129
2. La aproximación tal vez no será buena para M pequeño, pero mejora a medida que
M crece.

3. Más aún, si consideramos el lı́mite cuando M → ∞, entonces la serie infinita converge


a f (x).

Afirmamos entonces que cualquier dato inicial f (x) se puede escribir como una com-
binación lineal infinita de sen nπx
L
, conocida como serie de Fourier:

X nπx
f (x) = Bn sen . (7.38)
n=1
L

Lo que es más importante es que la serie infinita correspondiente



nπx −( nπ 2
e L ) kt
X
u(x, t) = Bn sen (7.39)
n=1
L

es solución de nuestra ecuación del calor.

7.2.6. Cálculo de los coeficientes Bn


La solución (7.39) es la solución que buscamos siempre que los coeficientes Bn satis-
fagan (7.38). Pero si tenemos un dato inicial f (x), ¿cómo determinamos los coeficientes
de Fourier Bn para que esta hipótesis se cumpla? Dada la función f (x), los coeficientes
Bn son incógnitas de un sistema de infinitas ecuaciones (para cada x en el dominio te-
nemos una ecuación). La técnica para resolver este problema está basada en la siguiente
propiedad de las funciones trigonométricas:
Z L (
nπx mπx 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(3πx) sen(5πx) dx = 0, sen2 (3πx) dx = ,
0 0 2

y para L = 2, valen las siguientes


Z 2 Z 1
16πx 4πx 8πx 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 nπx
f (x) = Bn sen ,
n=1
L

130
multipliquemos ambos lados por sen mπx
L
para un m fijo independiente de n. Obtenemos

mπx X nπx mπx
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
mπx X nπx mπx
f (x) sen dx = Bn sen sen dx.
0 L n=1 0 L L

Ahora bien, ¿a qué equivale cada término de la suma infinita del lado derecho? Recor-
demos que m está fijo (por ejemplo, supongamos m = 23), y que queremos evaluar las
integrales para cada n desde 1 hasta ∞. Entonces el primer término es
Z L (
1πx mπx 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 términos son cero
excepto uno: el que está en la posición m. Por lo tanto
Z L
mπx L
f (x) sen dx = Bm .
0 L 2
En consecuencia Z L
2 mπx
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
fórmula para calcular los coeficientes de Fourier de f (x).

7.2.7. Resumen
Resumamos el método de separación de variables para el ejemplo

∂u ∂ 2u
EDP: =k 2 t ≥ 0, 0≤x≤L
∂t ∂x
CB1: u(0, t) = 0 t≥0
CB2: u(L, t) = 0 t≥0
CI: u(x, 0) = f (x) 0 ≤ x ≤ L.

1. Asegurarse de tener una EDP lineal y homogénea con condiciones de borde homogéneas.

2. Temporalmente ignorar la condición inicial CI.

3. Separar variables (determinar las ecuaciones diferenciales ordinarias que aparecen al


buscar soluciones producto) e introducir una constante de separación.

131
4. Determinar las constantes de separación 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 método.

6. Aplicar el principio de superposición (para una combinación lineal de todas las solu-
ciones producto)

7. Intentar satisfacer la condición inicial.

8. Determinar los coeficientes utilizando alguna relación integral entre las autofunciones.

Estos pasos deben ser comprendidos, no memorizados. Es importante notar


que

1. El principio de superposición se aplica a soluciones de la ecuación en derivadas par-


ciales (no sumar soluciones de varias ecuaciones diferenciales ordinarias).

2. No aplicar la condición inicial u(x, 0) = f (x) hasta después de haber utilizado el


principio de superposición.

7.3. Más Ejemplos para la Ecuación del Calor


(Otros Problemas a Valores en el Borde)
7.3.1. Conducción del Calor en una Barra con Bordes Aislados
Trabajemos en detalle la resolución (y su interpretación) del siguiente problema defi-
nido para 0 ≤ x ≤ L y t ≥ 0:

∂u ∂ 2u
EDP: =k 2 t ≥ 0, 0≤x≤L
∂t ∂x
∂u
CB1: (0, t) = 0 t≥0
∂x
∂u
CB2: (L, t) = 0 t≥0
∂x
CI: u(x, 0) = f (x) 0 ≤ x ≤ L.

Como repaso, mencionamos que es un problema de conducción del calor en una barra
unidimensional con propiedades térmicas constantes y sin fuentes. El problema es muy
similar al tratado en la Sección 7.2, la única diferencia reside en las condiciones de borde.
Aquı́ los bordes se encuentran aislados, mientras que en la Sección 7.2 los bordes estaban
mantenidos a temperatura 0o . Tanto la ecuación en derivadas parciales como las condi-
ciones de borde son lineales y homogéneas, por lo que podemos utilizar el método de
separación de variables.
Busquemos entonces todas las soluciones producto posibles, es decir, proponemos

u(x, t) = φ(x)G(t).

132
Si ésta fuera una solución, entonces deberı́a cumplirse que
dG d2 φ
= −λkG = −λφ,
dt dx2
donde λ es la constante de separación. 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 solución no sea la trivial, será necesario que (0) = 0 y (L) = 0. La
dx dx
constante de separación λ 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 solución no-trivial. Aunque la ecuación diferencial ordinaria es la misma que la del
caso ya analizado, las condiciones de borde son diferentes. Dada esta diferencia, debemos
repetir el cálculo de los autovalores y autofunciones. Nuevamente debemos considerar tres
casos: λ > 0, λ = 0, λ < 0.
Analicemos primero el caso λ > 0: la solución 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 condición 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

condición 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π, ó bien  nπ 2
λ= , n = 1, 2, 3, . . . .
L
Las autofunciones correspondientes son esta vez cosenos
nπx
φ(x) = c1 cos , n = 1, 2, 3 . . . .
L
Ahora bien, para cualquier valor de λ, las soluciones G(t) de la ecuación diferencial
dG
ordinaria = −λkG son las funciones de la forma
dt
G(t) = ce−λkt .

133
En consecuencia, las soluciones producto (para λ > 0) de la ecuación en derivadas par-
ciales son
nπx −( 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.


La derivada de φ es la función constante (x) = c2 , por lo que las dos condiciones de
dx
borde dan la misma condición c2 = 0. Por lo tanto, sı́ existen soluciones no triviales para
λ = 0. La autofunción corresondiente al autovalor λ = 0 es cualquier función constante

φ(x) = c1 .

La parte dependiente del tiempo G(t) también es constante, pues para λ = 0, la función
e−λkt ≡ e0 ≡ 1. Por lo tanto, otra solución producto de la ecuación del calor con bordes
aislados es
u(x, t) = A
para cualquier constante A.

Podemos analizar el caso λ < 0 desde un punto de vista fı́sico. Si hubiera algún
autovalor negativo, esto significarı́a que habrı́a alguna solución (no trivial) de la ecuación
de la forma u(x, t) = φ(x)e−λkt . Si λ < 0 entonces −λk > 0 y esta solución crece
exponencialmente a medida que pasa el tiempo. Pero esto es fı́sicamente imposible si los
bordes están aislados y no hay fuentes de calor (ambas hipótesis se cumplen en nuestro
caso). La contradicción provino de suponer la existencia de autovalores λ < 0. Concluimos
entonces que no hay autovalores negativos. En el ejercicio 7.3.4 se pide la demostración
matemática de que no hay autovalores negativos.

Conclusión: Las soluciones producto de la ecuación del calor en una barra


unidimensional de longitud L con bordes aislados son
nπx −( nπ 2
un (x, t) = An cos e L ) kt , n = 1, 2, . . . ,
L
y u0 (x, t) = A0 .

Las recién mencionadas son las soluciones producto de la ecuación diferencial que tam-
bién satisfacen las condiciones de borde, pero no satisfacen necesariamente la condición
inicial. Para satisfacer la condición inicial utilizamos el principio de superposición. Toma-
mos como solución general una combinación lineal de todas las soluciones producto que
hemos encontrado. Es decir

nπx −( nπ 2
e L ) kt .
X
u(x, t) = A0 + An cos (7.43)
n=1
L

134
Es interesante notar que esta solución también se puede escribı́r ası́:

nπx −( 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 condición inicial u(x, 0) = f (x) se satisface si

X nπx
f (x) = A0 + An cos , (7.44)
n=1
L

para 0 ≤ x ≤ L. Para lograr esta igualdad también utilizaremos la teorı́a de series de


Fourier. En el caso anterior debı́amos representar f (x) como una serie de senos, en este
caso, tenemos una serie de cosenos más el término constante. Esta diferencia de términos
de la serie se debe a la diferencia en las condiciones de borde. La pregunta que resta
responder es cómo se determinan los coeficientes A0 y An (n ≥ 1). Afortunadamente, se
sabe que las funciones cos nπx
L
satisfacen la siguiente relación integral:

Z L
nπx mπx 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 función constante 1 que multiplica A0 . Similarmente a como hacı́amos con la serie de
senos, podemos multiplicar ahora la condición inicial (7.44) por cos mπx
L
e integrar entre
0 y L para obtener
Z L ∞ Z L
mπx X nπx mπx
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
mπx mπx 2
f (x) cos dx = Am cos dx.
0 L 0 L
Z L
mπx 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
mπx
Am = f (x) cos dx, m = 1, 2, 3 . . . .
L 0 L
Las dos fórmulas 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 solución 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
lı́m u(x, t) = A0 = f (x) dx.
t→∞ L 0
No sólo la distribución de temperatura estacionaria es constante, A0 , sino que recono-
cemos la constante como el promedio de la distribución inicial de temperatura. Esto
coincide con las conclusiones que habı́amos obtenido al estudiar soluciones estacionarias
en la Sección 6.4.

7.3.2. Conducción 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 sección 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 serán más 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 2πr, el radio es r = = .
2π π
Si el alambre es suficientemente delgado, es razonable suponer que la temperatura es
constante en cada sección transversal del alambre curvo. En esta situación la temperatura
del alambre debe satisfacer una ecuación 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 térmicas constantes y no hay
fuentes de calor. Es conveniente para simplificar algunos cálculos, suponer que la longitud
de arco x varı́a de −L a L (en lugar de variar de 0 a 2L).
Supongamos que el alambre está perfectamente conectado a sı́ mismo en los extremos
(x = −L a x = L). Allı́ deberı́an cumplirse las condiciones de contacto térmico perfecto:
La temperatura u(x, t) deberı́a ser continua
u(−L, t) = u(L, t). (7.47)

136
También el flujo de calor deberı́a ser continuo, y como la conductividad térmica 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 ecuación en derivadas parciales son entonces (7.47)
y (7.48). La condición inicial es una función dada

u(x, 0) = f (x). (7.49)

El problema matemático consiste luego de la EDP lineal homogénea (7.46), con condicio-
nes de borde lineales y homogéneas (7.47) y (7.48). Es por lo tanto plausible la utilización
del método de separación de variables.
Proponemos una solución 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 función φ debe satisfacer
dφ dφ
φ(−L) = φ(L) y (−L) = (L). La constante de separación λ 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 solución no-trivial. Las condiciones de borde con que nos encontramos se denominan
comúnmente condiciones de borde periódicas porque aunque el problema se piensa
definido en −L < x < L, se puede pensar que está definido periódicamente para todo
x ∈ R; la temperatura será periódica (x = x0 es el mismo punto fı́sico que x = x0 + 2L,
y por lo tanto tendrá la misma temperatura). Si λ > 0, la solución general del problema
para φ es √ √
φ(x) = c1 cos λx + c2 sen λx.
La condición de borde φ(−L) = φ(L) implica que
√ √ √ √
c1 cos λ(−L) + c2 sen λ(−L) = c1 cos λL + c2 sen λL
√ √
Como
√ el coseno es una
√ función 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 ésta igualdad es válida si y sólo si



c2 sen λL = 0. (7.50)

Antes de resolver esta ecuación, analicemos la segunda condición 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 trigonométricas (que el coseno es


dφ dφ
par y el seno impar) obtenemos que (−L) = (L) si y sólo si
dx dx
√ √
c1 λ sen λL = 0. (7.51)

Ahora veamos qué 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 solución 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 nπx L
y cos nπx
L
son autofunciones correspondientes al
autovalor λ = (nπ/L)2 ,
nπx nπx
φ(x) = cos , sen , n = 1, 2, 3 . . . .
L L
En realidad, cualquier combinación lineal de estas funciones (para el mismo n) es una
autofunción del autovalor λ = (nπ/L)2 . Pero debe entenderse siempre que las dos son
autofunciones independientes. En conclusión, tenemos dos familias infinitas de soluciones
producto de la ecuación diferencial:
nπx −( nπ 2 nπx −( 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 solución general es φ(x) = c1 + c2 x. La condición
φ(−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φ
condición de borde (0) = (L) se cumple automáticamente. Vemos entonces que
dx dx
φ(x) = c1 ,
cualquier constante, es una autofunción correspondiente al autovalor λ = 0. Las solucio-
nes producto también son constantes en este caso pues e0 = 1. Notemos que para λ = 0
hay sólo una autofunción linealmente independiente (todas las otras se obtienen mul-
tiplicándola por una constante). En cambio para cada autovalor positivo λ = (nπ/L)2
hay dos autofunciones linealmente independientes, sen nπx
L
y cos nπx
L
. Nuevamente, no hay
ningún autovalor λ < 0 (¿por qué?).

138
Conclusión: Las soluciones producto para la conducción del calor en un
alambre circular de longitud 2L son:
nπx −( nπ 2
uan (x, t) = an cos e L ) kt n = 1, 2, . . . ,
L
nπx −( 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 condición inicial es necesario aplicar el principio de


superposición. La solución más general que se obtiene por el método de separación de
variables consiste de una combinación lineal arbitraria de las soluciones producto:
∞ ∞
nπx −( nπ )
2 nπx −( 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 solución producto correspondiente a λ = 0, mientras que dos


familias de coeficientes arbitrarios an y bn son necesarios para las soluciones producto
correspondientes a λ > 0. La condición inicial u(x, 0) = f (x) se satisface si
∞ ∞ ∞ ∞
X nπx X nπx X nπx X nπx
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 función f (x) es una combinación lineal de senos y de cosenos. Otra diferencia
crucial es que (7.53) es válida para −L ≤ x ≤ L, mientras que para las series de senos o
de cosenos de los ejemplos anteriores era válida 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 simétrico
respecto al origen):

Z L 0
 si n 6= m
nπx mπx
cos cos dx = L si n = m 6= 0
−L L L 
2L si n = m = 0

(
Z L
nπx mπx 0 si n 6= m (7.54)
sen sen dx =
−L L L L si n = m 6= 0
Z L
nπx mπx
y sen cos dx = 0 (siempre),
−L L L

donde n y m son enteros no negativos arbitrarios. La autofunción constante corresponde


a n = 0 ó m = 0. La última de estas integrales es particularmente simple de derivar,
pues el seno es una función impar y el coseno es par, entonces el producto es una función
impar y la integral en un intervalo simétrico 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 mπx
L
y/o por sen mπx
L
(hacemos las dos cuentas a la vez) y luego inte-
gramos de x = −L a x = L, obtenemos
 mπx   mπx 
cos L  cos
   
Z L ∞ Z L
L 
 
 X nπx 
f (x) dx = an cos dx
−L  mπx  n=0 −L L  mπx 
sen
 
 sen
 

L L
 mπx 
∞ Z L cos
 
L 

X nπx 
+ bn sen . dx.
n=1 −L L  mπx 
sen
 

L
Ahora utilizamos las propiedades integrales (7.54) y obtenemos
Z L Z L
mπx mπx 2
f (x) cos dx = am cos dx
−L L −L L
Z L Z L
mπx mπx 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
mπx
am = f (x) cos dx
L −L L
1 L
Z
mπx
bm = f (x) sen dx
L −L L
donde las dos últimas fórmulas valen para m = 1, 2, 3, . . . .

7.4. Ecuación de Laplace: Resolución y Propiedades


Cualitativas
7.4.1. Ecuación de Laplace en un Rectángulo
Para obtener un poco más de práctica en el método de separación de variables, con-
sideraremos un problema diferente: la conducción del calor en estado estacionario en una
región bidimensional. Más especı́ficamente, buscaremos la temperatura en estado de equi-
librio en un rectángulo (0 ≤ x ≤ L, 0 ≤ y ≤ H) cuando la temperatura está prescripta en
la frontera (borde) del rectángulo. La distribución de temperatura en equilibrio u(x, y)
satisface la ecuación 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) 0≤y≤H
CB2: u(L, y) = g2 (y) 0≤y≤H
CB3: u(x, 0) = f1 (x) 0≤x≤L
CB4: u(x, H) = f2 (x) 0≤x≤L
donde g1 (y), g2 (y), f1 (x) y f2 (x) son funciones dadas. Otras condiciones de borde serán
presentadas en los ejercicios. En este caso, la EDP es lineal y homogénea pero las condi-
ciones de borde, aunque lineales, no son homogéneas. No podremos aplicar el método de
separación de variables a este problema tal como está. La razón de esto es que al separar
variables, el problema a valores de borde que determina las constantes de separación po-
sibles o autovalores debe tener condiciones de borde homogéneas. En este ejemplo, todas
las condiciones de borde son no-homogéneas.
Podemos superar esta dificultad dándonos cuenta de que el problema original es no-
homogéneo debido a las cuatro condiciones de borde no-homogéneas. Utilizaremos el
principio de superposición para desglosar nuestro problema en cuatro subproblemas, cada
uno de los cuales tiene sólo una condición no-homogénea. 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 ecuación de Laplace con
una condición de borde no-homogénea y las otras tres condiciones de borde homogéneas,
como se muestra en la Figura 7.2.

Figura 7.2: Ecuación de Laplace dentro de un rectángulo

El método para hallar cualquiera de las ui (x, y) es el mismo; sólo algunos detalles
difieren. Haremos la resolución para encontrar u4 (x, y), y dejaremos los otros casos para

141
los ejercicios:

∂ 2 u4 ∂ 2 u4
EDP: + =0 0 ≤ x ≤ L, 0≤y≤H
∂x2 ∂y 2
CB1: u4 (0, y) = g1 (y) 0≤y≤H
CB2: u4 (L, y) = 0 0≤y≤H
CB3: u4 (x, 0) = 0 0≤x≤L
CB4: u4 (x, H) = 0 0 ≤ x ≤ L.

Nos proponemos resolver este problema por el método de separación de variables. Comen-
zamos ignorando la condición no-homogénea u4 (0, y) = g1 (y). Eventualmente sumaremos
soluciones producto para obtener esta condición, pero por ahora la ignoraremos. Busca-
mos soluciones producto
u4 (x, y) = h(x)φ(y),
que satisfagan las condiciones de borde homogéneas CB2, CB3 y CB4. Éstas nos dicen
que
h(L) = 0, φ(0) = 0, φ(H) = 0.
Luego, la parte de la solución dependiente de y, φ(y) tiene dos condiciones de borde
homogéneas, mientras que la parte dependiente de x sólo tiene una. Si sustituimos la
solución producto en la ecuación 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 sólo función de la variable x, mientras que el lado derecho depende
sólo de y. Por lo tanto, ambos deben ser iguales a una constante de separación. ¿Qué
usamos? ¿λ ó −λ? Una de ellas es más conveniente. Si la constante de separación fuera
negativa (como lo era antes), la ecuación (7.55) implicarı́a que h(x) oscila (trigonométri-
ca) y φ(y) es una combinación de exponenciales. Pero las condiciones de borde para φ(y)
indican que este caso no es posible. Por otro lado, si la constante de separación fuera po-
sitiva, (7.55) implicarı́a que h(x) es combinación de exponenciales y φ(y) es combinación
de senos y cosenos. Esto parece más razonable dadas las condiciones de borde y entonces
introducimos la variable de separación λ (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 homogéneas:

h00 (x) = λh(x) h(L) = 0.

En cambio, el problema dependiente de la variable y sı́ lo es y será 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 única 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.
Más aún, la condición φ(H) = 0 implica que
 nπ 2 nπy
λ= , φ(y) = sen , n = 1, 2, 3, . . . .
H H
Para obtener soluciones producto, debemos ahora resolver la EDO para h(x) con la con-
dición de borde homogénea correspondiente y con λ un autovalor de los ya encontrados.
Como λ = (nπ/H)2 , la ecuación resulta
 nπ 2
00
h (x) = h(x). (7.56)
H
La solución general es una combinación lineal de exponenciales, que también puede ex-
presarse como una combinación lineal de funciones hiperbólicas. Podrı́amos utilizar cual-
quiera de estas dos expresiones de la solución general, pero ninguna de estas es la más
apropiada para la condición de borde h(L) = 0. Podemos encontrar la solución que bus-
camos de un modo más rápido 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 solución general también
puede escribirse como

nπ(x − L) nπ(x − L)
h(x) = a1 cosh + a2 senh .
H H
Resulta natural preguntarse ahora por qué es más conveniente esta expresión de la solu-
ción general. Bien, si queremos forzar la condición 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π(x−L)


H
, una expresión sencilla de la solución.
Las soluciones producto resultan entonces

nπy nπ(x − L)
u4 (x, y) = A sen senh , n = 1, 2, . . . .
H H
143
Ahora queremos encontrar una solución más general, para lo cual utilizamos el prin-
cipio de superposición, obteniendo

X nπy nπ(x − L)
u4 (x, y) = An sen senh .
n=1
H H

Una vez que tenemos esta solución general, imponemos la condición de borde no-homogénea
u4 (0, y) = g1 (y):

X nπy 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 tenı́amos 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 nπy
Bn sen = g1 (y).
n=1
H
Luego, por lo que ya hemos visto en secciones anteriores

2 H
Z
nπy
Bn = g1 (y) sen dy,
H 0 H
y despejando An obtenemos
Z H
Bn 2 nπy
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 está bien definido para todo
n.
Por lo tanto, la solución u4 (x, y) es la serie

X nπy nπ(x − L)
u4 (x, y) = An sen senh .
n=1
H H

con sus coeficientes An dados por


Z H
2 nπy
An = nπ(−L)
g1 (y) sen dy.
H senh 0 H
H

7.4.2. Ecuación de Laplace en un Disco


Supongamos que se tiene un disco de radio a (con propiedades térmicas 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 distribución de temperatura u en estado de equilibrio. La temperatura

144
Figura 7.3: Ecuación de Lapla-
ce dentro de un disco

satisface la ecuación de Laplace ∇2 u = 0. La geometrı́a (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 distribución de temperatura es una función dada de la variable
θ, u(R, θ) = f (θ).
Para intentar resolver este problema es necesario primero encontrar una expresión 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) = tg−1 (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
Análogamente
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), derivándolas y haciendo algo de
aritmética 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<r≤R −π ≤θ ≤π
∂r2 r ∂r r2 ∂θ2
CB: u(R, θ) = f (θ), −π ≤ θ ≤ π.

A primera vista parecerı́a que no podemos utilizar el método de separación de variables


porque no tenemos ninguna condición de borde homogénea. Sin embargo, el utilizar coor-
denadas polares requiere una discusión acerca del método de separación de variables que
nos ayudará a comprenderlo un poco mejor. Si resolvemos la ecuación de Laplace en un
rectángulo, entonces se necesitan condiciones en los extremos de definición de las varia-
bles, x = 0, x = L, y = 0, y = H. Estos extremos coinciden con los bordes fı́sicos de la
placa rectangular que se considera. Por otro lado, para coordenadas polares, 0 ≤ r ≤ a,
−π ≤ θ ≤ π. Matemáticamente, se necesitan dos condiciones en los extremos r = 0,
r = a, y θ = −π, θ = π. La única condición que corresponde a una frontera fı́sica es en
r = a. Por lo tanto todavı́a nos hace falta determinar condiciones de borde en r = 0 y en
θ = ±π. Para hallarlas utilizaremos consideraciones del problema fı́sico. Las coordenadas
polares son singulares en r = 0; por razones fı́sicas, pediremos que la temperatura sea
finita, o acotada allı́:

acotación de la temperatura en el origen |u(0, θ)| < ∞.

Aún nos falta definir condiciones en θ = ±π. Esto es similar a lo que ocurre en la
situación 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 dirección de θ también
sea continuo, implica las siguientes condiciones de borde:

∂u ∂u
u(r, −π) = u(r, π) (r, −π) = (r, π).
∂θ ∂θ
Estas condiciones de borde se conocen como condiciones periódicas. Notamos que estas
condiciones “de borde” son también lineales y homogéneas. De este modo, el problema
luce similar a la ecuación de Laplace en un rectángulo: Hay cuatro condiciones, de las
cuales sólo una es no-homogénea: u(a, θ) = f (θ). Aplicaremos entonces el método de
separación de variables.
Buscaremos soluciones producto

u(r, θ) = φ(θ)G(r),

que satisfagan la EDP y las tres condiciones de borde homogéneas (nuevamente ignoramos
momentáneamente la condición no-homogénea). Las condiciones periódicas implican

φ(−π) = φ(π) φ0 (−π) = φ0 (π).

Si la función 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 separación como λ (en lugar de −λ) porque hay dos
condiciones homogéneas para la función φ de la variable θ. El problema que determinará
los autovalores λ es

φ00 (θ) = −λφ(θ), φ(−π) = φ(π), φ0 (−π) = φ0 (π).

Los autovalores λ se determinan del modo usual. En efecto, este es uno de los problemas
estándar 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 también considerarse pues da la función constante.


El problema dependiente de la variable r es entonces

r2 G00 (r) + rG0 (r) = n2 G(r)


r2 G00 (r) + rG0 (r) − n2 G(r) = 0. (7.57)
La ecuación (7.57) es lineal y homogénea pero tiene coeficientes no-constantes. Sin
embargo se puede resolver fácilmente. La forma más sencilla de resolver esta ecuación,
es dándose cuenta de que para el operador diferencial en (7.57) la función G(r) = rp se
reproduce a sı́ misma. Esto quiere decir que si reemplazamos rp en el lugar de G(r) en la
ecuación (7.57) obtenemos un múltiplo de rp . En efecto

d2 p d
r2 (r ) + r (rp ) − n2 rp = r2 p (p − 1) rp−2 + r p rp−1 − 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 última expresión es igual a cero cuando p = n ó p = −n. Si n 6= 0 estas raı́ces son
distintas y las funciones rn y r−n son linealmente independientes, por lo que la solución
general resulta
G(r) = c1 rn + c2 r−n .

147
El caso n = 0 es diferente, e igualmente importante porque λ = 0 también es un autovalor.
Si n = 0 la ecuación (7.57) resulta
r2 G00 (r) + rG0 (r) = 0
que es equivalente a
rG00 (r) + G0 (r) = 0
y también 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 condición en r = 0 y hemos dicho que requeriremos |u(0, θ)| <
∞, lo que implica para la solución 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 solución general de
la parte dependiente de r es
G(r) = c1 rn , n ≥ 0,
donde para n = 0 esta expresión se reduce a la constante c1 .
Concluyendo, las soluciones producto que satisfacen las condiciones homogéneas son
rn cos nθ (n ≥ 1) y rn sen nθ (n ≥ 0).
Por el principio de superposición, la solución general de la ecuación de Laplace en el
cı́rculo es ∞ ∞
X X
n
u(r, θ) = A0 + An r cos nθ + Bn rn sen nθ.
n=1 n=1

Para resolver la condición de borde no-homogénea 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 Sección 7.3.2. La única 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 fórmulas integrales de esa sección, obtenemos
Z π
1
A0 = f (θ) dθ
2π −π
Z π
1
An an = f (θ) cos nθ dθ, n≥1
π −π
1 π
Z
n
Bn a = f (θ) sen nθ dθ, n ≥ 1.
π −π

148
Como an 6= 0, la solución de la ecuación 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 están dados por


Z π
1
A0 = f (θ) dθ
2π −π
Z π
1
An = n f (θ) cos nθ dθ, n≥1
πa −π
Z π
1
Bn = n f (θ) sen nθ dθ, n ≥ 1.
πa −π

7.4.3. Propiedades Cualitativas de la Ecuación de Laplace


A menudo, el método de separación de variables no resulta apropiado. Si se desea
información cuantitativa acerca de la solución, suelen ser necesarios y mucho más eficien-
tes los métodos numéricos (veremos alguno más adelante). Sin embargo, el método de
separación de variables sirve para determinar propiedades cualitativas de las soluciones
de gran interés práctico. En esta sección describiremos brevemente algunas propiedades
cualitativas que se pueden derivar para la ecuación de Laplace a partir de su solución por
el método de separación de variables.

Teorema del Valor Medio. La solución obtenida de la ecuación de Laplace dentro


de un cı́rculo por el método de separación 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


cı́rculo. Esta propiedad se conoce como propiedad del valor medio para la ecuación de
Laplace. Se cumple en general en el siguiente sentido. Supongamos que u es solución de la
ecuación de Laplace en una región arbitraria R (ver Figura 7.4). Consideremos cualquier
punto P dentro de R, y un cı́rculo de radio r0 (con r0 suficientemente chico para que el
cı́rculo esté contenido en R). Llamemos f (θ) a la temperatura u en el borde del disco.
Nuestro análisis previo sigue cumpliéndose en este disco, y luego la temperatura en el
punto P es el promedio de la temperatura f (θ) en el borde del cı́rculo. Por lo tanto,
recordando que la solución de Laplace corresponde al estado de equilibrio o estacionario
para la ecuación 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 cı́rculo (contenido
en R) centrado en ese mismo punto.

149
Figura 7.4: Cı́rculo dentro de
una región general

Principio del Máximo. Podemos utilizar este último resultado para probar el princi-
pio del máximo para la ecuación de Laplace: en estado de equilibrio la temperatura
no puede tener un máximo en el interior (a menos que la temperatura sea constante
en toda la región considerada). La demostración se realiza por contradicción. Sea u la
solución de la ecuación de Laplace en una región 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 máximo en P . Es decir:

en estado de equilibrio, la temperatura no puede tener un máximo en ningún punto


interior al dominio.

Esto no deberı́a sorprendernos demasiado. Razonemos desde el punto de vista de la


Fı́sica, recordando que la ecuación de Laplace corresponde al estado estacionario de la
ecuación del calor sin fuentes: Si la temperatura fuera máxima en el punto P , luego la
concentración de energı́a calórica se difundirı́a y la temperatura disminuirı́a en P con el
paso del tiempo, por lo que no estarı́amos frente a un estado de equilibrio o estacionario.
Del mismo modo puede probarse que la temperatura tampoco puede tener un mı́nimo
en el interior de la región. Concluimos entonces que:

en estado de equilibrio, las temperaturas máximas y mı́nimas se dan en el borde del


dominio.

Buen Planteo del Problema de Laplace. El principio del máximo es una herramien-
ta muy importante para el análisis de ecuaciones en derivadas parciales, especialmente al
establecer propiedades cualitativas. Observemos la siguiente definición:

150
Se dice que un problema está bien planteado si existe una única solución que
depende en forma continua de los datos no-homogéneos.

Es decir, un problema estará bien planteado si la solución cambia poco cuando los datos
(valor de borde) cambian poco. Este es un concepto importante en problemas de la Fı́si-
ca. Si la solución cambiara dramáticamente con pequeños cambios en los datos, entonces
cualquier medición fı́sica deberı́a ser exacta para que la solución 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 mayorı́a de los problemas en ecuaciones en
derivadas parciales están bien planteados.
El principio del máximo puede utilizarse para demostrar que la ecuación de Laplace
2
∇ u = 0 está bien planteada. Supongamos que u y v son dos soluciones de la ecuación
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 máximo (y del mı́nimo) para la ecuación de Laplace implica que el máximo
(y el mı́nimo) de w ocurre en el borde del dominio. Luego, en cualquier punto x interior
se tiene que
mı́n (f (y) − g(y)) ≤ w(x) = u(x) − v(x) ≤ máx (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


solución de la ecuación de Laplace varı́a levemente cuando los datos del borde varı́an
levemente.
Un ejemplo práctico: supongamos que f es el valor medido de la temperatura en el
borde de una región y g es el valor real o exacto (f es una aproximación de g). Sea ahora u
la solución de la ecuación de Laplace con dato f en el borde. Si v denota la temperatura
real en la región, entonces v es la solución de la ecuación de Laplace con dato g en
el borde. Pregunta: ¿Cuán bien aproxima u (solución calculada) a v (temperatura real
desconocida)? Respuesta: tan bien como f aproxime a g.

Condición de Compatibilidad para la Existencia de Soluciones. Podrı́a pre-


sentársenos el caso de querer resolver la ecuación 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 dimensión) que si se prescribe el flujo
podrı́a no existir solución estacionaria. Veamos que si se prescribe el flujo en la frontera,
éste debe satisfacer una condición necesaria para que exista solución: Supongamos que
u es solución de la ecuación de Laplace en una región bidimensional R. Luego ∇2 u = 0
sobre toda esta región, 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 solución de la ecuación de Laplace (ecuación del calor esta-
cionaria), el flujo de calor neto a través de la frontera debe ser cero. Esto también está
claro desde el punto de vista fı́sico, puesto que en caso contrario habrı́a cambio (en el
tiempo) de la energı́a térmica total dentro de la región, violando la condición de estado
estacionario. La condición (7.58) se denomina condición de compatibilidad para la
ecuación de Laplace.

7.5. Ejercicios
7.1. Consideremos la ecuación
∂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
9πx 3πx
(a) u(x, 0) = 6 sen (c) u(x, 0) = 2 cos
L ( L
πx 3πx 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, sólo 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 ecuación 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 expresión para la temperatura en el punto medio de la barra en función de
t. ¿Para qué valor de t la temperatura en el punto medio es igual a 50?
7.3. Consideremos la ecuación 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

(a) φ(0) = 0 y φ(π) = 0 (d) φ(0) = 0 y (L) = 0
dx

(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 ecuación 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 condición inicial siguiente:
3πx πx
(a) u(x, 0) = 6 + 4 cos (c) u(x, 0) = −2 sen
L ( L
8πx 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 ecuación 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) ¿Cuál es el lı́mite cuando t → ∞ de la solución u(x, t) en los extremos de la barra?

(b) Considerar ahora el caso particular

f (x) = 100 − 10 cos(2πx).

Dar una expresión para la temperatura en el punto medio de la barra en función de


t.
¿Para qué 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 ecuación de Laplace dentro de un rectángulo 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 solución de la ecuación de Laplace dentro del rectángulo
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 condición que debe cumplir f para que este
problema tenga solución.

(b) Resolver el problema por el método de separación de variables. Notar que queda una
constante sin determinar, es decir que puede tomar cualquier valor.
7.9. Resolver la ecuación de Laplace fuera de un cı́rculo de radio a con la siguiente
condición 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 ecuación de Laplace dentro de un cuarto de cı́rculo 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 ecuación de Laplace dentro de un semicı́rculo de radio a (0 ≤ r ≤ a,
0 ≤ θ ≤ π) con las siguientes condiciones de borde:

154
(a) u = 0 sobre el diámetro (parte recta) y u(a, θ) = g(θ)
(b) el diámetro está aislado y u(a, θ) = g(θ).
7.12. Resolver la ecuación 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 ecuación 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 región 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 solución (ayuda, es de variables separables en coordenadas polares r, θ).
(b) Determinar la curva sobre la que u = 50.
7.15. Consideremos la ecuación 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( 3πx ),

0 ≤ x ≤ 1.

2 2
(a) Halle la solución u(x, y).
(b) Dé una fórmula para la solución u sobre la lı́nea x = 0.2, (0 ≤ y ≤ 1). Grafı́quela en
la computadora.
(c) Determine el valor aproximado (5 dı́gitos) de y para el que u(0.2, y) = 15.
7.16. Consideremos la ecuación 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 3πx
u(x, 0) = 0, u(x, 1) = 30 sen( ) − 10 sen( ), 0 ≤ x ≤ 1.


2 2
(a) Diga cuál es la solución u(x, y).
(b) Dé una fórmula para la solución u sobre la lı́nea x = 0.9, (0 ≤ y ≤ 1). Grafı́quela en
la computadora.
(c) Determine el valor aproximado (5 dı́gitos) de y para el que u(0.9, y) = 30.

155
Capı́tulo 8

Diferencias Finitas

El método de diferencias finitas es un método numérico para calcular soluciones apro-


ximadas de ecuaciones diferenciales. La aproximación puede ser tan buena como se desee.
Pero para mayor aproximación hace falta más trabajo computacional. En este método
no se obtiene una fórmula analı́tica de la solución, 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 más generales y con términos
fuente también generales. También permite trabajar con coeficientes variables, aunque no
nos preocuparemos por eso en este curso.

8.1. Diferencias finitas en 1D


Consideraremos primero la ecuación 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 sólo ocurre en la dirección x.

8.1.1. Problema estacionario (Poisson)


Recordemos el problema de difusión en una dimensión
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 ecuación de Poisson
−kuxx = f, u = u(x), 0 ≤ x ≤ L.
En la siguiente sección vemos cómo 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 método de diferencias finitas consiste en reemplazar
derivadas por cocientes de diferencias.

dg g(x + h) − g(x)
Recordando que (x) = lı́m , la idea es tomar h pequeño y aproxi-
dx h→0 h
dg
mar dx (x) por g(x+h)−g(x)
h
, o alguna variante:
dg
Diferencia Fórmula Error: fórmula −
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 ecuación 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(x−h)
h
=
h
u(x + h) − 2u(x) + u(x − h)
=
h2
Para esta aproximación de la derivada segunda tenemos el siguiente resultado:

Proposición 55. Si u ∈ C 4 entonces

d2 u u(x + h) − 2u(x) + u(x − h)


2
(x) = + O(h2 ).
dx h2
Más precisamente, si M4 = máx[x−h,x+h] |uIV |, entonces
2
d u u(x + h) − 2u(x) + u(x − h) M4 2
dx2 (x) − ≤ 12 h . (8.2)

h2

Demostración. 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 algún 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 afirmación de la proposición.
En vista de esta proposición, si u es la solución 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 aproximación
en esta fórmula es O(h2 ).
L
Para obtener un método numérico, tomamos N ∈ N y h = , y definimos la partición
N
0 = x1 < x2 = h < x3 = 2h < . . . < xN = L − h < xN +1 = L.

Si observamos que xi − h = xi−1 , y que xi + h = xi+1 , resulta

u(xi + h) − 2u(xi ) + u(xi − h) u(xi+1 ) − 2u(xi ) + u(xi−1 )


−k 2
= −k ≈ f (xi )
h h2
para i = 2, 3, 4, . . . , L. Además, u(x1 ) = a y u(xN +1 ) = b. Resumiendo,

u(x1 ) = a,



u(xi+1 ) − 2u(xi ) + u(xi−1 )

−k ≈ f (xi ), i = 2, 3, . . . , N,


 h2
UN +1 = b.

La idea es entonces definir aproximaciones Ui ≈ u(xi ) que cumplan las fórmulas


anteriores con igualdad, es decir

 U1 = a,

Ui+1 − 2Ui + Ui−1

−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

−Ui−1 + 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 incógnitas 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 implementación 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 fórmula en diferen-
cias (8.2) es que
Teorema 56. Si la solución exacta u(x) de (8.1) es C 4 [0, L] entonces
1
máx |u(xi ) − Ui | ≤ CM4 h2 = CM4 L2 ,
i=1,2,...,N +1 N2
donde M4 = máx[0,L] |uIV | y C es una constante que depende de los parámetros k, L, de
la ecuación, pero es independiente de la función f (x), y de los datos de borde a, b y del
parámetro de discretización h (o N ).
Demostración. La demostración de este teorema queda fuera del alcance de este curso.
El lector interesado puede encontrarla en [Larsson-Thomée 2009, Ch. 4]
Observación 57. Cuando uno escribe un programa como el anterior para resolver un
problema, debe verificar que funcione bien. Para ello, se busca una solución exacta. Esto
parece difı́cil, pero es cuestión de elegir una u(x) cualquiera, que sea C 4 [0, L] aunque no
sea muy obvia, como lineal o cuadrática 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−(x−0.5) . Para que esta u sea
solución de (8.1), calculamos f = −kuxx :
2 2
ux (x) = 2x − 2(x − 0.5)e−(x−0.5) , uxx (x) = 2 − 2[1 − 2(x − 0.5)2 ]e−(x−0.5)
Luego, resolvemos el problema con
 
2 −(x−0.5)2
f (x) = −4 + 4[1 − 2(x − 0.5) ]e = −kuxx (x) con k = 2
 
2
a = e−0.5 = u(0)
 
2
b = 1 + e−0.5 = u(1) con L = 1
2
y deberı́amos obtener una solución aproximada a u(x) = x2 + e−(x−0.5) .
Para estar seguros que el código está bien programado, debemos verificar que cuando
tomamos h más pequeño, el error máximo 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 sección consideramos en el extremo derecho x = L una condición 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 sección anterior radica
en la derivada u0 (L) que aparece en la condición de borde.
Para no perder precisión en el método, 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 condición de borde se reemplaza entonces por la ecuación

UN +2 − UN
k + H1 UN +1 = H2 uE .
2h
Esta ecuación reemplaza a la ecuación UN +1 = b en el sistema del problema anterior.
Observamos que seguimos teniendo N +1 ecuaciones, pero ahora tenemos N +2 incógnitas,
por lo que nos falta una ecuación más. Lo que hacemos es considerar xN +1 = L como un
nodo interior : imponemos la ecuación diferencial −ku00 = f en x = xN +1 = L. Es decir,
agregamos al sistema la ecuación

−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 implementación 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-’)

También para este problema se tiene un resultado de estimación del error, cuya de-
mostración escapa al alcance de este curso:

Teorema 58. Si la solución exacta u(x) de (8.3) es C 4 [0, L] entonces


1
máx |u(xi ) − Ui | ≤ CM4 h2 = CM4 L2 ,
i=1,2,...,N +1 N2

donde M4 = máx[0,L] |uIV | y C es una constante que depende de los parámetros k, L, H1 ,


H2 de la ecuación, pero es independiente de la función f (x), del dato uE y del parámetro
de discretización h.

8.1.2. Difusión no estacionaria


Consideremos ahora el problema de difusión 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 = j∆t, donde ∆t es el parámetro de discretización temporal.

Método explı́cito
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 = xi±1 , tj +∆t = tj+1 , tenemos
que
u(xi , tj+1 ) − u(xi , tj ) u(xi−1 , 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 i−1 = fij ,
∆t h2

donde denotamos fij = f (xi , tj ). Observamos que solo hay un supra-ı́ndice j + 1 en la


fórmula anterior. Si despejamos el término Uij+1 que lo contiene obtenemos, llamando
λ = k∆t
h2
, la siguiente fórmula:

Uij+1 = ∆tfij + λUi−1


 j
+ (1 − 2λ)Uij + λUi+1
j

.

Esta fórmula será útil para calcular U en el interior de [0, L], para t > 0.
En t = 0 (j = 0) usaremos la condición inicial u(x, 0) = u0 (x), por lo que tomaremos
0
Ui = u0 (xi ), i = 1, 2, . . . , N + 1.
En x = 0 usaremos la condición de borde u(0, t) = a(t) por lo que tomaremos U1j =
a(tj ).
En x = L tenemos la condición de borde kux (L, t) + H1 u(L, t) = H2 uE (t). Aproxi-
mando ux (L, t) ≈ u(L+h,t)−u(L−h,t)
h
llegamos a la fórmula

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 fórmula, diseñamos el siguiente método numérico para la ecuación
de difusión (8.5): Sean N, M ∈ N y definamos h = L/N , ∆t = T /M , λ = k∆t/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 + λUi−1
 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 implementación para MATLAB/OCTAVE de este método de resolución:

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 método tiene una restricción para resultar estable. Si observamos el término que
multiplica Uij en la fórmula para Uij+1 vemos que es 1 − 2λ con λ = k∆t/h2 . Resulta que
si λ ≥ 1/2, de manera que 1 − 2λ ≤ 0 se observa un fenómeno de inestabilidad (verificarlo
con el código) que hace que las soluciones oscilen en cada paso de tiempo. Lo que ocurre
es que pequeños 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. Más aún, en el código que mostramos, elegimos λ y

165
2
luego ∆t se calcula para que λ = k∆t
h2
, es decir ∆t = λ hk .
También hay estimaciones del error, que resumimos en el siguiente Teorema.

Teorema 59. Si la solución 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 λ = k∆t/h2 < 1/2, resulta

máx |u(xi , tj ) − Uij | ≤ C(h2 + ∆t)M4,2 ,


i=1,2,...,N +1
j=1,2,...,M

donde M4,2 = máx[0,L]×[0,T ] |uxxxx |+|utt | y C es una constante que depende de los paráme-
tros k, L, H1 , H2 de la ecuación, pero es independiente de la función f (x, t), del dato
inicial u0 (x), de los datos de borde a(t), uE (t) y de los parámetro de discretización h, ∆t.

Método implı́cito
Cuando los coeficientes son variables, o cuando queremos resolver problemas en dos
o tres dimensiones espaciales, la condición de estabilidad puede ser más difı́cil de deter-
minar. En esta sección veremos un método que es incondicionalmente estable, es decir,
resulta estable sin importar la relación entre ∆t y h.
La diferencia principal con el método obtenido anteriormente está 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(xi−1 , 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 Ui−1 − 2Uij+1 + Ui+1
j+1
−k 2
= fij+1 .
∆t h
Si ahora despejamos las incógnitas con supra-ı́ndice j + 1 a la izquierda, nos queda
j+1
−λUi−1 + (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
Ui−1 y con Ui+1 . Por eso se dice que el método es implı́cito.
Por lo tanto, en cada paso de tiempo deberemos resolver un sistema de ecuaciones.
Esto es un poco más costoso computacionalmente que lo que se hace en el caso explı́cito,
pero se gana en estabilidad.

El método implı́cito 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 ,

−λUi−1 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 implementación de este método de resolución 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

También hay estimaciones del error, que resumimos en el siguiente Teorema.

Teorema 60. Si la solución 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

máx |u(xi , tj ) − Uij | ≤ C(h2 + ∆t)M,


i=1,2,...,N +1
j=1,2,...,M

donde M = máx[0,L]×[0,T ] |uxxxx |+|utt | y C es una constante que depende de los parámetros
k, L, H1 , H2 de la ecuación, pero es independiente de la función f (x, t), del dato inicial
u0 (x), de los datos de borde a(t), uE (t) y de los parámetro de discretización h, ∆t.

8.2. Diferencias finitas en 2D


El método de diferencias finitas se extiende naturalmente a dominios bidimensionales
de forma rectangular o que sean uniones finitas de rectángulos, y el análisis puede hacerse
de manera similar. Lo complicado es numerar los nodos con un solo ı́ndice, y encontrar
la manera automática de armar la matriz del sistema, pero pensando un poco es posible.
Consideremos la ecuación 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 (Ecuación de Poisson)


Consideremos primero esta ecuación en estado estacionario, es decir, consideremos
u = u(x, y) y ut = 0. Luego resulta la ecuación 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 + ui−1,j h2 ∂ 4 u ui,j+1 − 2ui,j + ui,j−1 h2 ∂ 4 u
= + (ξi,j , yj ) + + (xi , ηi,j )
h2 12 ∂x4 h2 12 ∂y 4
ui+1,j + ui,j+1 − 4ui,j + ui−1,j + ui,j−1 h2 h ∂ 4 u ∂ 4u i
= + (ξi,j , yj ) + (x i , ηi,j )
h2 12 ∂x4 ∂y 4
Por lo tanto, si la solución u(x, y) de (8.7) es C 4 en Ω̄, satisface
−ui+1,j − ui,j+1 + 4ui,j − ui−1,j − ui,j−1
k = fi,j + O(h2 )
h2
para i, j = 1, 2, . . . , N −1. Aquı́ fi,j denota la evaluación de f en (xi , yj ), respectivamente.

169
A partir de estas expresiones, definimos Ui,j , aproximaciones de ui,j a través de las
siguientes igualdades:
−Ui+1,j − Ui,j+1 + 4Ui,j − Ui−1,j − Ui,j−1
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 incógnitas.


También aquı́ puede demostrarse que el sistema tiene solución única y además se
cumple que
máx |u(xi , yj ) − Ui,j | ≤ Ch2 ,
0≤i,j≤N

con C una constante que depende de derivadas de hasta orden cuatro de u.

Observación 61. Para implementarlo debemos numerar los nodos e incógnitas 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 continuación mostramos un código
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. Difusión no estacionaria en 2D


En esta sección consideraremos el método implı́cito, análogo al visto en la sección 8.1.2
para difusión en 1D. Pero lo haremos de otra forma. Consideremos la ecuación 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 discretización de la variable tiempo utilizando un método de Euler implı́cito consiste
u(x, t, yn ) − u(x, y, tn−1 )
en aproximar ut (x, y, tn ) por , con algún ∆t > 0 pequeño. Si
n
∆t
ahora u denota la aproximación de u en t = tn que resulta de reemplazar ut por esta
fórmula, obtenemos:
un − un−1
− k(unxx + unyy ) = f n , en Ω para n ≥ 1,
∆t
un = αn , en ∂Ω para n ≥ 1,
u0 = u0 , en Ω.
Despejando un en la primera ecuación, obtenemos que cada un debe satisfacer
un − ∆tk(unxx + unyy ) = un−1 + ∆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 solución de una ecuación en
derivadas parciales con valores en el borde. Una vez hallado u1 , u2 es la solución de

171
otro problema del mismo tipo, y ası́ sucesivamente. Cada uno de estos problemas puede
resolverse de manera similar a la ecuación de Poisson, discretizando en x y en y con un
parámetro h = 1/N . Más precisamente, aproximaremos unxx (xi , yj ) + unyy (xi , yj ) por la
fórmula
uni+1,j + uni,j+1 − 4uni,j + uni−1,j + uni,j−1
h2
Reemplazando esta fórmula 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 k∆t n n n n n
 n−1 n
Ui,j − 2
U i+1,j + U i,j+1 − 4Ui,j + U i−1,j + Ui,j−1 = 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.

k∆t
Llamando λ = h2
obtenemos

n n n n n n−1 n
− λUi+1,j − λUi,j+1 + (1 + 4λ)4Ui,j − λUi−1,j − λUi,j−1 = 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 incógnitas, que debe ser
resuelto en cada paso de tiempo. Es decir, para n = 1, 2, . . . .
Sin decirlo explı́citamente, hemos supuesto que la condición inicial viene dada por
0
Ui,j = u0 (xi , yj ). La implementación de este método 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 = máx[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 = máx[x−h,x+h] |u000 |.

8.3. Extraiga el código poissondirichletdf1d.m del apunte y verifique que el error


tienda a cero como Ch2 siguiendo la sugerencia de la Observación 57.

172
8.4. Consideremos el siguiente problema:
−10(x−0.7)2

 −uxx = 20e
 , 0 ≤ x ≤ 1,
u(0) = 5,

u(1) = 6.

Calcule utilizando la computadora y dé una aproximación de u(1/2) con un error


absoluto menor a 10−3 .

8.5. Utilice el código poissondirichletdf1d.m para resolver los siguientes problemas


(x−0.5)2 (x−0.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-
tación fı́sica de las soluciones obtenidas? Recuerde que la ecuación estudiada corresponde
al estado estacionario de la ecuación de difusión.

8.6. Escriba una discretización análoga a (8.4) para el problema estacionario de difusión
y reacción 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 difusión y reacción, respectivamente. Expresar


también en forma matricial. Implemente en MATLAB/OCTAVE y verificar su funciona-
miento con una solución 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 dé una aproximación de u(1/2) con un error absoluto
menor a 10−3 .

8.8. Utilice el código MATLAB/OCTAVE correspondiente para resolver los siguientes


problemas:
(x−0.5)2 (x−0.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).
 

¿Qué diferencias observa con las soluciones del problema 8.5?

173
8.9. Consideremos la siguiente ecuación 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 método numérico implı́cito, con N = 40 y λ = 4, determine el valor de


t a partir del cual se cumple que

máx |u(x, t) − u∞ (x)| ≤ 0.1.


0≤x≤1

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) = e−10x , 0 ≤ x ≤ 1.
 

Determine en cada caso la solución estacionaria u∞ (x) y el tiempo t para el cual se cumple

máx |u(x, t) − u∞ (x)| ≤ 0.01.


0≤x≤1

A partir de estos cálculos, deduzca qué efecto tiene sobre la solución el cambio en el
coeficiente de difusión.
8.11. Modifique el programa difusionrobindf1dimpl.m para resolver problemas de
reacción-difusión 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, 0≤x
 

 

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) = e−100(x−0.5) , 0 ≤ x ≤ 1. u(x, 0) = e−100(x−0.5) ,
 
0≤x

Grafique ambas soluciones en diferentes instantes de tiempo entre t = 0 y t = 10 y


deduzca qué efecto tiene sobre la solución el cambio en el coeficiente de reacción.

174
8.13. Considere la siguiente ecuación 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 solución de (∗), determine el lı́mite cuando t → ∞ de u(1/2, t).

(c) Utilizando el método numérico implı́cito, 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 difusión-reacción (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 código desarrollado en clase para resolver este problema con f (x, t) =
100, si t < 2,
. Resuelva con N = 40 y λ = 4. Visualice la solución 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 más sobre los temas de este capı́tulo, le recomendamos el
siguiente libro:

175
Bibliografı́a

[Larsson-Thomée 2009] Larsson, S., Thomée, V., Partial Differential Equations with Nu-
merical Methods, Springer, 2009.

176

Você também pode gostar