95
1 Interpolaci´on y Aproximaci´ on 1.1 Interpolaci´on mediante polinomios En la secci´on 8.2 de Matem´aticas vimos los m´ etodos de Lagrange y Newton, ambos para calcular el polinomio interpolante de un conjunto de n + 1 datos (x 0 ,y 0 ), (x 1 ,y 1 ), ··· , (x n ,y n ), donde x 0 <x 1 < ··· <x n . De ahora en ade- lante supondremos que estos datos provienen de una funci´on f definida en [x 0 ,x n ]. Esta funci´on nos es desconocida y deseamos obtener informaci´on sobre ella precisamente a partir de estos datos. El c´alculo del polinomio interpolante constituye un primer intento en este sentido. Si n es un entero no negativo, fijo, llamemos P n al (´ unico) polinomio inter- polante de grado a lo sumo n con respecto a los datos anteriores, es decir, P n (x j )= y j para todo j =0, 1, ··· , n. Cuando f es una funci´on (n + 1)-veces continuamente diferenciable se puede encontrar una expresi´on para la diferencia entre f y P n . En efecto, probaremos a continuaci´onque f (x)= P n (x)+ f (n+1) (c(x)) (n + 1)! n Y j =0 (x - x j ), donde x 0 <c(x) <x n . Demostraci´on: Por simple inspecci´on se observa que la f´ormula anterior es correcta para x = x j , j =0, 1, ··· ,n. Sea x (x 0 ,x n ), x 6= x j para j = 0, 1, ··· ,n, y para t [x 0 ,x n ] consideremos la funci´on F (t)= f (t) - P n (t) - f (x) - P n (x) Q n j =0 (x - x j ) n Y j =0 (t - x j ). (1) Ella es (n + 1)-veces diferenciable y se anula en los n + 2 puntos distintos x, x 0 ,x 1 , ··· ,x n . De aqu´ ı, una sucesiva aplicaci´on del Teorema de Rolle con- duce a la existencia de un punto c(x), comprendido entre x 0 y x n , tal que

1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion

1.1 Interpolacion mediante polinomios

En la seccion 8.2 de Matematicas vimos los metodos de Lagrange y Newton,

ambos para calcular el polinomio interpolante de un conjunto de n + 1 datos

(x0, y0), (x1, y1), · · · , (xn, yn), donde x0 < x1 < · · · < xn. De ahora en ade-

lante supondremos que estos datos provienen de una funcion f definida en

[x0, xn]. Esta funcion nos es desconocida y deseamos obtener informacion sobre

ella precisamente a partir de estos datos. El calculo del polinomio interpolante

constituye un primer intento en este sentido.

Si n es un entero no negativo, fijo, llamemos Pn al (unico) polinomio inter-

polante de grado a lo sumo n con respecto a los datos anteriores, es decir,

Pn(xj) = yj para todo j = 0, 1, · · · , n.

Cuando f es una funcion (n + 1)-veces continuamente diferenciable se puede

encontrar una expresion para la diferencia entre f y Pn. En efecto, probaremos

a continuacion que

f (x) = Pn(x) +f (n+1)(c(x))

(n + 1)!

n∏j=0

(x− xj),

donde x0 < c(x) < xn.

Demostracion: Por simple inspeccion se observa que la formula anterior es

correcta para x = xj, j = 0, 1, · · · , n. Sea x ∈ (x0, xn), x 6= xj para j =

0, 1, · · · , n, y para t ∈ [x0, xn] consideremos la funcion

F (t) = f (t)− Pn(t)− f (x)− Pn(x)∏nj=0(x− xj)

n∏j=0

(t− xj). (1)

Ella es (n + 1)-veces diferenciable y se anula en los n + 2 puntos distintos

x, x0, x1, · · · , xn. De aquı, una sucesiva aplicacion del Teorema de Rolle con-

duce a la existencia de un punto c(x), comprendido entre x0 y xn, tal que

1

Page 2: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

F (n+1)(c(x)) = 0. Como P(n+1)n = 0 y

(∏nj=0(x− xj)

)(n+1)

= (n + 1)!, el

resultado se obtiene mediante un simple pasaje de terminos despues de derivar

n + 1 veces ambos lados de la igualdad (1) y reemplazar t por c(x).

Sea g una funcion continua definida en [x0, xn]. Definimos

‖g‖ = maxx∈[x0,xn]

|g(x)|.Una medida aceptable del error que produce Pn respecto de f es precisamente

‖f − Pn‖ = maxx∈[x0,xn]

∣∣∣∣∣∣f (n+1)(c(x))

(n + 1)!

n∏j=0

(x− xj)

∣∣∣∣∣∣.

Luego

‖f − Pn‖ ≤ ‖f (n+1)‖(n + 1)!

∥∥∥∥∥∥

n∏j=0

(x− xj)

∥∥∥∥∥∥.

La fraccion en el lado derecho de la desigualdad anterior es un numero que

depende de f y por lo tanto escapa a nuestro control. En cambio, sı podrıamos

controlar el factor ∥∥∥∥∥∥

n∏j=0

(x− xj)

∥∥∥∥∥∥eligiendo convenientemente los puntos xj. Obviamente, nuestro interes consiste

en minimizar este factor para, a su vez, alcanzar una cota de error mınima.

Veremos la forma de hacer esto despues del siguiente ejemplo.

Ejemplo

Sea n = 1. Luego ‖(x− x0)(x− x1)‖ = (x1−x0)2

4 y

‖f − P1‖ ≤ ‖f ′′‖8|x1 − x0|2.

Sea n = 2 y supongamos que los puntos xj estan en posicion equidistante, es

decir, xj = x0 + j h, donde j = 1, 2 y h es un numero positivo, fijo. Entonces

‖(x− x0)(x− x1)(x− x2)‖ =2

3√

3h3.

2

Page 3: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 3

De aquı, en este caso

‖f − P2‖ ≤ ‖f ′′′‖9√

3h3.

Polinomios de Chebyshev

Para n ≥ 3, la distribucion equidistante de los puntos xj no produce un valor

mınimo de∏n

j=0(x− xj). Para conseguir esto introducimos los llamados poli-

nomios de Chebyshev. Ellos aparecen como consecuencia de la formula

cos mθ = Tm(cos θ),

donde Tm es un polinomio de grado m. Esta formula se prueba sin dificultad

por el metodo de induccion, usando la conocida igualdad trigonometrica

cos (k + 1)θ = 2 cos θ cos kθ − cos (k − 1)θ.

De aquı sigue que

Tk+1(cos θ) = 2 cos θ Tk(θ)− Tk−1(θ).

Reemplazando cos θ por x, nos queda la formula recurrente

Tk+1(x) = 2xTk(x)− Tk−1(x), k = 1, 2, · · · ,con T0(x) = 1, T1(x) = x, que nos permite definir todos los polinomios de

Chebyshev. Por ejemplo,

T2(x) = 2x2 − 1

T3(x) = 4x3 − 3x

T4(x) = 8x4 − 8x2 + 1.

Obviamente, ellos estan definidos en todo R, pero solo cuando x esta en [−1, 1]

es x = cos θ para algun valor de θ en el intervalo [0, π], y en este caso, Tm(x) =

cos mθ para ese mismo valor de θ. Este hecho facilita la tarea de encontrar

Page 4: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 4

todas las raıces de cada uno de estos polinomios. En efecto, cos mθ se anula

para los valores de θ dados por

2k − 1

2mπ, k = 1, 2, · · · ,m.

Luego las m raıces de Tm son

zk(m) = cos2k − 1

2mπ, k = 1, 2, · · · ,m.

Observar que

z1(m) > z2(m) > · · · > zm(m).

Estos son los llamados puntos de Chebyshev. La disposicion que siguen los

puntos de Chebyshev en el intervalo [zn+1(n + 1), z1(n + 1)] se corresponde

linealmente con la que deben tener los n + 1 puntos x0, x1, · · · , xn para que∏nj=0(x − xj) tome un valor mınimo entre todas las posibles elecciones de

puntos xj en el intervalo [x0, xn]. En otras palabras, los n + 1 puntos xj que

minimizan la productoria anterior son la imagen de los puntos de Chebyshev

mediante la transformacion lineal que lleva el intervalo [zn+1(n + 1), z1(n + 1)]

en el intervalo [x0, xn].

De acuerdo con la discusion anterior, es de esperar que el polinomio inter-

polante obtenido en base a los puntos de Chebyshev de una mejor aproximacion

a f que otro basado en un conjunto diferente de puntos. Ilustraremos este hecho

con el siguiente ejemplo, debido al matematico Carl Runge.

Ejemplo

En el intervalo [-5,5] consideremos la funcion f , dada por f (x) = 1x2+1

. Se

puede demostrar que el polinomio interpolante Qn basado en puntos equidis-

tantes x0 < x1 < · · · < xn, con x0 = −5 y xn = 5, tiene el siguiente

comportamiento:

lim supn→∞

|f (x)−Qn(x)| =

{0 si |x| < 3, 633... ,

∞ si |x| > 3, 633... .

Para n = 10, se muestra a continuacion el calculo de Q10, y tambien su grafica,

con el programa Mathematica.

Page 5: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 5

For[j = 0, j <= 10, j = j + 1, x[j] = -5 + j];

t = Table[{x[j], 1/(x[j]2 + 1)}, {j, 0, 10}];

tp = Table[{PointSize[.013], Point[{x[j],1/(x[j]2 + 1)}]}, {j, 0, 10}];

p[x−]=InterpolatingPolynomial[t,x];

Plot[p[x], {x, -5, 5}, Prolog −> tp]

-4 -2 2 4

0.5

1

1.5

2

Figura 1

Se observa en efecto un marcado alejamiento de Q10 en las zonas laterales.

Calcularemos ahora el polinomio interpolante P10 basado en los once puntos

de Chebyshev. Estos son cos 2k−122 π, k = 1, 2, · · · , 11. La aplicacion lineal

que lleva el intervalo [cos 2122 π, cos 1

22 π] al intervalo [−5, 5] es t 7→ α t, con

α = 5cos π

22. Luego los puntos xj que estamos buscando son

α cos21

22π = −5, α cos

19

22π, · · · , α cos

3

22π, α cos

1

22π = 5.

Clear["Global`*"]

alfa = 5/(Cos[(Pi/22)]);

For[j = 0, j <= 10, j = j + 1, x[j] = alfa Cos[(21 - 2j)Pi/22]];

t = Table[{x[j], 1/(x[j]2 + 1)}, {j, 0, 10}];

tp = Table[{PointSize[.013], Point[{x[j], 1/(x[j]2 + 1)}]}, {j, 0, 10}];

p[x−] = InterpolatingPolynomial[t, x];

Plot[p[x], {x, -5, 5}, PlotRange −> {0, 1}, Prolog −> tp]

Page 6: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 6

-4 -2 2 4

0.2

0.4

0.6

0.8

1

Figura 2

Se observa ahora una notable mejora en la aproximacion de P10 a f , debida

a que los puntos xj obtenidos de los puntos de Chebyshev se concentran mas

en las zonas laterales del intervalo [−5, 5]. Como un resultado general, se sabe

que si f es continuamente diferenciable entonces el polinomio interpolante Pn,

basado en los puntos de Chebyshev, converge uniformemente a f para n →∞.

No obstante, este buen resultado no nos garantiza que el polinomio interpolante

sea un reflejo fiel del comportamiento de los n + 1 datos, aun para n grande.

En efecto, desearıamos obtener un polinomio interpolante que se mantenga

creciente (resp., decreciente) cuando los datos crecen (resp., decrecen). Ob-

servamos en la Figura 2 que P10 no cumple con este requisito. En realidad,

no es posible, en general, conseguir esta condicion con funciones interpolantes

que sean polinomios. Una manera de arreglar esto es considerar polinomios

“de a trozos”, es decir, funciones interpolantes que restringidas a cada intervalo

[xj, xj+1] sean polinomios. Trataremos este tema en la proxima seccion.

1.2 Interpolacion mediante splines

La posibilidad de cambiar ahora la expresion del polinomio en cada intervalo

[xj, xj+1], j = 0, 1, · · · , n− 1, hara que podamos conseguir una buena aproxi-

macion del spline interpolante a f aun con polinomios de grado bajo. Siempre

mantendremos el mismo grado en cada intervalo. Es evidente que el mınimo

grado posible es 1. Llamaremos S1 al spline interpolante que se compone de

polinomios de grado 1. Aquı tenemos un dibujo de S1 para los once datos del

ejemplo de Runge, con puntos equidistantes.

Page 7: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 7

tab = Table[{x, 1/(x2 + 1)}, {x, -5, 5}];

For[j = 0, j <= 10, j = j + 1, x[j] = -5 + j];

tp = Table[{PointSize[.013], Point[{x[j], 1/(x[j]2 + 1)}]}, {j, 0, 10}];

int = Interpolation[tab, InterpolationOrder −> 1];

Plot[int[x], {x, -5, 5}, Prolog −> tp]

-4 -2 2 4

0.2

0.4

0.6

0.8

1

Figura 3

Se observa que S1 preserva el crecimiento – decrecimiento de los datos, cosa que

no se pudo lograr con el polinomio interpolante de grado 10 (ver Figura 1). Por

otra parte, S1 tiene el inconveniente de que su derivada no es continua en los

puntos xj. La continuidad de la derivada es una condicion que vamos a pedir

de ahora en mas. Como consecuencia de ello, estamos obligados a considerar

splines compuestos por polinomios de, al menos, grado 2. Concretamente, en lo

que sigue haremos un estudio de los splines interpolantes cuadraticos y cubicos,

es decir, de grado 2 y 3, respectivamente.

Splines interpolantes cuadraticos

Llamemos S2 a un spline interpolante compuesto por polinomios de grado 2,

con derivada continua. Ahora bien, hay infinitos polinomios de grado 2, in-

terpolantes en, por ejemplo, los datos (x0, y0) y (x1, y1). Esto hace que S2 no

este unıvocamente determinado, como sucedıa con S1. Pero una vez que se ha

elegido un polinomio, digamos L1, interpolante en esos datos, su prolongacion

a S2 sı esta unıvocamente determinada, ya que ahora tenemos que cumplir con

tres condiciones en cada uno de los restantes intervalos. Por ejemplo, en [x1, y1]

Page 8: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 8

debemos hallar un polinomio interpolante L2 — dos condiciones — y ademas

satisfacer la condicion L′2(x1) = L′1(x1). Y ası sucesivamente con los restantes

intervalos. Si procedemos de esta manera, en el computo de L1 tendremos

la posibilidad de pedir una tercera condicion a nuestro gusto. Por ejemplo,

L′1(x0) = 0, o bien L′1(x0) = y1−y0x1−x0

.

Calcularemos ahora un polinomio interpolante S2. Para ello haremos uso

de un esquema que facilita tanto su interpretacion como su computo efectivo.

Aplicaremos este esquema en lo que resta de este capıtulo. Todo consiste en

pasar a la derivada. Esto es, calcularemos S ′2 y despues integraremos (recorde-

mos que S2 tiene derivada continua). Esta funcion derivada es un spline que se

compone de polinomios de grado 1.

Toda funcion que tenga derivada continua, salvo en un numero finito de

puntos, satisface la regla de Barrow. Este es el caso de S1. Luego

yj = S1(xj) = yj−1 +

∫ xj

xj−1

S ′1, j = 1, 2, · · · , n.

La formula anterior es valida para toda funcion interpolante, digamos S, con

derivada continua. Se deduce que∫ xj

xj−1

S ′ =∫ xj

xj−1

S ′1 = yj − yj−1, j = 1, 2, · · · , n. (2)

En particular, la ecuacion (2) es valida para S ′2 en el lugar de S ′. Y recıproca-

mente, si S ′2 satisface (2) en el lugar de S ′, entonces

S ′2(x) = y0 +

∫ x

x0

S ′2

es un spline interpolante. La derivada de S1 es una funcion escalonada. Luego,

para que quede clara una interpretacion visual del calculo de S2 a traves de

su derivada, digamos que S ′2 debe ser obtenido de forma que su integral sobre

cada intervalo

[xj−1, xj]

sea igual al area del rectangulo con base en [xj−1, xj] y altura determinada por

el valor constante de S ′1 en ese mismo intervalo. Ya estamos en situacion de

Page 9: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 9

calcular un spline interpolante S2 para los datos del ejemplo de Runge, con

puntos equidistantes. Impondremos la condicion

S ′2(x0) = S ′1(x0) =y1 − y0

x1 − x0.

Primero calculamos S ′2.

For[j = 0, j <= 10, j = j + 1, x[j] = -5 + j; y[j] = 1/(x[j]2 + 1)];

For[j = 1, j <= 10, j = j + 1, d[j] = (y[j] - y[j - 1])/(x[j] - x[j - 1])];

plots1prima = Table[Plot[d[j], {x, x[j - 1], x[j]}, DisplayFunction −> Identity], {j, 1, 10}];

s2prima[1][t−] = d[1];

For[j = 2, j <= 10, j = j + 1,

v[j] = (2(d[j] - s2prima[j - 1][x[j - 1]]))/(x[j] - x[j - 1]);

s2prima[j][t−] = v[j](t - x[j - 1]) + s2prima[j - 1][x[j - 1]]];

plots2prima = Table[Plot[s2prima[j][t], {t, x[j - 1], x[j]}, DisplayFunction −> Identity], {j, 1, 10}];

Show[plots1prima, plots2prima, DisplayFunction −> $DisplayFunction,

AxesOrigin −> {-5, -1.6}]

-4 -2 2 4

-1.5

-1

-0.5

0.5

1

Figura 4. Graficos de S′1 (funcion escalonada) y S′2.

Ahora calculamos S2 mediante integracion de S ′2.

s2[0][x[0]] = y[0];

For[j = 1, j <= 10, j = j + 1,

s2[j][x−] = s2[j - 1][x[j - 1]] + Integrate[s2prima[j][t], {t, x[j - 1], x}]];

tp = Table[{PointSize[.012], Point[{x[j], 1/(x[j]2 + 1) }]}, {j, 0, 10}];

Page 10: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 10

plots2 = Table[Plot[s2[j][x], {x, x[j - 1], x[j]}, DisplayFunction −> Identity], {j, 1, 10}];

Show[plots2, DisplayFunction −> $DisplayFunction, Prolog −> tp]

-4 -2 2 4

-0.2

0.2

0.4

0.6

0.8

1

Figura 5

Splines cuadraticos con un nodo intermedio

Como vemos en los dibujos, hasta ahora no hemos podido conseguir un

interpolante, con derivada continua, que preserve el crecimiento – decrecimiento

de los datos. En realidad, no es posible en general lograr esta propiedad con

splines cuadraticos (ni cubicos) que se compongan de un unico polinomio en

cada intervalo

[xj−1, xj].

Una solucion a este hecho es considerar un spline cuadratico, con derivada con-

tinua, que en cada intervalo [xj−1, xj] se componga de dos polinomios. Diremos

que una funcion interpolante de este tipo es un spline con un nodo interme-

dio (el nodo es, en cada intervalo, el valor de x donde cambia la expresion del

polinomio). Calcularemos a continuacion un tal interpolante, que seguiremos

llamando S2. Como ya se ha dicho, el procedimiento que seguiremos es el de hal-

lar primero su derivada S ′2. La introduccion del nodo intermedio, cuya posicion

debemos fijar, hara que tambien tengamos libertad para fijar los valores de

S ′2(xj), j = 0, 1, · · · , n.

Una estrategia muy razonable para hacer esto es la siguiente. Suponemos

n ≥ 2. Nos basaremos en la funcion escalonada S ′1. En [x0, xn] consideremos

Page 11: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 11

la poligonal Q determinada por los puntos (mj, S′1(mj)), donde mj =

xj−1+xj

2 ,

j = 1, 2, · · · , n, y tal que Q tiene derivada continua en [x0, x1]∪ [xn−1, xn]. Los

valores de S ′2(xj) vendran dados por Q(xj).

For[j = 0, j <= 10, j = j + 1, x[j] = -5 + j; y[j] = 1/(x[j]2 + 1)];

For[j = 1, j <= 10, j = j + 1, d[j] = (y[j] - y[j - 1])/(x[j] - x[j - 1]);

m[j] = (x[j - 1] + x[j])/2];

plots1prima = Table[Plot[d[j], {x, x[j - 1], x[j]}, DisplayFunction −> Identity], {j, 1, 10}];

tq = Table[{m[j], d[j]}, {j, 1, 10}];

q = Interpolation[tq, InterpolationOrder −> 1];

plotq = Plot[q[x], {x, -5, 5}, DisplayFunction −> Identity];

tpq = Table[{PointSize[.01], Point[{x[j], q[x[j]]}]}, {j, 0, 10}];

Show[plots1prima, plotq, DisplayFunction −> $DisplayFunction,

Prolog −> tpq, AxesOrigin −> {-5, -.52}, AspectRatio −> 1]

-4 -2 0 2 4

-0.4

-0.2

0

0.2

0.4

Figura 6

Una vez que se han fijado los valores de contorno S ′2(xj) = Q(xj), j =

0, 1, · · · , n, debemos situar a los nodos intermedios en cada intervalo [xj−1, xj].

Hay dos casos, segun la posicion de los valores de contorno en los dos extremos

de ese intervalo respecto de dj :=yj−yj−1xj−xj−1

.

Page 12: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 12

Primer caso: (Q(xj−1)− dj)(Q(xj)− dj) < 0.

Segundo caso: (Q(xj−1)− dj)(Q(xj)− dj) ≥ 0.

En el ejemplo de la Figura 6 todos los intervalos, con excepcion de [−1, 0] y

[0, 1], corresponden al primer caso.

En el primer caso fijaremos el nodo, digamos xj−1 + cj, de manera que

S ′2(xj−1 + cj) = dj. En el segundo caso el nodo sera el punto medio del

intervalo, mj =xj−1+xj

2 = xj−1 + δj, donde δj =xj−xj−1

2 . Ahora S ′2, restringido

en el intervalo [xj−1, xj], queda unıvocamente determinado por la condicion∫ xj

xj−1

S ′2 =

∫ xj

xj−1

S ′1 = yj − yj−1.

Ası, cj debe tomar un valor que satisfaga

cj(dj −Q(xj−1)) = (2δj − cj)(Q(xj)− dj).

Luego

cj =2δj(Q(xj)− dj)

Q(xj)−Q(xj−1).

Por otro lado, S ′2(mj) =: aj debe cumplir con la condicion

(aj −Q(xj−1))(δj/2) + Q(xj−1)(δj) + (aj −Q(xj))(δj/2) + Q(xj)(δj)

= yj − yj−1.

Luego

aj = 2dj − Q(xj−1) + Q(xj)

2.

En las Figuras 7 y 8 se ilustran el primero y segundo casos, respectivamente,

para los intervalos [−3,−2] y [−1, 0] del ejemplo de Figura 6.

c = (q[x[3]] - d[3])/(q[x[3]] - q[x[2]]);

pol = Interpolation[{{x[2], q[x[2]]}, {x[2] + c, d[3]}, {x[3], q[x[3]]}},

InterpolationOrder −> 1];

taq = {PointSize[.013], Point[{x[2], q[x[2]]}], Point[{x[3], q[x[3]]}]};

Plot[{pol[x], d[3]}, {x, x[2], x[3]}, PlotRange −> {.05, .21}, Prolog −> taq, AxesOrigin −> {-1.8, 0}, Aspec-

tRatio −> 1]

Page 13: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 13

-3 -2.8 -2.6 -2.4 -2.2 -2

0.05

0.1

0.15

0.2

Figura 7. La poligonal S′2 en un intervalo correspondiente al primer caso.

a = 2d[5] - (q[x[4]] + q[x[5]])/2;

pol = Interpolation[{{x[4], q[x[4]]}, {m[5], a}, {x[5], q[x[5]]}},

InterpolationOrder −> 1];

taq = {PointSize[.013], Point[{x[4], q[x[4]]}], Point[{x[5], q[x[5]]}]};

Plot[{pol[x], d[5]}, {x, x[4], x[5]}, Prolog −> taq, AxesOrigin −> {.1, 0}, AspectRatio −> 1]

-1 -0.8 -0.6 -0.4 -0.2 0

0.2

0.4

0.6

0.8

Figura 8. La poligonal S′2 en un intervalo correspondiente al segundo caso.

Ahora obtenemos S ′2 en el intervalo completo [−5, 5].

Clear["Global`*"]

For[j = 0, j <= 10, j = j + 1, x[j] = -5 + j; y[j] = 1/(x[j]2 + 1)];

Page 14: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 14

For[j = 1, j <= 10, j = j + 1, d[j] = (y[j] - y[j - 1])/(x[j] - x[j - 1]);

m[j] = (x[j - 1] + x[j])/2];

tq = Table[{m[j], d[j]}, {j, 1, 10}];

q = Interpolation[tq, InterpolationOrder −> 1];

plots1prima = Table[Plot[d[j], {x, x[j - 1], x[j]}, DisplayFunction −> Identity], {j, 1, 10}];

For[j = 1, j <= 10, j = j + 1, If[(q[x[j - 1]] - d[j])(q[x[j]] - d[j]) < 0, c[j] = (q[x[j]] - d[j])/(q[x[j]] - q[x[j - 1]]);

s2prima[j] = Interpolation[{{x[j - 1], q[x[j - 1]]}, {x[j - 1] + c[j], d[j]}, {x[j], q[x[j]]}}, InterpolationOrder −>

1], a[j] = 2d[j] - (q[x[j - 1]] + q[x[j]])/2; s2prima[j] = Interpolation[{{x[j - 1], q[x[j - 1]]}, {m[j], a[j]}, {x[j],

q[x[j]]}}, InterpolationOrder −> 1]]];

Show[Table[ Plot[s2prima[j][t], {t, x[j - 1], x[j]}, DisplayFunction −> Identity], {j, 1, 10}], plots1prima,

AxesOrigin −> {-5, -.85}, DisplayFunction −> $DisplayFunction, AspectRatio −> 1]

-4 -2 0 2 4

-0.75

-0.5

-0.25

0

0.25

0.5

0.75

Figura 9

Finalmente, se calcula S2.

s2[0][x[0]] = y[0];

For[j = 1, j <= 10, j = j + 1, s2[j][x−] = s2[j - 1][x[j - 1]] +

Integrate[s2prima[j][t], {t, x[j - 1], x}]];

tp = Table[{PointSize[.012], Point[{x[j], 1/(x[j]2 + 1)}]}, {j, 0, 10}];

Page 15: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 15

Show[Table[Plot[s2[j][x], {x, x[j - 1], x[j]}, DisplayFunction −> Identity],

{j, 1, 10}], DisplayFunction −> $DisplayFunction, Prolog −> tp]

-4 -2 2 4

0.2

0.4

0.6

0.8

1

Figura 10

Hemos conseguido por fin un interpolante, con derivada continua, que preserva

el crecimiento – decrecimiento de los datos. No obstante, no debemos cantar

victoria antes de tiempo, ya que este hecho se ha dado en este ejemplo pero

puede no darse en otro. En efecto, consideremos los datos

{0, 0}, {1, 4}, {2, 5}, {3, 9}.Ellos estan en posicion estrictamente creciente. Por consiguiente, S ′2 deberıa

ser positivo. Sin embargo, esto no es ası, como muestra la siguiente figura.

0.5 1 1.5 2 2.5 3

1

2

3

4

5

Page 16: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 16

Figura 11. Graficos de S′1 (funcion escalonada) y de S′2.

En este caso, S2 resultara decreciente en un entorno de x = 1, 5. Pero esta

situacion se arregla, en general, modificando los valores de contorno S ′2(xj).

Los intervalos [xj−1, xj] conflictivos, j = 2, 3, · · · , n − 1, seran aquellos en los

que valga

(Q(xj−1)− dj)(Q(xj)− dj) ≥ 0 y ajdj < 0.

Cuando esto ocurra se tomara

S ′2(xj−1) = S ′2(xj) = 2dj.

En los intervalos extremos [x0, x1] y [xn−1, xn] se procede analogamente. Por

ejemplo, si

Q(x0) < 0 < d1 o Q(x0) > 0 > d1,

se tomara

S ′2(x0) = 0.

Si d1 = 0, entonces se tomara S ′2(x0) = S ′2(x1) = 0.

Volviendo a los mismos datos anteriores, la derivada de S2, modificado segun

estas reglas, tiene el siguiente aspecto.

0.5 1 1.5 2 2.5 3

1

2

3

4

5

Figura 12

Page 17: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 17

Ahora S2 resultara un interpolante estrictamente creciente.

A continuacion se da un programa, con Mathematica, que determina el

spline interpolante S2 con un nodo intermedio. Este interpolante preserva el

crecimiento – decrecimiento, ası como la convexidad – concavidad, de los datos.

Este ultimo concepto se refiere a que S ′2 crece y decrece segun el crecimiento –

decrecimiento de la funcion escalonada S ′1, respectivamente.

Clear["Global`*"]; nd = Input[nd; "numero de datos"]; n = nd - 1;

For[j = 0, j <= n, j = j + 1, {x[j] = Input[x[j]], y[j] = Input[y[j]]}];

For[j = 1, j <= n, j = j + 1,

d[j] = (y[j] - y[j - 1])/(x[j] - x[j - 1]); del[j] = (x[j] - x[j - 1])/2];

For[j = 1, j <= n - 1, j = j + 1,

q[j] = d[j] + (d[j + 1] - d[j])*del[j]/(del[j] + del[j + 1])];

q[0] = d[1] - (q[1] - d[1]); q[n] = 2 d[n] - q[n - 1];

For[j = 1, j <= n, j = j + 1, If[(q[j] - d[j])(q[j - 1] - d[j]) >= 0,

a[j] = 2 d[j] - (q[j - 1] + q[j])/2]];

For[j = 1, j <= n, j = j + 1, If[(q[j] - d[j])(q[j - 1] - d[j]) >= 0 && q[j]a[j] < 0, q[j] = 2d[j]; q[j - 1] = 2 d[j]]];

If[q[1] d[1] > 0 && q[0]d[1] < 0, q[0] = 0]; If[ d[1] == 0, q[0] = 0; q[1] = 0];

If[q[n - 1] d[n] > 0 && q[n]d[n] < 0, q[n] = 0];

If[d[n] == 0, q[n - 1]=0; q[n] = 0];

s2[0][x[0]] = y[0];

For[j = 1, j <= n, j = j + 1, If[(q[j] - d[j])(q[j - 1] - d[j]) < 0,

c[j] = 2 del[j](q[j] - d[j])/(q[j] - q[j - 1]);

s2prima[j] = Interpolation[{{x[j - 1], q[j - 1]}, {x[j - 1] + c[j], d[j]}, {x[j], q[j]}}, InterpolationOrder −> 1];

s2[j][x−] = s2[j - 1][x[j - 1]] + Integrate[s2prima[j][t], {t, x[j - 1], x}],

a[j] = 2 d[j] - (q[j - 1] + q[j])/2;

s2prima[j] = Interpolation[{{x[j - 1], q[j - 1]}, {x[j - 1] + del[j], a[j]}, {x[j], q[j]}}, InterpolationOrder −> 1];

s2[j][x−] = s2[j - 1][x[j - 1]] + Integrate[s2prima[j][t], {t, x[j - 1], x}]]];

For[j = 1, j <= n, j = j + 1, p2[j] = Plot[s2[j][x], {x, x[j - 1], x[j]},

DisplayFunction −> Identity]];

tp = Table[{PointSize[.01], Point[{x[j], y[j]}]}, {j, 0, n}];

tg = Table[p2[j], {j, 1, n}];

Page 18: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 18

Show[tg, DisplayFunction −> $DisplayFunction, Prolog −> tp]

Estimacion del error

Daremos ahora, en general, una estimacion del error que se comete con

este metodo de interpolacion. Suponemos que f es dos veces continuamente

diferenciable. Consideremos un intervalo Ij := [xj−1, xj], 1 ≤ j ≤ n. Recorde-

mos que dj =yj−yj−1xj−xj−1

. Por el Teorema del valor medio se deduce que existe

θj ∈ (xj−1, xj) tal que f ′(θj) = dj. Para x ∈ Ij, tenemos que

|f ′(x)− S ′2(x)| ≤ |f ′(x)− dj| + |S ′2(x)− dj|. (3)

Por un lado,

|f ′(x)− dj| = |f ′(x)− f ′(θj)| ≤ ‖f ′′‖h, (4)

donde ‖f ′′‖ = maxx∈[x0,xn] |f ′′(x)| y h = max1≤j≤n |xj − xj−1|. Por otro lado,

ahora haremos una estimacion de |S ′2(x) − dj|. Para el Primer caso se tiene

(ver Figura 7)

|S ′2(x)− dj| ≤ max{|Q(xj)− dj|, |Q(xj−1)− dj|} si 1 ≤ j ≤ n,

donde |Q(x0) − d1| ≤ |Q(x1) − d1| y |Q(xn) − dn| ≤ |Q(xn−1) − dn|. Para

1 ≤ j ≤ n− 1, Q(xj) es un valor comprendido entre dj y dj+1. Como

|dj+1 − dj| = |f ′(θj+1)− f ′(θj)| ≤ 2‖f ′′‖h,

se deduce que

|S ′2(x)− dj| ≤ 2‖f ′′‖h.

Para el Segundo caso solo hay que considerar intervalos Ij con 2 ≤ j ≤ n− 1.

Se tiene que (ver Figura 8)

|aj − dj| =

∣∣∣∣dj − Q(xj−1) + Q(xj)

2

∣∣∣∣ ≤ max{|dj+1 − dj|, |dj − dj−1|}.

Luego

|S ′2(x)− dj| ≤ max{|dj+1 − dj|, |dj − dj−1|}= max{|f ′(θj+1)− f ′(θj)|, |f ′(θj)− f ′(θj−1)|} ≤ 2‖f ′′‖h.

Page 19: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 19

Se deduce de aquı que para todo x en Ij, j = 1, 2, · · · , n, vale siempre que

|S ′2(x)− dj| ≤ 2‖f ′′‖h.

Por lo tanto, aplicando (3) y (4) se concluye que

|f ′(x)− S ′2(x)| ≤ 3‖f ′′‖h para todo x ∈ [x0, xn]. (5)

Finalmente, sea x en [x0, xn]. Luego x esta en algun Ij, j = 1, 2, · · · , n, por lo

que se obtiene

|f (x)− S2(x)| =

∣∣∣∣∣yj +

∫ x

xj

f ′ −(

yj +

∫ x

xj

S ′2

)∣∣∣∣∣ ≤ 3‖f ′′‖h2.

Una conclusion importante de estas dos ultimas estimaciones es que

|f ′ − S ′2| → 0 y |f − S2| → 0 cuando h → 0.

Splines interpolantes cubicos

Consideraremos ahora splines interpolantes, digamos S3, compuestos por poli-

nomios de grado 3 en cada intervalo [xj−1, xj], j = 1, 2, · · · , n. El subir el

grado de estos polinomios de 2 a 3 nos permitira aumentar nuestra exigencia

en cuanto a la suavidad de S3. Concretamente, ahora pediremos que S3 tenga

hasta la segunda derivada continua. Ademas, nos quedaran dos condiciones

libres que usaremos para fijar en x0 y xn valores de contorno que consideremos

apropiados. Usualmente, se establece

S ′′3(x0) = S ′′3(xn) = 0, (6)

o bien condiciones sobre las derivadas S ′3(x0) y S ′3(xn).

Con Mathematica es facil e instructivo hacer un programa para calcular estos

splines cubicos. Por ejemplo, haremos uno para obtener un spline interpolante

S3 que cumpla con (6). Siguiendo con el procedimiento empleado hasta ahora,

hallaremos la derivada segunda S ′′3 y despues integraremos dos veces. El spline

S ′′3 es una poligonal continua. De acuerdo con (6), su restriccion sobre [x0, x1]

Page 20: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 20

es una funcion lineal t 7→ b0 + a1(t − x0), con b0 = 0. Dejaremos variable el

valor de la pendiente a1 y determinaremos m0 de forma tal que

y0 +

∫ x1

x0

(m0 +

∫ x

x0

[b0 + a1(t− x0)] dt

)dx = y1.

Esto da

m0 =y1 − y0 − a1(x1 − x0)

3/6− b0(x1 − x0)2/2

x1 − x0.

Ahora

b1 = b0 + a1(x1 − x0),

m1 = m0 +

∫ x1

x0

a1(t− x0)

y queda determinado un unico valor de pendiente a2 que satisface

y1 +

∫ x2

x1

(m1 +

∫ x

x1

[b1 + a2(t− x1)] dt

)dx = y2.

Esto da

a2 =6(y2 − y1 −m1(x2 − x1)− b1(x2 − x1)

2/2)

(x2 − x1)3.

De esta manera se continua con los restantes intervalos. Las variables aj+1, mj,

j = 0, 1, · · · , n− 1, y bj, j = 1, 2, · · · , n, dependen (linealmente) de la variable

original a1. Cuando se llega al intervalo [xn−1, xn] se debe cumplir la condicion

bn = bn−1 + an(xn− xn−1) = 0, ecuacion lineal de primer grado que determina

el unico valor de a1 que hace cumplir (6). Todos estos calculos se reflejan en el

siguiente programa.

Clear["Global`*"]

nd = Input[nd; "numero de datos"]; n = nd - 1;

For[j = 0, j <= n, j = j + 1, {x[j] = Input[x[j]], y[j] = Input[y[j]]}];

tp = Table[{PointSize[.009], Point[{x[j], y[j]}]}, {j, 0, n}];

a[1] = v; b[0] = 0;

m[0] = (y[1] - y[0] - a[1](x[1] - x[0])3/6 - b[0](x[1] - x[0])2/2)/(x[1] - x[0]);

For[j = 1, j <= n - 1, j = j + 1,

Page 21: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 21

{b [j] = Simplify[b[j - 1]+a[j](x[j] - x[j - 1])],

m[j] = Simplify[m[j - 1] + a[j](x[j] - x[j - 1])2/2 + b[j - 1](x[j] - x[j- 1])],

a[j + 1] = Simplify[6(y[j + 1] - y[j] - m[j](x[j + 1] - x[j]) - b[j](x[j + 1] - x[j])2/2)/(x[j + 1] - x[j])3]}];

sol = Solve[b[n - 1]+a[n](x[n] - x[n - 1]) == 0, v]; v = v /. sol;

For[j = 1, j <= n, j = j + 1,

s3prima[j][u−] = m[j - 1] + Integrate[b[j - 1]+a[j](t - x[j -1]),{t, x[j - 1], u}];

s3[j][x−] = y[j - 1] + Integrate[s3prima[j][u], {u, x[j - 1], x}];

p[j] = Plot[s3[j][x], {x, x[j - 1], x[j]}, DisplayFunction −> Identity]];

tg = Table[p[j], {j, 1, n}];

Show[tg, DisplayFunction −> $DisplayFunction, Prolog −> tp]

Aplicaremos este programa para calcular el spline cubico interpolante S3 para

los siguientes datos. Ellos corresponden a un experimento real que mide la

energıa electronica molecular y, en Kcal, segun la rotacion x, en grados, de un

enlace sencillo de dos anillos.

(0, 0) (10, 0.1496) (20, 0.5941) (30, 1.3178) (40, 2.2762)

(50, 3.3848) (60, 4.5185) (70, 5.5235) (80, 6.2452) (90, 6.5766)

(100, 6.5123) (110, 6.1449) (120, 5.6123) (130, 5.0495) (140, 4.5677)

(150, 4.2418) (160, 4.0933) (170, 4.0754) (180, 4.0892)

Se obtiene la siguiente grafica.

25 50 75 100 125 150 175

1

2

3

4

5

6

Figura 13

En este ejemplo, S3 preserva tanto el crecimiento – decrecimiento, como la

convexidad – concavidad, de los datos. Sin embargo, puede haber casos donde

Page 22: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 22

esto no sea ası. Si ocurre esta situacion, habra que introducir nodos intermedios,

como se hizo en el caso del spline interpolante cuadratico. Ahora sera necesario

considerar dos nodos intermedios, en lugar de uno, para conservar ademas la

continuidad del spline cubico y de sus dos primeras derivadas. Los detalles del

calculo de un interpolante de este tipo pueden verse en [4]. Suponiendo que

f es 3 veces continuamente diferenciable, en este artıculo tambien se da una

estimacion del error, a saber

|f − S3| ≤ 19, 25 ‖f ′′′‖h3.

En la Figura 14 se muestra el spline cubico interpolante que satisface (6).

Para los mismos datos, en la Figura 15 se ve la grafica de un spline cubico

interpolante, con dos nodos intermedios, que preserva la forma de los datos.

0.5 1 1.5 2 2.5 3

5

10

15

20

Figura 14

0.5 1 1.5 2 2.5 3

5

10

15

20

Figura 15

1.3 Mejor aproximacion de funciones

Las funciones interpolantes consideradas en las anteriores secciones coinci-

den con la funcion de la cual provienen los datos, digamos f , en los puntos

x0, x1, · · · , xn. Sin embargo, hemos visto que este hecho no implica necesaria-

mente que aquellas esten cerca de f en el intervalo [x0, xn]. Por lo tanto, si esto

ultimo es nuestro objetivo, una idea alternativa consiste en seleccionar, dentro

de una clase de funciones aproximantes, a aquella que este “mas proxima” a f .

Esto nos obliga a considerar una medida de proximidad, en el intervalo [x0, xn],

entre f y la clase de funciones aproximantes.

Supondremos que f es continua en [x0, xn], y llamemos Pn a la clase de los

Page 23: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 23

polinomios de grado a lo sumo n restringidos en [x0, xn].

Aproximacion uniforme

Se puede probar que existe un unico polinomio P en Pn que satisface

maxx∈[x0,xn]

|f − P | ≤ maxx∈[x0,xn]

|f −Q| para todo Q ∈ Pn.

Este polinomio P se llama una mejor aproximacion uniforme de f en Pn.

Un inconveniente de este metodo de aproximacion es la dificultad del calculo

de P . Se sabe que existen n + 1 puntos z0 < z1 < · · · < zn en (x0, xn) tales

que

|f (zi)− P (zi)| = maxx∈[x0,xn]

|f − P |, i = 0, 1, · · · , n (7)

y

(f (zi)− P (zi))(f (zi+1)− P (zi+1)) < 0, i = 0, 1, · · · , n− 1. (8)

Y recıprocamente, si existen n+1 puntos zi en (x0, xn) que hacen valer las dos

condiciones anteriores, entonces P es una mejor aproximacion uniforme de f

en Pn. Pero esta caracterizacion no es nada constructiva. Por este motivo, es

usual el empleo de otros metodos de mejor aproximacion.

Aproximacion por p – normas

Sea p ≥ 1. Existe un unico polinomio P [p] en Pn, que llamamos mejor p –

aproximacion de f en Pn, que satisface∫ xn

x0

|f − P [p]| ≤∫ xn

x0

|f −Q| para todo Q ∈ Pn.

Para p > 1 se tiene la siguiente expresion, que caracteriza a P [p].∫ xn

x0

|f (x)−P [p](x)|p−1 sig (f (x)−P [p](x)) xi dx = 0, i = 0, 1, · · · , n. (9)

Para p = 1 la formula anterior es valida cuando P [p] coincide con f solo en un

conjunto de medida nula. Para p = 2, (9) se simplifica notablemente:∫ xn

x0

(f (x)− P [2](x)) xi dx = 0, i = 0, 1, · · · , n.

Page 24: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 24

De aquı, si se escribe

P [2](x) = a0[2] + a1[2]x + · · · + an[2]xn,

la linealidad de la integral nos permite obtener una expresion explıcita para los

coeficientes a0[2], a1[2], · · · , an[2] resolviendo el siguiente sistema lineal de n+1

ecuaciones con n + 1 incognitas:

a0[2]

∫ xn

x0

xi dx+a1[2]

∫ xn

x0

xi+1 dx+· · ·+an[2]

∫ xn

x0

xi+n dx =

∫ xn

x0

f (x) xi dx,

i = 0, 1, · · · , n. Por esta relativa facilidad de resolucion, este metodo, llamado

aproximacion por mınimos cuadrados, esta muy difundido en las aplicaciones.

Mejor aproximacion e interpolacion

Es un hecho logico que un polinomio P de mejor aproximacion de una funcion

f sea tambien un polinomio interpolador de f , es decir, f−P debe anularse en

algunos puntos del intervalo [x0, xn]. En el caso de la mejor aproximacion uni-

forme, es una consecuencia inmediata de (7) y (8) (y del Teorema de Bolzano)

que f − P se anula en, al menos, n + 1 puntos distintos del intervalo (x0, xn).

En el caso de la mejor p – aproximacion, este hecho es tambien cierto.

En efecto, si p > 1 observar que (9) es equivalente a∫ xn

x0

|f (x)− P [p](x)|p−1 sig (f (x)− P [p](x)) Q(x) dx = 0 (10)

para todo Q ∈ Pn. Si hubiera exactamente r puntos ci en (x0, xn) tales que

f (ci)− P [p](ci) = 0, con r ≤ n, entonces Q(x) = (x− c1)(x− c2) · · · (x− cr)

esta en Pn y satisface que

sig (f (x)− P [p](x))Q(x) > 0

para todo x en [x0, xn] distinto de cualquier ci, o bien

sig (f (x)− P [p](x))Q(x) < 0

para todo x en [x0, xn] distinto de cualquier ci. Esto contradice (10).

Page 25: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

1 Interpolacion y Aproximacion 25

Si p = 1 y f −P [1] no se anula en un conjunto de medida positiva, entonces

el argumento anterior es aplicable tambien aquı. Por lo tanto, en cualquier caso

f − P [1] se anula en al menos n + 1 puntos distintos del intervalo (x0, xn).

Se finaliza esta unidad con una observacion. Si f es una funcion n – veces

diferenciable en el intervalo [x0, xn], entonces Pn, el polinomio de Taylor de f de

grado n, desarrollado en un punto c ∈ [x0, xn], es tambien un polinomio inter-

polador de f de orden n+1. Pierde su capacidad de interpolar en n+1 puntos

distintos a cambio de coincidir en c con f en sus derivadas de orden 0, 1, · · · , n.

Es decir, c es un cero de multiplicidad, u orden, n + 1. Esta propiedad mas

debil de interpolacon puede conseguirse, a su vez, con una mınima condicion de

aproximacion para un polinomio P , muy razonable de pedir. Es la siguiente:

No debe existir ningun Q en Pn, distinto de P , que satisfaga

|f (x)−Q(x)| ≤ |f (x)− P (x)| para todo x ∈ [x0, xn].

En efecto, puede probarse que la propiedad anterior equivale a que f−P tenga

n + 1 ceros, pero no necesariamente distintos, sino contando su multiplicidad.

¿Y si la funcion f es solo continua? En este caso la equivalencia anterior es

tambien valida con una adecuada definicion de multiplicidad de un cero para

una funcion continua. Los detalles de esta demostracion pueden verse en [5].

Cabe destacar que tanto el polinomio de mejor aproximacion uniforme, como

el de mejor p – aproximacion, cumplen con esa propiedad.

Page 26: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas

En esta unidad veremos metodos aproximados para calcular derivadas e inte-

grales definidas de funciones. En general, puede decirse que esto se hace nece-

sario cuando solo se conoce una expresion empırica, o parcial, de la funcion, o

bien cuando el proceso exacto de derivacion o integracion se vuelve, por algun

motivo, complicado. Los metodos aproximados se basan, en principio, en la

interpolacion de la correspondiente funcion, tema visto en la anterior unidad.

2.1 Derivacion numerica

Aquı el problema es el siguiente. Dada una funcion f , derivable en el intervalo

[x0, xn], n ∈ N, y conociendo de f solo los valores yj = f (xj) que toma en los

n + 1 puntos

x0 < x1 < · · · < xn,

debemos aproximar el valor de f ′(xi) para algun i = 0, 1, · · · , n. Como es lo

usual en estos casos, conviene estimar una cota del error que se comete.

El metodo mas simple y directo consiste en hallar Pn, el unico polinomio en

Pn, interpolador de f en los puntos x0, x1, · · · , xn, y estimar f ′(xi) mediante

P ′n(xi). Si se supone que f es n + 1 – veces diferenciable, recordemos que

f (x) = Pn(x) + η(x),

donde η(x) =f (n+1)(c(x))

(n + 1)!

n∏j=0

(x− xj), con x0 < c(x) < xn. Luego

f ′(xi) = P ′n(xi) + η′(xi),

donde η′(xi) =f (n+1)(c(xi))

(n + 1)!

j 6=i

(xi − xj). A raız de la presencia de la pro-

ductoria en la expresion del error, tenemos que la cota del error es mayor para

aquellos puntos xi que ocupan una posicion extrema en el intervalo [x0, xn].

Esto es logico, dado que la derivada depende del comportamiento de f tanto

26

Page 27: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 27

a la derecha como a la izquierda de xi. Por lo tanto es conveniente tener la

misma cantidad de informacion de f a ambos lados de xi.

Para comprobar lo que se esta diciendo conviene volver al ejemplo de Runge

y a la Figura 1, que muestra el polinomio interpolador P10 para 11 puntos

equidistantes y para datos provenientes de la funcion f : [−5, 5] 7→ R, f (x) =1

x2+1. Para este ejemplo, en la figura siguiente vemos las graficas de f ′, en rojo,

y de P ′10, en azul.

Clear["Global`*"]

For[j = 0, j <= 10, j = j + 1, x[j] = -5 + j];

f[x−] = 1/(x2 + 1);

t = Table[{x[j], f[x[j]]}, {j, 0, 10}];

p[x−] = InterpolatingPolynomial[t, x];

Plot[{f ’[x], p’[x]}, {x, -5, 5}, PlotRange −> {-5, 5},

PlotStyle −> {Hue[0], Hue[.7]}, AxesOrigin −> {-5, -5}, AspectRatio −> 1]

-4 -2 0 2 4

-4

-2

0

2

4

Figura 16

Se observa que hay zonas en los extremos del intervalo donde la diferencia entre

f y P10 es notable. Se deduce que si el objetivo es evaluar f ′ en un punto xi

Page 28: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 28

situado en una zona extrema del intervalo, tendremos que elegir los puntos

xj adecuadamente de modo que xi quede en una posicion central respecto de

ellos. Pero este procedimiento puede no ser posible en algunas situaciones, y

aun siendo posible, obliga a cambiar los puntos xj segun el valor de xi. En estos

casos, el metodo que veremos a continuacion funciona mejor, en el sentido de

que el error es homogeneo en todo el intervalo [x0, xn], y por tanto permite

dejar fijos los puntos de interpolacion.

Se trata de emplear el spline interpolante cuadratico S2, con un nodo inter-

medio, construido en la Seccion 1.2. Como muestra la desigualdad de (5), S ′2converge uniformemente a f ′ en [x0, xn]. De esta manera, aproximaremos f ′(x)

mediante S ′2(x) para cualquier x en [x0, xn]. Para el mismo ejemplo anterior,

la siguiente figura muestra a f ′, en rojo, y a S ′2, en azul.

-4 -2 0 2 4

-0.75

-0.5

-0.25

0

0.25

0.5

0.75

Figura 17

2.2 Integracion numerica

En esta seccion veremos metodos aproximados para calcular∫ xn

x0

f (x) dx.

Page 29: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 29

Es necesario aplicar un metodo aproximado cada vez que el procedimiento

exacto, mediante la regla de Barrow, no funciona. A su vez, esto puede deberse

a las siguientes causas:

• No tenemos informacion completa del integrando f . Por ejemplo, podemos

conocer de f solo una tabla de valores.

• Aun conociendo la expresion analıtica de f , puede ser muy complicado,

sino imposible, obtener una primitiva de f que permita la aplicacion de la

regla de Barrow.

Como ocurre cada vez que se emplean metodos aproximados, es muy conve-

niente tener una estimacion del error que se comete. Como en el caso de la

derivacion numerica, vamos a suponer que conocemos de f una tabla de valores

yj = f (xj), x0 < x1 < · · ·xn.

Integracion de funciones interpolantes

Una primera regla de integracion aproximada consiste en integrar una funcion

interpolante de f en los puntos xj. Por ejemplo, la integracion del spline

interpolante S1, introducido en la Seccion 1.2, conocida como regla del trapecio.

Se tiene que∫ xn

x0

S1 =

n∑j=1

∫ xj

xj−1

S1 =1

2

n∑j=1

(xj − xj−1)(yj−1 + yj).

Si ahora suponemos que xj − xj−1 = h para todo j = 1, 2, · · · , n, entonces

queda ∫ xn

x0

S1 =h

2(y0 + 2y1 + 2y2 + · · · + 2yn−1 + yn).

Para estimar el error, observar que restringido en cada intervalo [xj−1, xj], S1

es el unico polinomio interpolante de f en P1. Por tanto se tiene (ver primera

pagina de esta unidad)

f (x) = S1(x) +f ′′(c(x))

2(x− xj−1)(x− xj),

Page 30: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 30

donde xj−1 < c(x) < xj. Luego∫ xj

xj−1

f =

∫ xj

xj−1

S1 +

∫ xj

xj−1

f ′′(c(x))

2(x− xj−1)(x− xj).

Como (x− xj−1)(x− xj) no cambia de signo en [xj−1, xj], se deduce que∣∣∣∣∣∫ xj

xj−1

f ′′(c(x))

2(x− xj−1)(x− xj)

∣∣∣∣∣ ≤‖f ′′‖

2

∣∣∣∣∣∫ xj

xj−1

(x− xj−1)(x− xj)

∣∣∣∣∣

=‖f ′′‖

2

(xj − xj−1)3

6=‖f ′′‖h3

12.

Sumando estas estimaciones sobre los n intervalos [xj−1, xj], se concluye que∣∣∣∣∫ xn

x0

f −∫ xn

x0

S1

∣∣∣∣ ≤n‖f ′′‖h3

12=‖f ′′‖h2(xn − x0)

12.

La cota del error de esta regla de integracion es del orden de h2.

Regla de Simpson

Consiste en considerar tres puntos consecutivos xj−1, xj, xj+1 y calcular el

(unico) polinomio interpolante de f en P2. De esta manera, comenzamos con

x0, x1, x2, seguimos con x2, x3, x4, y ası sucesivamente hasta xn−2, xn−1, xn.

Para evitar una superposicion de intervalos, es necesario y suficiente que n sea

par, es decir, tener un numero impar de puntos. Se construye ası un spline

interpolante de f en [x0, xn], digamos T2, compuesto por polinomios de grado

2, y se estima∫ xn

x0f mediante

∫ xn

x0

T2 =

∫ x2

x0

T2 +

∫ x4

x2

T2 + · · · +∫ xn

xn−2

T2.

Observar que en la suma de integrales de arriba hay n/2 sumandos. Calculamos

ahora, genericamente, uno cualquiera de ellos. Lo hacemos con Mathematica,

para el primero de ellos, suponiendo que x1 = x0 + h y x2 = x0 + 2h.

Integrate[InterpolatingPolynomial[{{x0, y0}, {x0 + h, y1}, {x0 + 2h, y2}}, x], {x, x0, x0 + 2h}]

Page 31: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 31

Se obtiene ∫ x2

x0

T2 =h

3(y0 + 4y1 + y2).

Luego, si suponemos que xj − xj−1 = h para j = 1, 2, · · · , n, sigue que∫ xn

x0

T2 =h

3(y0 + 4y1 + 2y2 + 4y3 + 2y4 + · · · + 2yn−2 + 4yn−1 + yn).

Estudiemos ahora el error que se produce con la regla de Simpson. Se tiene

que ∫ x2

x0

f =

∫ x2

x0

T2 +

∫ x2

x0

f ′′′(c(x))

6(x− x0)(x− x1)(x− x2).

En principio, no es difıcil probar que de esta igualdad se consigue una cota

de error del orden de h3. Sin embargo, cuando f es 4 veces continuamente

diferenciable es posible afinar este orden y obtener una cota de error del orden

de h4. A continuacion explicamos la forma de lograr esto.

Vamos a considerar el (unico) polinomio interpolante de f en P3, digamos T3,

que coincide con f en x0, x1 y x2, y ademas coincide con f ′ en x1. Probaremos

mas adelante que∫ x2

x0

f =

∫ x2

x0

T3 +

∫ x2

x0

f (4)(c(x))

24(x− x0)(x− x1)

2(x− x2). (11)

Calculemos con Mathematica la primera integral del lado derecho de (11).

Integrate[InterpolatingPolynomial[{{x0, y0}, {x0 + h, {y1, y1prima}}, {x0 + 2h, y2}}, x], {x, x0, x0 + 2h}]

¡Sorpresa! El resultado no depende de y1prima = f ′(x1) y coincide exactamente

con ∫ x2

x0

T2 =h

3(y0 + 4y1 + y2).

La importante consecuencia de esta coincidencia es que∫ xn

x0T2 produce el mismo

error que∫ xn

x0T3. Entonces estimemos una cota de este error a partir de la

segunda integral del lado derecho de (11). Como (x− x0)(x− x1)2(x− x2) no

Page 32: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 32

cambia de signo, se deduce que∣∣∣∣∫ x2

x0

f (4)(c(x))

24(x− x0)(x− x1)

2(x− x2)

∣∣∣∣

≤ ‖f (4)‖24

∣∣∣∣∫ x2

x0

(x− x0)(x− x1)2(x− x2)

∣∣∣∣ =‖f (4)‖

24

4h5

15=‖f (4)‖h5

90.

Sumando estas estimaciones sobre los n/2 intervalos

[x0, x2], [x2, x4], · · · , [xn−2, xn],

se concluye que∣∣∣∣∫ xn

x0

f −∫ xn

x0

T2

∣∣∣∣ ≤‖f (4)‖h4(xn − x0)

180.

La cota del error es en efecto del orden de h4. La obtencion de este orden,

superior al esperado y conseguido sin esfuerzo adicional sobre la regla del

trapecio, hace que la regla de Simpson sea muy empleada en las aplicaciones.

Por otra parte, no hay que olvidar que aquı hace falta la continuidad de la

cuarta derivada y — requisito de menor importancia — el numero de puntos

de interpolacion debe ser impar.

La demostracion de la formula (11) es similar a la obtencion de la estimacion

del error del polinomio interpolador Pn, al comienzo de la Seccion 1.1. Para

cada x en [x0, x2] distinto de x0, de x1 y de x2, consideremos la funcion F3 :

[x0, x2] 7→ R, dada por

F3(t) = f (t)− T3(t)− f (x)− T3(x)

(x− x0)(x− x1)2(x− x2)(t− x0)(t− x1)

2(t− x2).

Tenemos que F3(x) = F3(x0) = F3(x1) = F ′3(x1) = F3(x2) = 0. Luego F ′

3 se

anula en x1 y ademas, por el Teorema de Rolle, en otros tres puntos distintos

entre sı. De aquı, y por el mismo motivo, F ′′3 se anula en tres puntos, F ′′′

3 en

dos, y por ultimo F(4)3 se anula en un punto c(x), x0 < c(x) < x2. Si ahora

derivamos cuatro veces la expresion de arriba de F3(t), queda

F(4)3 (t) = f (4)(t)− f (x)− T3(x)

(x− x0)(x− x1)2(x− x2)24.

Page 33: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 33

Evaluando en t = c(x), sigue que

0 = f (4)(c(x))− f (x)− T3(x)

(x− x0)(x− x1)2(x− x2)24,

y usando la linealidad de la integral se deduce inmediatamente (11).

Ejemplo

Consideremos la funcion f : [−1, 1] 7→ R, f (x) = 11+x2 . En este caso

es posible usar la regla de Barrow y calcular exactamente∫ 1

−1 f mediante

2 arctg (1) = π/2. No obstante, aplicaremos las reglas del trapecio y Simp-

son para estimar analıtica y graficamente los errores que se cometen con ambos

metodos. Como puntos de interpolacion, usamos cinco puntos equidistantes,

con x0 = −1 y x4 = 1. Se tiene que∫ 1

−1

S1 = 1, 55 y

∫ 1

−1

T2 = 1, 56667.

Por otra parte,∫ 1

−1 f ∼= 1, 57080, con cinco decimales exactos. En las figuras 18

y 19 se muestra la grafica de f , en rojo, y ademas, respectivamente, las graficas

de S1 y T2, en azul.

f[x−] = 1/(1 + x2);

tp = Table[{PointSize[.01], Point[{i, f[i]}]}, {i, -1, 1, .5}];

s1 = Interpolation[Table[{i, f[i]}, {i, -1, 1, .5}], InterpolationOrder −> 1];

Show[Plot[f[x], {x, -1, 1}, DisplayFunction −> Identity, PlotStyle −> Hue[0]],

Plot[s1[x], {x, -1, 1}, DisplayFunction −> Identity, PlotStyle −> Hue[.7]],

DisplayFunction −> $DisplayFunction, AxesOrigin −> {0, 0.5},

Prolog −> tp]

Page 34: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 34

-1 -0.5 0.5 1

0.6

0.7

0.8

0.9

1

Figura 18

f[x−] = 1/(1 + x2);

tp = Table[{PointSize[.01], Point[{i, f[i]}]}, {i, -1, 1, .5}];

t21[x−] = InterpolatingPolynomial[Table[{i, f[i]}, {i, -1, 0, .5}], x];

t22[x−] = InterpolatingPolynomial[Table[{i, f[i]}, {i, 0, 1, .5}], x];

t2[x−] = Which[-1 <= x <= 0, t21[x], 0 <= x <= 1, t22[x]];

Show[Plot[f[x], {x, -1, 1}, DisplayFunction −> Identity, PlotStyle −> Hue[0]], Plot[t2[x], {x, -1, 1},

DisplayFunction −> Identity, PlotStyle −> Hue[.7]], DisplayFunction −> $DisplayFunction, AxesOrigin −>

{0, 0.5}, Prolog −> tp]

-1 -0.5 0.5 1

0.6

0.7

0.8

0.9

1

Figura 19

Page 35: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 35

Formulas de cuadratura

Las dos reglas vistas en el anterior apartado, la del trapecio y la de Simpson, se

basan en aproximar la funcion f mediante un spline interpolante. Es un hecho

cierto que si este interpolante esta proximo a f , entonces tambien la integral

definida del interpolante estara cerca de la integral definida de la funcion. Pero

la afirmacion recıproca no es en general verdadera. En efecto, por motivo de

compensacion de areas puede ocurrir que dos integrales definidas de sendas fun-

ciones, muy distantes entre sı, tengan valores proximos, o incluso sean iguales.

Este hecho tiene que ver, precisamente, con la situacion que se presenta en la

regla de Simpson, a saber, que a pesar de que estamos aproximando f por

trozos de polinomios en P2, el error que se comete depende directamente de

f (4), y por tanto la regla es exacta si f es un polinomio en P3. Comprobemos

esto con un sencillo ejemplo. Suponiendo que quisieramos aproximar∫ 1

−1

f (x) dx, f (x) = (x + 1)x(x− 1),

mediante la regla de Simpson basada en los puntos −1, 0 y 1, tendrıamos que

T2, en este caso en P2, es el polinomio nulo, que no puede considerarse una

buena aproximacion de f . Sin embargo,∫ 1

−1

T2 =

∫ 1

−1

(x + 1)x(x− 1) dx = 0.

Esta discusion muestra que los fundamentos de las reglas de cuadratura,

nombre con el que se conoce usualmente a los metodos de integracion nume-

rica, no descansan exclusivamente en la busqueda de una mejor aproximacion

de la funcion f , por lo que es un tema que merece una atencion independiente

de esa cuestion. En este aspecto, cabe destacar que la teorıa de cuadratura

numerica tiene un desarrollo importante ya a partir de la segunda mitad del

siglo XVII, con observaciones debidas a Isaac Newton, y se mantiene hasta el

presente.

Las formulas deducidas de las reglas del trapecio y de Simpson tienen la

Page 36: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 36

forma siguiente: ∫ xn

x0

f =

n∑j=0

wjf (xj) + en(f ),

donde los pesos wj son numeros que no dependen de f . Es posible entonces

pensar en darle a esta formula un caracter mas general. Mas precisamente,

vamos a considerar la expresion∫ b

a

f =

n∑j=0

wjf (xj) + en(f ), (12)

donde ahora

a ≤ x0 < x1 < · · · < xn ≤ b,

y donde los pesos wj, que no dependeran de f , deben ser elegidos de manera

que (12) garantice una buena aproximacion de∫ b

a f . Es obvio que esta eleccion

debe obedecer a algun criterio que fijemos y que nos parezca razonable. Por

ejemplo, el criterio de que la formula (12) sea exacta, es decir, en(f ) = 0,

cuando f es cualquier polinomio en Pn. Recordemos la forma de Lagrange

del unico polinomio interpolador de una funcion f , digamos Pn, en los puntos

x0 < x1 < · · · < xn.

Pn =

n∑j=0

f (xj)Lj(x),

donde Lj(x) = Lj(x; x0, x1, · · · , xn) =

n∏i=0i6=j

x− xi

xj − xi. Cuando f es un polinomio

en Pn, coincide con su polinomio interpolador. Luego, en este caso,∫ b

a

f =

∫ b

a

Pn =

n∑j=0

wjf (xj) =

n∑j=0

wjPn(xj), (13)

con

wj = wj(a, x0, x1, · · · , xn, b) =

∫ b

a

Lj(x) dx. (14)

Se desprende de aquı que cuando f es un polinomio en Pn, la formula (12)

es exacta si los pesos estan dados por (14). Recıprocamente, si (12) es exacta

Page 37: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 37

cuando f es un polinomio en Pn, entonces si aplicamos (13) a cada uno de

los n + 1 polinomios Lj(x), j = 0, 1, · · · , n, se deduce facilmente (14). En

conclusion, la formula (12) sera exacta para cualquier f en Pn si y solo si los

pesos son los dados por (14).

Formula de Newton – Cotes

La formula de Newton – Cotes es la estimacion de∫ b

a f mediante la formula

(12), con los pesos wj dados por (14). Por la segunda igualdad en (13), no es

por tanto otra cosa que la estimacion de∫ b

a f mediante∫ b

a Pn, la integral del

unico polinomio interpolador en Pn de la funcion f en los puntos x0, x1, · · · , xn.

Cuando a = x0, b = xn y los puntos xj estan situados en forma equidis-

tante, el programa Mathematica nos permite hallar, para cada n, el valor de

w0, w1 · · · , wn, ası como una cota del error en(f ). Para ello debe cargarse el

siguiente paquete.

<<NumericalMath`NewtonCotes`

Por ejemplo, el siguiente comando obtiene la 5-upla (w0, w1, w2, w3, w4) para

n + 1 = 5.

NewtonCotesWeights[5, x0, x4]

Ellos sonx4 − x0

90(7, 32, 12, 32, 7),

de modo que∫ x4

x0

P4 =x4 − x0

90(7P4(x0) + 32P4(x1) + 12P4(x2) + 32P4(x3) + 7P4(x4)).

La cota de error es

Simplify[NewtonCotesError[5, f, x0, x4]]

(x4 − x0)7‖f (6)‖

1935360=

8h7‖f (6)‖945

,

Page 38: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 38

donde h = x1 − x0 = x4−x04 .

Formula de Gauss

En realidad, la importancia de la regla de cuadratura dada por la formula

(12) no ha surgido aun hasta este punto. En efecto, hasta ahora la regla solo

nos garantiza que (12) es exacta para funciones f en Pn, lo que equivale, como

hemos visto, a interpolar f mediante polinomios en Pn. Ahora bien, dado que

tenemos libertad para fijar la posicion de los n+1 puntos xj, cabe preguntarse si

podremos usar esta libertad para conseguir que (12) sea exacta para polinomios

de grado mas alto que n. Veremos a continuacion que la respuesta es afirmativa.

Concretamente, es posible hallar una determinada posicion de los puntos xj de

manera que (12), con pesos wj dados por (14), sea exacta para funciones f en

P2n+1. La formula ası obtenida es la llamada regla de cuadratura de Gauss.

Ella se fundamenta en el siguiente teorema. Sea

Gn+1(x) = Gn+1(x; x0, x1, · · · , xn) =

n∏j=0

(x− xj).

Teorema de Gauss. Dado un entero k, 1 ≤ k ≤ n + 1, la formula de

cuadratura (12) es exacta para cualquier funcion f en Pn+k si y solo si

valen las dos siguientes condiciones:

(a) Los pesos wj vienen dados por (14).

(b) La funcion Gn+1(x) satisface que∫ b

a

Gn+1(x)Qk−1(x) dx = 0 para todo Qk−1 ∈ Pk−1.

Se puede probar que siempre existe una determinada posicion de los puntos

x0, x1, · · · , xn de modo que (b) sea valido. En particular, para n par, k = 1

y una posicion equidistante de los puntos xj, con x0 = a y xn = b, vale que

Gn+1 es una funcion impar respecto del punto medio xn/2 = x0+xn2 , por lo que

∫ xn

x0

Gn+1(x) dx = 0.

Page 39: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 39

Se deduce que en este caso la formula (12), con pesos dados por (14), es exacta

para f en Pn+1. Es decir, se gana un orden de exactitud. Esto es lo que

ocurre, por ejemplo, en la regla de Simpson, que — recordemos — se basa en

la interpolacion de f en tres puntos equidistantes mediante polinomios en P2.

La formula de cuadratura de Gauss resulta de aplicar este teorema para

k = n + 1. En este caso destacamos las siguientes observaciones:

• Si aplicamos (b) del Teorema de Gauss a Qn = 1, x, x2, · · · , xn, se obtiene

un sistema lineal de n+1 ecuaciones con las n+1 incognitas x0, x1, · · · , xn.

Basandose en propiedades de polinomios ortogonales, se puede probar que

en efecto la solucion se compone de n + 1 numeros distintos contenidos en

el intervalo abierto (a, b). Reordenando estos numeros si es necesario se

obtiene que

a < x0 < x1 < · · · < xn < b.

• Los pesos w0, w1, · · · , wn, obtenidos segun (14) con los puntos de interpo-

lacion anteriores, son todos positivos. Esto puede demostrarse ası:

0 <

∫ b

a

L2j =

n∑

k=0

wkL2j(xk) = wj,

donde la desigualdad es evidente, la segunda igualdad sigue inmediata-

mente de la forma de L2j , y la primera igualdad es consecuencia de que L2

j

esta en P2n y de que (12) es exacta para polinomios en P2n+1.

• Si f es continua en [a, b], entonces en(f ) → 0 cuando n → ∞. Para

demostrar esto, notemos primero que aplicando (12) al polinomio unidad,

sigue que∑n

j=0 wj = b − a. Por el Teorema de Weierstrass, existe una

sucesion de polinomios Qn ∈ Pn tales que

‖f −Qn‖ → 0 para n →∞.

Como en(Qn) = 0, se tiene que

|en(f )| = |en(f )− en(Qn)| = |en(f −Qn)|

Page 40: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 40

=

∣∣∣∣∣∣

∫ b

a

(f (x)−Qn(x)) dx−n∑

j=0

wj(f (xj)−Qn(xj))

∣∣∣∣∣∣

≤∫ b

a

‖f −Qn‖ +

∣∣∣∣∣∣

n∑j=0

wj(f (xj)−Qn(xj))

∣∣∣∣∣∣

≤ (b− a)‖f −Qn‖ + ‖f −Qn‖n∑

j=0

wj

= 2(b− a)‖f −Qn‖.Esto termina la demostracion. Observar que en la segunda desigualdad

se ha usado que los pesos wj son todos positivos. Esta prueba no serıa

aplicable para la formula de Newton – Cotes, donde esa propiedad podrıa

no darse.

Con Mathematica es posible obtener los puntos de interpolacion xj y los

pesos wj para la formula de Gauss, ademas de una estimacion del error en(f ).

Para ello debe cargarse el siguiente paquete.

<<NumericalMath`GaussianQuadrature`

Por ejemplo, aquı tenemos los cinco pares (xj, wj) para el intervalo [a, b] y

n + 1 = 5.

GaussianQuadratureWeights[5, a, b]

(0, 953090a + 0, 046910b , 0, 118463(b− a))

(0, 769235a + 0, 230765b , 0, 239314(b− a))

(a/2 + b/2 , 0, 284444(b− a))

(0, 230765a + 0, 769235b , 0, 239314(b− a))

(0, 046910a + 0, 953090b , 0, 118463(b− a)).

Se observa que xj es una combinacion convexa de a y b. Por errores de redondeo,

la suma de todos los pesos no da b−a, como debiera ser, sino 0, 999998(b−a).

Page 41: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 41

La cota del error es

GaussianQuadratureError[5, f, a, b]

3, 944965× 10−13(b− a)11‖f (10)‖.

Ejemplo

Vamos a calcular ∫ 5

−5

f (x) dx,

con f (x) =1

1 + x2, usando los cuatro metodos vistos en esta unidad, todos

ellos para n = 20. Sabemos que el valor exacto de esa integral es

2 arctg 5 ∼= 2, 7468,

con cuatro decimales exactos.

Regla del trapecio

f[x−] = 1/(1 + x2);

intp = Interpolation[Table[{i, f[i]}, {i, -5, 5, .5}], InterpolationOrder −> 1];

Integrate[intp[x], {x, -5, 5}]

2, 7462

Regla de Simpson

f[x−] = 1/(1 + x2);

For[i = 1, i <= 10, i = i + 1, t2[i][x−] = InterpolatingPolynomial[Table[{j, f[j]}, {j, i - 6, i - 5, .5}], x]];

For[i = 1, i <= 10, i = i + 1, integral[i] = Integrate[t2[i][x], {x, i - 6, i - 5}]];

Sum[integral[i], {i, 1, 10}]

2, 7429

Newton – Cotes (puntos de interpolacion equidistantes)

Page 42: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 42

Integrate[InterpolatingPolynomial[Table[{i, f[i]}, {i, -5, 5, .5}], x], {x, -5, 5}]

−26, 8496

El error es muy grande. Nos convencemos cuando observamos la grafica del

polinomio interpolador P20

intnewton[x−] = InterpolatingPolynomial[Table[{i, f[i]}, {i, -5, 5, .5}], x];

Plot[intnewton[x], {x, -5, 5}, PlotRange −> {-60, 5}]

-4 -2 2 4

-60

-50

-40

-30

-20

-10

Figura 20

Gauss

<<NumericalMath`GaussianQuadrature`;

f[x−] = 1/(1 + x2);

xjywj = GaussianQuadratureWeights[21, -5, 5];

Sum[xjywj[[i]][[2]] f[xjywj[[i]][[1]]], {i, 1, 21}]

2, 7480

Aquı tenemos la grafica del polinomio interpolador de f en P20, con puntos de

interpolacion basados en la regla de cuadratura de Gauss.

intgauss[x− ] = InterpolatingPolynomial[Table[{xjywj[[i]][[1]], f[xjywj[[i]][[1]]]}, {i, 1, 21}], x];

datos = Table[{PointSize[.008], Point[{xjywj[[i]][[1]], f[xjywj[[i]][[1]]]}]}, {i, 1, 21}];

Plot[intgauss[x], {x, -5, 5}, PlotRange −> {0, 1.01}, Prolog −> datos]

Page 43: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

2 Derivacion e Integracion numericas 43

-4 -2 2 4

0.2

0.4

0.6

0.8

1

Figura 21

Por ultimo, cabe mencionar que Mathematica utiliza para el calculo de

integrales definidas que no pueden resolverse exactamente, es decir, mediante

el comando NIntegrate, una variante mejorada de la regla de cuadratura de

Gauss.

Page 44: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales

3.1 Ecuaciones en una variable

Si f es una funcion continua definida en un intervalo de la recta, se presenta

en muchas situaciones la cuestion de encontrar ceros de f , es decir, valores de

x que cumplan con la ecuacion

f (x) = 0.

De un tal x se dice tambien que es una raız de esa ecuacion. Si f es un polinomio

en P4, entonces existen formulas exactas para la obtencion de todas las raıces

de la ecuacion. En todo otro caso esto no es generalmente ası, por lo que habra

que recurrir a tecnicas numericas de calculo. Todos estos metodos hallan un

cero de f por aproximacion, en el siguiente sentido. La reiterada aplicacion del

procedimiento encuentra una sucesion {cn}∞n=0 tal que, bien f (cn) = 0 para

algun n, bien cn → c cuando n → ∞ y f (c) = 0. Se dice en este caso que el

metodo es convergente (a una raız). El metodo mas simple es el llamado de

biseccion. Tiene la ventaja de que siempre es convergente.

Metodo de biseccion

Se parte de un intervalo [a, b] donde f (a)f (b) < 0. El Teorema de Bolzano

asegura la existencia de una raız en (a, b). Ahora se evalua f (c0), c0 = a+b2 .

Si f (c0) 6= 0, entonces f (a)f (c0) < 0, o bien f (c0) f (b) < 0. En este caso,

(solo) uno de estos dos subintervalos de [a, b] reune las mismas condiciones de

este, lo que permite reiterar el procedimiento. O bien se encuentra una raız de

manera exacta en un numero finito de iteraciones, o se obtiene una sucesion de

intervalos encajados

[a, b] ⊃ [a1, b1] ⊃ · · · ⊃ [an, bn] ⊃ · · · ,de manera que [an, bn] contiene en su interior una raız y bn− an = (b− a)/2n,

n ∈ N. Por consiguiente, si cn =an + bn

2se deduce que cn → c y f (c) = 0.

44

Page 45: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 45

A continuacion se da un programa de este metodo usando Mathematica. Se

reitera el procedimiento n veces, donde n es la parte entera del numerolog b−a

tol

log 2,

de modo quean + bn

2difiere de un cero de f en menos de tol/2.

Clear["Global`*"];

f[x−] = Input[f[x]];

a = Input["a"; a]; b = Input["b"; b];

If[f[a] f[b] < 0, tol = Input["tol"; tol];

n = Ceiling[Log[(b - a)/tol]/Log[2]];

For[i = 0, i <= n, i = i + 1, c[i] = (a + b)/2;

If[f[c[i]] == 0, Print[{i+1, N[c[i]], N[f[c[i]]]}]; Break[ ]];

If[f[a] f[c[i]] < 0, b = c[i], a = c[i]]],

Print["entrada incorrecta"]; Print["f[a]=", N[f[a]]]; Print["f[b]=", N[f[b]]]];

If[f[c[n]]6= 0, Print[{n+1, N[(a + b)/2], N[f[(a + b)/2]]}]];

Orden de convergencia

Para cualquier metodo de aproximacion de raıces, si cn → c cuando n →∞ y

f (c) = 0, denotemos εn a una cota conocida del error |cn − c|, es decir,

|cn − c| ≤ εn para todo n ∈ N,

y tal que εn → 0 cuando n → ∞. Es conveniente estudiar el orden de esta

ultima convergencia. En efecto, supongamos que dos metodos, digamos A y B,

producen cotas de error εn y ε′n, respectivamente. Es razonable afirmar que el

metodo A es preferible al B si εn es mucho menor que ε′n para n grande. Ahora

bien, es conveniente tener un criterio intrınseco, basado exclusivamente en la

sucesion εn, que nos permita asegurar cuando un metodo puede ser preferible

a otro. Para clarificar las ideas, consideremos el metodo de biseccion. Aquı

tenemos que εn = (b− a)/2n. Luego, por un lado,

limn→∞

εn

1/2n= b− a,

Page 46: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 46

y por otro,

limn→∞

εn+1

εn= 1/2.

La primera de estas condiciones compara la convergencia a cero de εn con la

convergencia a cero de la sucesion 1/2n. Concretamente, estas dos convergencias

son del mismo orden. La segunda de ellas involucra solamente a la sucesion εn.

Ahora con generalidad, estas dos condiciones pueden extenderse de la siguiente

forma:

(i) limn→∞

εn

kn< ∞ para algun k, 0 < k < 1.

(ii) limn→∞

εn+1

εn= η, 0 < η < 1.

Si un metodo satisface siempre (ii), entonces se dice que el metodo tiene un

orden (al menos) lineal de convergencia a la raız. El agregado de ‘al menos’

obedece a que εn es una cota del error, no el error mismo.

Si vale (i) con un valor positivo del lımite, entonces es facil probar que

tambien vale (ii) con η = k. En cuanto a la implicacion recıproca, de-

mostraremos a continuacion que si vale (ii), entonces o se cumple (i) con k = η,

o bien limn→∞ εnkn = 0 para k > η. En efecto, para n ∈ N se tiene que

εn+1

εn= η + δn, lim

n→∞δn = 0.

Luego

εn+1 = εn(η + δn) = εn−1(η + δn−1)(η + δn) = · · · = ε1

n∏i=1

(η + δi).

De aquı,εn+1

kn+1=

ε1

k

n∏i=1

η + δi

k.

Si k = η, esta productoria puede converger o no para n → ∞, pero si k > η

entonces converge a cero, ya que los factores que se agregan a partir de un n

suficientemente grande son menores que un numero menor que 1. Esto termina

la demostracion.

Page 47: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 47

Podemos asegurar entonces que un orden lineal de convergencia implica que

εn tiende a cero con un orden igual o superior a la sucesion kn para algun k < 1.

Un orden de convergencia superior al lineal es el dado por la condicion

0 < limn→∞

εn+1

εpn

= γ < ∞, p > 1.

Se dice en este caso que el metodo converge con un orden p (cuadratico si p = 2,

cubico si p = 3). Aquı se tiene que

εn+1 = εpn(γ + δn) = εp2

n−1(γ + δn−1)p(γ + δn) = · · · = εpn

1

n∏i=1

(γ + δi)pn−i

.

Sea γ1 ≥ γ. Como γ1γp1γ

p2

1 · · · γpn−1

1 = γpn−1p−1

1 , sigue que

εpn

1

n∏i=1

(γ + δi)pn−i

=

(ε1γ

1p−11

)pn

γ1

p−11

n∏i=1

(γ + δi

γ1

)pn−i

.

Si γ1 = γ, esta productoria puede converger o no para n →∞, pero si γ1 > γ,

entonces tiende a cero. Como εn tiende a cero para n →∞, podemos suponer

sin perdida de generalidad que ε1γ1

p−11 < 1. Se concluye que un orden p de

convergencia implica que εn tiende a cero con un orden igual o superior a la

sucesion kpn

1 para un k1 < 1.

Comokpn

1

kn→ 0 para n →∞, (15)

se deduce que un metodo con orden p de convergencia dara posiblemente una

aproximacion mas rapida a la raız que un metodo con orden lineal de conver-

gencia. El termino ‘posiblemente’ se debe por un lado a que estamos estimando

cotas de error y no los propios errores de la aproximacion, y por otro lado a

que las dos sucesiones de cotas de error correspondientes a uno y otro metodo

pueden converger a cero con un orden superior al dado por las sucesiones de

(15).

Page 48: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 48

Metodo de la posicion falsa

Como en el metodo de biseccion, se parte de un intervalo [a, b], donde f (a)f (b)

< 0. Supongamos, sin perdida de generalidad, que f (a) < 0 < f (b). La raız de

la ecuacion se aproxima ahora por c0, el cero del polinomio en P1, interpolador

de f en a y b. Se tiene que

c0 = b− f (b)(b− a)

f (b)− f (a).

O bien c0 es una raız, o solo uno de los dos subintervalos en que queda parti-

cionado [a, b], a saber [a, c0] o [c0, b], posee las mismas condiciones que [a, b],

lo que permite continuar el mismo procedimiento inicial. De no encontrarse la

raız de manera exacta en un numero finito de iteraciones, se forma una sucesion

de intervalos encajados

[a, b] ⊃ [a1, b1] ⊃ · · · ⊃ [an, bn] ⊃ · · · ,y una sucesion cn, dada por

cn = an − f (an)(bn − an)

f (bn)− f (an)= bn − f (bn)(bn − an)

f (bn)− f (an). (16)

No es difıcil probar que esta sucesion converge siempre a un cero c de f

para n → ∞. En efecto, tenemos dos sucesiones convergentes, an y bn, la

primera de ellas creciente, y la segunda decreciente. Sean a∗ = limn→∞ an y

b∗ = limn→∞ bn. Como f (an) < 0 < f (bn), sigue que f (a∗) ≤ 0 ≤ f (b∗).Supongamos b∗ = a∗. De aquı, f (a∗) = f (b∗) = 0. Por otro lado, como

an < cn < bn, se deduce que c := limn→∞ cn = a∗ = b∗. Por lo tanto, en este

caso es f (c) = 0. Supongamos ahora b∗ > a∗. Para cada n = 0, 1, 2, · · ·, cn

coincide con an+1 o con bn+1. Por consiguiente, si cn coincide siempre con an+1

a partir de un n, entonces

c := limn→∞

cn = limn→∞

an = a∗.

Tomando lımites para n →∞ en ambos lados de la primera igualdad de (16),

se obtiene

0 = limn→∞

f (an)(bn − an)

f (bn)− f (an)= f (c)

b∗ − a∗

f (b∗)− f (a∗),

Page 49: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 49

donde b∗ − a∗ > 0 y f (b∗) > 0 ≥ f (a∗), lo que implica que

f (c) = 0.

Por ejemplo, esta situacion se da con la funcion de la siguiente figura.

a bc1c0 c2

Figura 22. Coincidencia permanente de cn con an+1.

A la misma conclusion se llega si cn coincide con bn+1 a partir de un n.

Queda por considerar el caso en que cn coincide con an+1 y con bn+1 para

infinitos valores de n. Bajo esta condicion, existen subsucesiones de cn de dos

tipos, a saber, subsucesiones de cn que son subsucesiones de an, y por tanto

convergen a a∗, y subsucesiones de cn que son subsucesiones de bn, y por tanto

convergen a b∗. Usando una subsucesion de cn del primer tipo en la primera

igualdad de (16) y tomando lımites se deduce que

limn→∞

f (an) = f (a∗) = 0.

Analogamente, usando tambien la segunda igualdad de (16), ası como una

subsucesion de cn del segundo tipo, y tomando lımites, se concluye que

limn→∞

f (bn) = f (b∗) = 0.

Por consiguiente, la sucesion

|f (a1)|, f (b1), |f (a2)|, f (b2), · · ·

Page 50: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 50

converge a cero. Vamos a probar ahora que esta sucesion tiene una subsucesion

estrictamente creciente, lo que produce una contradiccion. Operando en (16)

se obtiene que

f (bn)(cn − an) = f (an)(cn − bn) = |f (an)|(bn − cn) para todo n ∈ IN.

Consideremos un par an, bn tal que a∗ − an < b∗ − a∗, bn − b∗ < b∗ − a∗ y

ademas que cn coincida con an+1 (por lo tanto bn+1 coincide con bn). Como

cn − an < a∗ − an < b∗ − a∗ < bn − cn,

de la igualdad anterior se deduce que

f (bn) > |f (an)|.Por la hipotesis del caso que estamos considerando, habra algun bm, con m > n,

tal que cm coincide con bm+1 pero bm = bm−1 = · · · = bn. Como

bm − cm < bm − b∗ < bn − b∗ < b∗ − a∗ < cm − am,

aplicando otra vez la igualdad anterior resulta ahora que

|f (am)| > f (bm) = f (bn).

Este argumento es recurrente, es decir, puede ser continuado de una forma

analoga, obteniendose — como se habıa afirmado — una subsucesion estricta-

mente creciente de una sucesion convergente a cero, que es un hecho contra-

dictorio. Luego el caso que estamos considerando no es posible y ası queda

probado que el metodo de la posicion falsa es convergente.

En cuanto al orden de convergencia, puede obtenerse rapidamente una esti-

macion cuando se supone ademas que existe la derivada f ′ y f ′(c) 6= 0. Usando

que f (c) = 0, de (16) sigue que

cn − c = cn−1 − c− bn − an

f (bn)− f (an)(f (cn−1)− f (c)),

ya que cn−1 es an, o bien bn. Se deduce que

cn − c

cn−1 − c= 1− bn − an

f (bn)− f (an)

f (cn−1)− f (c)

cn−1 − c. (17)

Page 51: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 51

Si b∗ > a∗, entonces sigue de (17) que

limn→∞

cn − c

cn−1 − c= 1− b∗ − a∗

f (b∗)− f (a∗)f ′(c) = 1− f ′(c)

f ′(ξ),

donde a∗ < ξ < b∗ y en la ultima igualdad se ha usado el Teorema del valor

medio. Por lo visto en el analisis de la convergencia, en este caso cn debe

coincidir a partir de un n con an+1, o con bn+1, de forma excluyente. Por

consiguiente, el lımite anterior debe ser no negativo. Obviamente, no puede ser

mayor que 1. Cuando f ′(c)f ′(ξ) 6= 1, tendremos un orden lineal de convergencia, que

ahora sera exacto porque por cotas de error estamos considerando los propios

errores. Es facil ver que este es el caso cuando, por ejemplo, f ′ es positiva y

estrictamente creciente (o negativa y estrictamente decreciente si fuera f (a) >

0 > f (b)). En efecto, en este caso, cn−1 coincide siempre con an (ver Figura

22) y por tanto bn permanece fijo en b. Se concluye que a∗ = c, por lo que

ξ > c y f ′(ξ) > f ′(c).

Si b∗ = a∗, entonces

limn→∞

an = limn→∞

bn = c,

y se desprende de (17) que

limn→∞

cn − c

cn−1 − c= 1− 1

f ′(c)f ′(c) = 0.

Luego aquı tenemos un orden de convergencia superior al lineal.

Damos a continuacion un programa de calculo de aproximacion a una raız

por el metodo de la posicion falsa. Observese ahora el criterio de parada de las

iteraciones. Como el metodo converge, siempre se cumplira este criterio para

un n suficientemente grande.

Page 52: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 52

Clear["Global`*"]; f[x−] = Input[f[x]];

a = Input["a"; a]; b = Input["b"; b];

If[f[a] f[b] < 0, n = Input["n"; n]; tol = Input["tol"; tol]; c[-1] = 2a - b;

For[i = 0, i <= n, i = i + 1, c[i] = N[b - ((f[b](b - a))/(f[b] - f[a]))];

If[f[c[i]] == 0, Print[{i+1, c[i], f[c[i]]}]; Break[ ]];

If[f[a] f[c[i]] < 0, b = c[i], a = c[i]];

If[Abs[c[i] - c[i - 1]] < tol && Abs[f[c[i]]] < 10−6,

Print[{i+1, c[i], f[c[i]]}]; Break[ ]]];

If[f[c[n]]6= 0 && Or[Abs[c[n] - c[n-1]] >= tol, Abs[f[c[i]]] >= 10−6],

Print["sin exito"]],

Print["entrada incorrecta"]; Print["f[a]=", N[f[a]]]; Print["f[b]=", N[f[b]]]];

Metodo de la secante

Este metodo es similar al de la posicion falsa en el sentido de aproximarse a una

supuesta raız mediante una sucesion de ceros de polinomios en P1, interpolantes

en dos puntos determinados por la funcion f . La diferencia esta en que f

no necesita tener distinto signo en los extremos del correspondiente intervalo.

Elegidos los dos primeros valores de la sucesion aproximante, c0 y c1, se prosigue

aplicando la formula recurrente

cn+1 = cn − f (cn)(cn − cn−1)

f (cn)− f (cn−1), n = 1, 2, · · · . (18)

Con respecto al metodo de la posicion falsa, el metodo de la secante tiene

la desventaja de que hay que imponer condiciones mas restrictivas a la funcion

f para que el metodo sea convergente. Esto ya se hace evidente por la misma

forma de la ecuacion (18), donde el denominador de la fraccion podrıa anularse

para algun valor de n, impidiendo ası el calculo de cn+1. Pero por otro lado

tiene la ventaja de que, bajo ciertas condiciones sobre la funcion f , converge

con un orden superior al lineal. Para ver esto ultimo, supongamos que c es

un cero de f . Recordando (ver Seccion 8.2 de Matematicas) la definicion y

notacion para las diferencias divididas de la funcion f , y usando que f (c) = 0,

Page 53: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 53

de (18) sigue que

cn+1 − c = cn − c− f (cn)

f [cn−1, cn]

= (cn − c)

(1− f (cn)− f (c)

(cn − c)f [cn−1, cn]

)

= (cn − c)

(1− f [cn, c]

f [cn−1, cn]

)

= (cn − c)f [cn−1, cn]− f [cn, c]

f [cn−1, cn]

= (cn − c)(cn−1 − c)f [cn−1, cn, c]

f [cn−1, cn]. (19)

Si suponemos ademas que limn→∞ cn = c, que f tiene dos derivadas con-

tinuas y que f ′(c) 6= 0, se deduce que limn→∞ f [cn−1, cn, c] = f ′′(c)/2 y

limn→∞ f [cn−1, c] = f ′(c) 6= 0. Luego

limn→∞

cn+1 − c

cn − c= 0.

Se concluye que la convergencia es de un orden (exacto) superior al lineal.

Probaremos a continuacion que con las suposiciones dadas anteriormente para

f , puede asegurarse la convergencia de cn a c si se empieza el proceso con dos

valores iniciales c0 y c1 suficientemente proximos a c. Como f ′(c) 6= 0, existe

un intervalo I = [c− δ, c + δ], donde f ′ 6= 0. Es decir, f es en I estrictamente

creciente, o estrictamente decreciente. Como consecuencia, si elegimos c0 y c1

en I , c0 6= c1, entonces f (c0) 6= f (c1) y puede aplicarse (18) para calcular

c2. Ademas c2 6= c1, a menos que f (c1) = 0, en cuyo caso ya tendrıamos

la raız calculada exactamente. Si pudieramos asegurar que c2, ası como los

sucesivos cn para n > 2, caen en I , entonces — por el mismo motivo — o

f (cn−1) = 0 (raız calculada exactamente), o bien toda la sucesion cn puede

obtenerse mediante la formula (18). Veremos a continuacion que esa condicion

siempre puede conseguirse, si f tiene ademas dos derivadas continuas, cuando

δM < 1,

Page 54: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 54

donde

M =maxx∈I f ′′(x)

2 minx∈I f ′(x).

Bajo esta condicion, probaremos ademas que

limn→∞

cn = c

y daremos con precision el orden de la convergencia de una determinada sucesion

de cotas de error εn.

La demostracion de que la aplicacion reiterada de (18) conduce a la obtencion

de la raız usa un argumento inductivo. Supongamos que c0, c1, · · · , cn estan en

I y cn 6= cn−1, n ≥ 1. De (18) se deduce inmediatamente que f (cn) = 0, o

bien cn+1 6= cn. En el primer caso el proceso culmina con la obtencion exacta

de la raız. En el segundo caso probaremos que cn+1 esta en I . Usando ahora

que f [cn−1, cn, c] = f ′′(α)/2 y f [cn−1, cn] = f ′(β), α y β en I , sigue de (19)

que

|cn+1 − c| ≤ |cn − c||cn−1 − c|M ≤ δ2M < δ,

por lo que cn+1 esta efectivamente en I . Hasta aquı hemos demostrado que bien

se obtiene la raız de forma exacta mediante un numero finito de aplicaciones de

la formula (18), es decir, cn = c para algun n, bien se construye una sucesion

cn. En este ultimo caso probaremos que limn→∞

cn = c. En efecto, de (19) sigue

que

|cn+1 − c| ≤ |cn − c|δM, n = 1, 2, · · · ,que aplicado sucesivamente da

|cn − c| ≤ (δM)n−1|c1 − c|, n = 1, 2, · · · .Como δM < 1, se tiene que limn→∞(δM)n−1 = 0 y se deduce lo que se deseaba

probar.

Para analizar el orden de convergencia, escribamos

En = M |cn − c|, n = 0, 1, 2, · · ·y sea

E = max{E0, E1/p1 },

Page 55: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 55

donde p = 1+√

52 = 1, 61803..., que es el unico numero positivo que satisface

p2 = p + 1.

Probaremos ahora que

En ≤ Epn, n = 0, 1, 2, · · · . (20)

En efecto, esto es cierto para n = 0 y n = 1. Supongamos que es cierto para

n− 1 y n. De (19) se obtiene que

|cn+1 − c| ≤ |cn − c||cn−1 − c|M.

Multiplicando por M ambos lados de la igualdad anterior se deduce que

En+1 ≤ EnEn−1,

y usando la hipotesis inductiva y la propiedad del numero p sigue que

EnEn−1 ≤ EpnEpn−1

= Epn−1(p+1) = Epn−1p2= Epn+1

,

que prueba

En+1 ≤ Epn+1

y por lo tanto tambien (20). Como consecuencia de (20) se tiene que

|cn − c| =En

M≤ Epn

M=: εn.

Para i = 0, 1 vale que

Ei = M |ci − c| ≤ Mδ < 1.

Luego E < 1 y limn→∞ εn = 0. Ademas

εn+1

εpn

=Epn+1

/M

Epn+1/M p= M p−1.

Se concluye que la convergencia de las cotas de error εn es de orden p. Hemos

ası demostrado el siguiente

Page 56: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 56

Teorema de convergencia para el metodo de la secante Sea f una

funcion con segunda derivada continua, f (c) = 0 y f ′(c) 6= 0. Entonces

existe un δ > 0 tal que el metodo de la secante es convergente cuando

los valores iniciales c0 y c1 son elegidos en [c − δ, c + δ], y el orden de la

convergencia es al menos 1+√

52 .

A continuacion se da un programa para el metodo de la secante. Observar

que es mas corto que el programa para el metodo de la posicion falsa, ya que no

es necesario verificar el cambio de signo de f en los extremos de cada intervalo.

Clear["Global`*"]; f[x−] = Input[f[x]];

c[0] = Input[c[0]]; c[1] = Input[c[1]]; n = Input["n"; n];

tol = Input["tol"; tol];

For[i = 1, i <= n, i = i + 1,

c[i+1] = N[c[ i] - ((f[c[i]](c[i] - c[i - 1]))/(f[c[i]] - f[c[i - 1]]))];

If[f[c[i+1]] == 0, Print[{i, c[i+1], f[c[i+1]]}]; Break[ ]];

If[Abs[c[i+1] - c[i]] < tol && Abs[f[c[i+1]]] < 10−6,

Print[{i, c[i+1], f[c[i+1]]}]; Break[ ]]];

If[f[c[n+1]] 6= 0 && Or[Abs[c[n+1] - c[n]] >= tol, Abs[f[c[i+1]]] >= 10−6],

Print["sin exito"]];

Metodo de Newton

La formula que este metodo aplica para obtener la sucesion aproximante cn es

la siguiente:

cn+1 = cn − f (cn)

f ′(cn). (21)

En cada iteracion se aproxima el cero de f por el cero de la recta tangente

a la funcion f en cn. Como en el metodo de la secante, hay que imponer

restricciones a f para que el metodo sea convergente. Por empezar, ya la

misma formula (21) exige que exista la derivada f ′ y no se anule en cn. Pero

esto no basta. Para conseguir un resultado local de convergencia tambien hay

que pedir aquı que f tenga segunda derivada continua y ademas que f ′(c) 6= 0,

Page 57: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 57

donde c es el cero de f que se va a aproximar. Bajo estas suposiciones, veremos

que cuando el metodo es convergente el orden (exacto) de la convergencia es al

menos cuadratico. De (21) se obtiene que

cn+1 − c = cn − c− f (cn)− f (c)

f ′(cn)

= (cn − c)

(1− f [cn, c]

f [cn, cn]

)

= (cn − c)2f [cn, cn, c]

f [cn, cn].

Cuando limn→∞ cn = c se deduce que

limn→∞

cn+1 − c

(cn − c)2= lim

n→∞f [cn, cn, c]

f [cn, cn]=

f ′′(c)2f ′(c)

.

Luego el orden exacto de la convergencia es 2 cuando f ′′(c) 6= 0. Ahora pode-

mos enunciar el siguiente teorema, cuya demostracion no damos pues sigue las

mismas lıneas que las del teorema de convergencia para la secante.

Teorema de convergencia local para el metodo de Newton Sea f

una funcion con segunda derivada continua, f (c) = 0 y f ′(c) 6= 0. Entonces

existe un δ > 0 tal que el metodo de Newton es convergente cuando el valor

inicial c0 es elegido en [c − δ, c + δ], y el orden de la convergencia es al

menos cuadratico.

Observar que si la formula (21) produce una sucesion cn, convergente a c

cuando n →∞ , que cae dentro del dominio de f y f ′(c) 6= 0, entonces c debe

ser necesariamente un cero de f , pues tomando lımites queda

c = c− f (c)

f ′(c).

Cabe preguntarse entonces por condiciones sobre la funcion f que impliquen

las anteriores hipotesis. El siguiente teorema da una respuesta a esta cuestion.

Teorema de convergencia global para el metodo de Newton Sea f

una funcion definida en un intervalo [a, b], con segunda derivada continua.

Supongamos que f satisface las siguientes hipotesis:

Page 58: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 58

• f ′ no cambia de signo ni se anula en [a, b]

• f ′′ no cambia de signo en [a, b]

• Las dos rectas tangentes a f en a y en b tienen sus respectivos ceros

en [a, b].

Entonces el metodo de Newton es convergente y por lo tanto su orden de

convergencia es al menos cuadratico (exactamente cuadratico si f ′′ no se

anula en [a, b]).

La siguiente figura muestra lo que sucede en este caso para la funcion

f :

[−1

2, 1

]7→ R, f (x) = 3x + senx− ex.

-0.4 -0.2 0.2 0.4 0.6 0.8 1

-2.5

-2

-1.5

-1

-0.5

0.5

1

Figura 23. La funcion f y sus dos rectas tangentes en los extremos del intervalo.

Se observa que, cualquiera sea c0 en [−1/2, 1], los sucesivos cn estaran a la

izquierda del cero de f formando una sucesion monotona creciente, y por lo

tanto convergente al cero de f con orden exactamente cuadratico (f ′′ 6= 0 en

[−1/2, 1]).

Page 59: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 59

El siguiente programa aplica el metodo de Newton para resolver la ecuacion

3x + senx− ex = 0.

Clear["Global`*"]; f[x−] = 3x + Sin[x] - Ex;

c[0] = Input[c[0]]; n = Input["n"; n]; tol = Input["tol"; tol];

For[i = 1, i <= n, i = i + 1, c[i] = N[c[i - 1] - f[c[i - 1]]/f’[c[i - 1]]];

If[f[c[i]] == 0, Print[{i, c[i], f[c[i]]}]; Break[ ]];

If[Abs[c[i] - c[i - 1]] < tol && Abs[f[c[i]]] < 10−6,

Print[{i, c[i], f[c[i]]}]; Break[ ]]];

If[f[c[n]]6= 0 && Or[Abs[c[n] - c[n-1]] >= tol, Abs[f[c[i]]] >= 10−6],

Print["sin exito"]];

Si se ejecuta este programa con n = 20 y tol = 0, 000001, para c0 = −0, 5 la

respuesta es

{4, 0.360422,−6.745715× 10−13},es decir, se han realizado 4 iteraciones, obteniendose una raız aproximada c4 =

0, 360422 y f (c4) = −6, 745715 × 10−13. Para c0 = 1 y los mismos valores de

n y tol la respuesta es

{5, 0.360422,−3.120282× 10−13}.La razon de la diferencia en la evaluacion de f con el caso anterior, a pesar de

los mismos valores de raız, se debe a que la maquina trabaja internamente con

mayor numero de decimales que los seis que da en la respuesta.

Con los programas de los tres metodos vistos anteriormente se obtienen los

siguientes resultados. En los tres el intervalo de entrada es [−1/2, 1].

Metodo de la posicion falsa

{9, 0.360422, 3.472888× 10−7}.

Metodo de la secante

{6, 0.360422, 1.105421× 10−10}.

Page 60: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 60

Metodo de biseccion

{20, 0.360422, 4.829014× 10−7}.Este ultimo es el mas ‘lento’ de todos. Para obtener un valor de raız de

0, 360422, que redondeando al sexto decimal tiene sus seis decimales exactos,

son necesarias veinte iteraciones.

La eficacia de un metodo depende en gran medida del tipo de ecuacion que se

esta considerando. No puede afirmarse que en todos los casos un determinado

metodo sea mejor que otro. Ademas, la bondad de un metodo no debe basarse

exclusivamente en el orden de convergencia, ya que hay que tener en cuenta que

el orden de convergencia refleja el comportamiento del metodo para un numero

de iteraciones n suficientemente grande.

El comando FindRoot de Mathematica usa el metodo de Newton para encon-

trar ceros de una funcion f cuando se le indica un valor inicial c0. En principio,

realiza un numero maximo de quince iteraciones y da una respuesta cuando

se alcanza un determinado grado de precision en la evaluacion de f . Si este

grado de precision no se alcanza en quince iteraciones, entonces responde con

un mensaje de advertencia y da el valor c15. Por ejemplo,

FindRoot[x20 - 1, {x, 2}]

deberıa obtener un cero de la funcion f (x) = x20 − 1 partiendo de un valor

inicial c0 = 2. Como en este caso no se obtiene el grado de precision prescrito,

advierte de este hecho y da c15 = 1, 00155 (f (c15) = 0, 0314436). La manera

de arreglar esto es permitirle realizar mas iteraciones:

FindRoot[x20 - 1, {x, 2}, MaxIterations −> 20]

Ahora responde con el valor exacto del cero, c = 1. Hay una forma de saber el

numero de iteraciones que ha realizado:

n=0;

FindRoot[n++; x20 - 1, {x, 2}, MaxIterations −> 20]

n-1

Page 61: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 61

Le ha llevado 18 iteraciones. El motivo de este elevado numero de pasos obedece

al comportamiento de esta funcion en el intervalo [1, 2], donde se movera la

sucesion cn. La situacion se complica mas aun si utilizamos los metodos de

la posicion falsa y de la secante con valores iniciales relativamente alejados

del cero c = 1. Por ejemplo, con valores iniciales c0 = 0, 5 y c1 = 1, 5 al

metodo de la posicion falsa le llevara 6820 iteraciones alcanzar los criterios de

parada impuestos en nuestro programa de ese metodo. Para los mismos valores

iniciales, peor lo tiene el metodo de la secante, que interrumpira el proceso

de calculo de cn porque f (c3) − f (c2), que aparece en un denominador en la

formula para c4, si bien no es exactamente cero, sı lo es para la precision con

que trabaja internamente la maquina. Ocurre que la funcion es muy chata

hasta las proximidades de 1 y desde ahı en adelante crece muy rapidamente.

Este relativo fracaso de los metodos hace que se busquen modificaciones

de ellos que mejoren su comportamiento. Precisamente, el comando FindRoot,

ahora cuando se introducen dos valores iniciales, usa una variante mejorada del

metodo de la secante. Ası,

FindRoot[x20 - 1, {x, {0.5, 1.5}}]

utiliza 6 iteraciones para hallar el valor exacto del cero c = 1, con valores

iniciales 0, 5 y 1, 5. Curiosamente, le lleva 5 iteraciones cuando se entra con 0 y

2, valores iniciales supuestamente mas desfavorables por estar mas alejados del

cero. Para esta funcion f , esta variante del metodo de la secante llega antes al

cero de f que el metodo de Newton.

Metodos de punto fijo

Un punto fijo de una funcion continua ϕ es un valor c que satisface

ϕ (c) = c.

El hecho es que un cero de una funcion f puede ser tambien un punto fijo de

otra funcion ϕ . Por ejemplo, es claro que un cero de f (x) es un punto fijo de

Page 62: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 62

ϕ (x) = x + f (x). Otro ejemplo menos obvio es el dado por

ϕ (x) = x− f (x)

f ′(x)(22)

cuando f ′ existe y no se anula en el cero de f .

Una manera de obtener un punto fijo de ϕ es aplicar la formula recurrente

cn+1 = ϕ (cn), n = 0, 1, 2, · · · , (23)

comenzando con un valor c0 que fijamos nosotros. Si la sucesion cn converge a

un numero c cuando n → ∞, entonces es evidente que c es un punto fijo de

ϕ . Observese que la aplicacion de este procedimiento a la funcion ϕ dada en

(22) equivale al metodo de Newton.

Suponiendo que la sucesion ası obtenida converge a c, que ϕ es p veces

continuamente diferenciable, p fijo, p ≥ 1, y ademas que

ϕ (c) = ϕ ′(c) = · · · = ϕ (p−1)(c) = 0, ϕ (p)(c) 6= 0, (24)

entonces es facil probar que el orden de la convergencia es precisamente p. En

efecto, por la formula de Taylor podemos escribir

ϕ (cn) = ϕ (c) + (cn − c)ϕ ′(c) + · · · + (cn − c)p−1

(p− 1)!ϕ (p−1)(c)

+(cn − c)p

p!ϕ (p)(ξn) = ϕ (c) +

(cn − c)p

p!ϕ (p)(ξn),

donde ξn es un numero comprendido entre c y cn y por tanto tiende a c cuando

n →∞. Como ϕ (cn) = cn+1 y ϕ (c) = c, se deduce que

cn+1 − c

(cn − c)p=

ϕ (p)(ξn)

p!,

por lo que

limn→∞

cn+1 − c

(cn − c)p=

ϕ (p)(c)

p!6= 0,

y ası se demuestra que el orden de la convergencia es p.

Page 63: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 63

Con respecto a la propia convergencia de la sucesion cn, sea c un punto fijo

de una funcion derivable ϕ . Observemos que

|cn+1 − c| = |ϕ (cn)− ϕ (c)| = |ϕ ′(αn)||cn − c|, (25)

donde αn es un numero comprendido entre cn y c. Si suponemos que |cn−c| < δ

y que |ϕ ′(αn)| < 1, sigue que |cn+1 − c| < δ. Por consiguiente, si elegimos el

valor inicial c0 en un intervalo [c− δ, c + δ] donde — por hipotesis — |ϕ ′| < 1,

por una reiterada aplicacion de (25) se obtendra que

|cn − c| < Mnδ,

donde M = max |ϕ ′| en [c− δ, c + δ]. Como M < 1, se concluye que

limn→∞

cn = c.

Ası hemos probado el siguiente

Teorema de convergencia para un metodo de punto fijo Sea c un

punto fijo de una funcion derivable ϕ . Supongamos que existe un intervalo

[c− δ, c + δ] donde |ϕ ′| < 1. Entonces la sucesion cn construida mediante

(23) converge a c cuando el valor inicial c0 es elegido en el anterior in-

tervalo. Si ademas ϕ es p veces continuamente diferenciable y vale (24),

entonces el orden de convergencia es p.

Podemos aplicar este teorema a la funcion ϕ dada en (22), que da lugar al

metodo de Newton. Se tiene que

ϕ ′(x) = f (x)f ′′(x)

(f ′(x))2.

Sigue que ϕ ′ es continua en un entorno de c si f ′ y f ′′ lo son y f ′(c) 6= 0. Como

f (c) = 0, se deduce tambien que ϕ ′(c) = 0. Por consiguiente existira un δ tal

que |ϕ ′| < 1 en [c− δ, c + δ]. Esto asegura la convergencia de cn a c.

La derivada segunda de ϕ es

ϕ ′′(x) = f (x)

(f ′′(x)

(f ′(x))2

)′+

f ′′(x)

f ′(x).

Page 64: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 64

Luego ϕ ′′(c) 6= 0 si f ′′(c) 6= 0, y el orden de convergencia es cuadratico. Si

f ′′(c) = 0 y la derivada tercera de ϕ existe y es continua, entonces el orden de

convergencia es, al menos, cubico.

3.2 Ecuaciones en varias variables

Formalmente, la ecuacion

f(x) = 0

puede ser usada tambien en este caso de varias variables si consideramos a f

una funcion continua,

f : D 7→ D,

donde D es Rr, o bien un subconjunto convexo de Rr, r ≥ 1. En esta seccion

nos ocuparemos del caso r > 1. En este caso, entonces, un cero c de la funcion

f , es decir, f(c) = 0, es una r-upla c = (c1, c2, · · · , cr) que simultaneamente

satisfacef1(c1, c2, · · · , cr) = 0

f2(c1, c2, · · · , cr) = 0... ... ...

fr(c1, c2, · · · , cr) = 0

donde f1, f2, · · · , fr, componentes de f , son funciones reales continuas definidas

en D.

Como en el caso de una variable vamos a considerar una funcion

ϕ : D 7→ D,

de manera que cada cero de f es un punto fijo de ϕ . Tambien aquı definimos

una sucesion cn en D mediante

cn+1 = ϕ (cn), n = 0, 1, 2, · · · . (26)

El teorema de la aplicacion contractiva nos dara condiciones suficientes sobre

la funcion ϕ para la existencia de un punto fijo como lımite de cn cuando

n → ∞. Antes necesitamos la siguiente definicion. Una norma (vectorial)

Page 65: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 65

en Rr asigna a cada x ∈ Rr un numero, que denotamos ‖x‖, que satisface las

siguientes propiedades:

• ‖x‖ ≥ 0 para todo x ∈ Rr, donde la igualdad vale solo si x = 0.

• ‖x + y‖ ≤ ‖x‖ + ‖y‖ para todo x,y ∈ Rr (desigualdad triangular).

• ‖λx‖ = |λ|‖x‖ para todo λ ∈ R y todo x ∈ Rr.

Si x = (x1, x2, · · · , xr), entonces

‖x‖ = max1≤i≤r |xi|,‖x‖1 =

∑ri=1 |xi|,

‖x‖2 =(∑r

i=1 x2i

)1/2,

son ejemplos de normas en Rr.

Teorema de la aplicacion contractiva Sea

ϕ : D 7→ D,

donde D es Rr, o bien un subconjunto convexo y compacto de Rr. Suponga-

mos que ϕ es una aplicacion contractiva, es decir, existe un γ, 0 < γ < 1,

tal que

‖ϕ (x)− ϕ (x∗)‖ ≤ γ‖x− x∗‖ para todo x,x∗ ∈ D.

Entonces existe un unico punto fijo c en D, y la sucesion definida por

(26), cualquiera sea c0 en D, converge a c para n →∞. Ademas

‖cn − c‖ ≤ γ‖cn−1 − c‖ para todo n ∈ N.

Demostracion: Para n ∈ N tenemos que

‖cn+1 − cn‖ = ‖ϕ (cn)− ϕ (cn−1)‖ ≤ γ‖cn − cn−1‖.Aplicando reiteradamente esta desigualdad se obtiene

‖cn+1 − cn‖ ≤ γn‖c1 − c0‖.

Page 66: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 66

Sea k ∈ N. Como

cn+k − cn = (cn+k − cn+k−1) + (cn+k−1 − cn+k−2) + · · · + (cn+1 − cn),

aplicando la desigualdad triangular sigue que

‖cn+k − cn‖ ≤k∑

i=1

‖cn+i − cn+i−1‖ ≤k∑

i=1

γn+i−1‖c1 − c0‖

≤ γn∞∑i=1

γi−1‖c1 − c0‖ =γn

1− γ‖c1 − c0‖.

Como limn→∞ γn = 0, se deduce que cn es una sucesion de Cauchy en D, y

por las hipotesis que estamos haciendo sobre D sigue que existe un c en D tal

que

limn→∞

cn = c.

Veamos ahora que c es un punto fijo de ϕ . En efecto,

‖cn − ϕ (c)‖ = ‖ϕ (cn−1)− ϕ (c)‖ ≤ γ‖cn−1 − c‖.De aquı, limn→∞ cn = ϕ (c), ya que limn→∞ ‖cn−1 − c‖ = 0, y por lo tanto

ϕ (c) = c. Como consecuencia, se obtiene la desigualdad de la tesis del teorema.

Ademas c es el unico punto fijo de ϕ en D, pues si hubiera otro, digamos c∗,tendrıamos

‖c− c∗‖ = ‖ϕ (c)− ϕ (c∗)‖ ≤ γ‖c− c∗‖,y como γ < 1, se concluye que necesariamente c = c∗.

La desigualdad que aparece en la tesis del teorema nos dice que el orden de

convergencia de los errores es al menos lineal.

El metodo de Newton en varias variables

Este metodo se basa en una formula que generaliza la correspondiente al caso

de una variable. Partiendo de un valor inicial c0 en un subconjunto convexo y

compacto D de Rr, se sigue con la formula recurrente

cn+1 = cn −A(cn)f(cn), n = 0, 1, 2, · · · , (27)

Page 67: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 67

donde A(cn) es la inversa de la matriz Jacobiana de f evaluada en cn, esto es,

A−1(cn) =

[∂fi

∂xj(cn)

]r

i,j=1

,

y donde estamos suponiendo que f es continuamente diferenciable y que su

matriz Jacobiana evaluada en cn es no singular para n = 0, 1, 2, · · ·. Por

consiguiente, el metodo de Newton coincide con un proceso iterativo de punto

fijo si consideramos la funcion

ϕ (x) = x−A(x)f(x),

definida en un dominio de Rr con la propiedad de que para todo x en este

dominio la matriz Jacobiana de f , evaluada en x, sea no singular. Consideremos

las siguientes hipotesis:

(a) c es un cero de f

(b) La matriz Jacobiana de f , evaluada en c, es no singular

(c) f es 2 veces continuamente diferenciable.

Es claro que (a) y (b) implican que c es un punto fijo de ϕ . Por otro lado,

puede probarse que las tres hipotesis implican que la matriz Jacobiana de ϕ ,

evaluada en c, se anula. Aplicando ahora el teorema del valor medio en varias

variables a la funcion ϕ , y usando (c), se llega a la existencia de un entorno D

de c, a saber

D = {x ∈ D : ‖x− c‖ ≤ δ},tal que

• ‖ϕ (x)− ϕ (x∗)‖ ≤ γ‖x− x∗‖ para todo x,x∗ ∈ D, con 0 < γ < 1

• La matriz Jacobiana de f , evaluada en cada x ∈ D, es no singular.

Por lo tanto ϕ resulta contractiva y aplica D en D, ya que

‖ϕ (x)− c‖ = ‖ϕ (x)− ϕ (c)‖ ≤ γ‖x− c‖ < δ.

Page 68: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 68

Podemos usar ahora el teorema de la aplicacion contractiva para concluir que la

sucesion definida mediante (27) converge al cero c cuando n → ∞ cualquiera

sea el valor inicial c0 en D. Tenemos ası un teorema de convergencia local

para el metodo de Newton en varias variables, analogamente al caso de una

variable. Tambien aquı puede probarse que el orden de convergencia es al

menos cuadratico.

El comando FindRoot del programa Mathematica utiliza el metodo de Newton

en varias variables cuando se indica un valor inicial para cada una de las vari-

ables involucradas. Por ejemplo, el sistema (ver Seccion 15.4 de Matematicas)

2x + zy2 + 2xyz = 0

2y + zx2 + 2xyz = 0

x2y + xy2 − 1 = 0

tiene tres ternas de soluciones reales (x0, y0, z0). Con referencia a las variables

x, y, las tiene en los cuadrantes primero, segundo y cuarto. Para cada una de

ellas, es

z0 =−2(x2

0 + y20)

3.

Con valores iniciales de x e y en el primer cuadrante, suficientemente proximos

a los valores de la raız, encuentra la solucion.

FindRoot[{2x + z y2 + 2x y z, 2y + z x2 + 2x y z, x2 y + x y2 - 1}, {x, .5}, {y, 1}, {z, -1}]

La respuesta es

(x0, y0, z0) = (0.793701, 0.793701,−0.839947).

Asimismo, encuentra las otras dos raıces reales si se dan valores iniciales de x

e y en el segundo y cuarto cuadrantes. Estas soluciones son, respectivamente,

(−1.618034, 0.618034,−2) y (0.618034,−1.618034,−2).

El comando Solve, o NSolve, utiliza en general metodos mas sofisticados de

busqueda de raıces. Ahora no hay que introducir valores iniciales. Para ecua-

ciones polinomicas en una variable de a lo mas cuarto grado, Solve emplea las

formulas exactas de calculo.

Page 69: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

3 Ecuaciones no lineales 69

Para el ejemplo anterior,

Solve[2x + z y2 + 2x y z == 0 && 2y + z x2 + 2x y z == 0

&& x2 y + x y2 - 1 == 0, {x, y, z}]

da por respuesta todas las raıces, incluidas las complejas. Por la ındole del

problema que genera este sistema de ecuaciones, nos interesan solo las soluciones

en x e y. La siguiente forma del comando elimina la variable z y da las soluciones

del sistema resultante en x e y:

Clear[x, y, z];

Solve[2x + z y2 + 2x y z == 0 && 2y + z x2 + 2x y z == 0

&& x2y + x y2 - 1 == 0, {x, y}, z]

Page 70: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

4 Solucion numerica de ecuacionesdiferenciales ordinarias

Las ecuaciones diferenciales juegan un papel importantısimo en la matematica

aplicada a la fısica y a las ciencias experimentales. Como sabemos, son ecua-

ciones donde intervienen simbolicamente las derivadas de una o varias funciones,

a su vez de una o varias variables. Por lo tanto, resolver (exactamente) una

ecuacion diferencial significa encontrar la funcion o funciones cuyas derivadas

satisfacen la ecuacion. Nos ocuparemos solamente de ecuaciones diferenciales

ordinarias, es decir, ecuaciones donde intervienen derivadas de funciones de

una unica variable t, donde t recorre un intervalo [a, b]. Mas precisamente,

comenzamos considerando un problema de valor inicial

y′(t) = f (t, y), a ≤ t ≤ b, y(a) = y0, (28)

donde

f : [a, b]× R 7→ Res una funcion, al menos, continua. La primera pregunta es sobre la existen-

cia de una funcion y = y(t) que resuelva el problema anterior. La siguiente

afirmacion da una respuesta a esta cuestion.

Supongamos que f (t, y) es continua con respecto a la variable t, y con

respecto a la variable y satisface una condicion de Lipschitz uniformemente

en t ∈ [a, b], es decir, existe un L > 0 tal que para todo t en [a, b] vale

|f (t, y)− f (t, y∗)| ≤ L|y − y∗|, y, y∗ ∈ R.

Entonces el problema (28) tiene una unica solucion y(t), a ≤ t ≤ b, para

cada valor inicial y0 en R. Mas aun, y(t) resulta continuamente diferen-

ciable y depende continuamente de y0.

Por otra parte, es facil probar que la anterior condicion de Lipschitz se satisface

si la derivada parcial∂f

∂y(t, y) es una funcion acotada en [a, b]× IR y continua

con respecto a y.

70

Page 71: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 71

Las demostraciones de existencia de soluciones son relativamente faciles pero

no constructivas. La parte complicada del problema es, en general, encontrar de

forma exacta una solucion. Mas aun, a veces es imposible hallar una solucion

en terminos de funciones elementales. En estos casos es necesario recurrir a

metodos numericos, que obtienen la solucion de una manera aproximada. Nos

centraremos en aquellos metodos que dan por respuesta un conjunto de puntos

(ti, vi), i = 0, 1, 2, · · · , n,

donde

a = t0 < t1 < t2 < · · · < tn = b, v0 = y(t0) = y0,

y para i = 1, 2, · · · , n se entiende que vi es una aproximacion a la evaluacion

de la solucion en ti, es decir, y(ti). La forma de hacer esto es por ‘pasos’,

obteniendo vi+1 despues de haber calculado v0, v1, · · · , vi, i = 0, 1, · · · , n − 1.

En los metodos de un paso se calcula vi+1 usando la informacion dada por ti, ti+1

y vi (tambien, por supuesto, la dada por la ecuacion diferencial y′ = f (t, y)).

En los metodos de k pasos (k > 1), se usa la informacion adicional dada por

los k puntos

(ti−k+1, vi−k+1), (ti−k+2, vi−k+2), · · · , (ti, vi).

Esto obliga a un proceso de inicializacion, que no es necesario en los metodos

de un paso.

4.1 Metodos de un paso

En general, un metodo de un paso esta determinado por una funcion

Φh : [a, b]× IR 7→ IR, h > 0,

que permite encontrar, partiendo del punto (ti, vi), i = 0, 1, · · · , n − 1, un

siguiente punto (ti+1, vi+1) de la forma que se indica a continuacion:

vi+1 = vi + (ti+1 − ti)Φhi(ti, vi),

donde ti+1 es un valor ya predeterminado o bien producido sobre la marcha por

el mismo metodo. Es usual considerar una particion por valores equidistantes,

Page 72: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 72

es decir, ti+1− ti = (b−a)/n para todo i = 0, 1, · · · , n− 1. En cualquier caso,

sea

h = max0≤i<n

|ti+1 − ti|.

Se dice que un metodo converge en [a, b] si

max0≤i≤n

|vi − y(ti)| → 0 cuando h → 0.

Daremos mas adelante una condicion suficiente para la convergencia de un

metodo. Para ese fin, necesitamos primero describir el comportamiento local de

un metodo. Para ello, supongamos que partimos de la solucion exacta evaluada

en un valor generico t, es decir y = y(t). Entonces el metodo determinado por

Φh produce una aproximacion de y(t + h) mediante la formula

y(t) + hΦh(t, y).

Damos ahora tres definiciones.

El error de truncamiento del metodo viene dado por

Th(t, y) =y(t) + hΦh(t, y)− y(t + h)

h= Φh(t, y)− y(t + h)− y(t)

h.

O sea, el error de truncamiento es la diferencia del cociente incremental aproxi-

mado, representado por Φh(t, y), y el cociente incremental exacto, ambos en el

intervalo [t, t + h].

Un metodo se llama consistente si

Th(t, y) → 0 cuando h → 0.

Por las igualdades de arriba, un metodo sera consistente si y solo si

T0(t, y) = limh→0

Th(t, y) = y′(t) = f (t, y).

Por ultimo, se dice que un metodo tiene orden p si existe una constante C,

independiente de t, y y h, tal que

|Th(t, y)| ≤ Chp,

uniformemente en [a, b]× IR.

Volviendo al tema de la convergencia de un metodo, se tiene la siguiente

afirmacion.

Page 73: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 73

Supongamos que existe una constante M > 0 tal que para todo h en un

intervalo [0, h0] y todo t ∈ [a, b] vale que

|Φh(t, y)− Φh(t, y∗)| ≤ M |y − y∗|, y, y∗ ∈ IR.

Si el metodo determinado por la funcion Φh es ademas consistente, en-

tonces converge en [a, b].

Todos los metodos que veremos en esta seccion convergen. En el caso particular

del metodo de Euler esto es inmediato de probar, usando la anterior afirmacion,

cuando f (t, y) satisface la condicion de Lipschitz.

Metodo de Euler

Este metodo esta determinado por la funcion

Φh(t, y) = f (t, y).

En realidad, no depende de h y por lo tanto es obviamente un metodo consis-

tente. Supongamos que y(t) es dos veces continuamente diferenciable en [a, b],

cosa que es cierta si f (t, y) es continuamente diferenciable en [a, b]× IR. Luego

Th(t, y) = y′(t)− y(t + h)− y(t)

h= y′(t)− y′(α) = (α− t)y′′(ξ),

donde t < α < t + h y t < ξ < α. De aquı,

|Th(t, y)| < ‖y′′‖h.

Como

y′′(t) = ft(t, y) + fy(t, y)y′(t) = ft(t, y) + fy(t, y)f (t, y),

y′′(t) es una funcion acotada en [a, b], uniformemente con respecto al valor

inicial y0. Luego el metodo de Euler resulta tener orden 1.

Ejemplo

El problema de valor inicial

y′ = y cos t, 0 ≤ t ≤ 2π, y(0) = 1,

Page 74: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 74

tiene la solucion exacta

y = esen t.

Veamos como funciona el metodo de Euler con valores equidistantes ti.

Clear["Global`*"]

f[t−, y−] = y Cos[t];

a = Input[a]; b = Input[b]; n = Input[n]; y0 = Input[y0];

h = (b - a)/n; t[0] = a; v[0] = y0;

For[i = 1, i <= n, i = i + 1, t[i] = t[i - 1] + h;

v[i] = N[v[i - 1] + h f[t[i - 1], v[i - 1]]]];

Show[Plot[ESin[t], {t, 0, 2 Pi}, DisplayFunction −> Identity],

ListPlot[Table[{t[i], v[i]}, {i, 0, n}], DisplayFunction −> Identity,

PlotStyle −> PointSize[.008]], DisplayFunction −> $DisplayFunction]

Con n = 10 tenemos la siguiente respuesta. Como se deduce de la lectura del

anterior programa, se muestran la grafica de y = esen t en el intervalo [0, 2π] y

los once puntos (ti, vi) obtenidos por el metodo de Euler.

1 2 3 4 5 6

0.5

1

1.5

2

2.5

3

Figura 24

Con n = 50 las aproximaciones son mas ajustadas, como es de esperar ya

que el metodo converge:

Page 75: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 75

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 25

Metodo de Taylor

La accion local del metodo de Euler consiste en aproximar la solucion evaluada

en t + h mediante el polinomio de Taylor de primer grado desarrollado en t:

y(t + h) = y(t) + hy′(t) = y(t) + hf (t, y).

Si la funcion f es suficientemente diferenciable, entonces esta aproximacion

puede realizarse mediante un polinomio de Taylor de mayor grado:

y(t + h) = y(t) + hy′(t) +h2

2y′′(t) + · · · + hp

p!y(p)(t), p ≥ 2.

Las sucesivas derivadas de y(t) dependen de la funcion f (t, y) y esta depen-

dencia puede ser expresada a traves del siguiente mecanismo recurrente, con-

secuencia de aplicar la regla de la cadena para las derivadas parciales.

y′(t) = f [0](t, y) := f (t, y)

y(j+1)(t) = f [j](t, y) := f[j−1]t (t, j) + f [j−1]

y (t, y)f (t, y), j = 1, 2, · · · , p− 1.

Estamos suponiendo aquı que f (t, y) es (p − 1) veces continuamente diferen-

ciable. Por consiguiente, la funcion Φh que determina el metodo de Taylor

Page 76: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 76

es

Φh(t, y) =

p−1∑j=0

hj

(j + 1)!y(j+1)(t)

= f [0](t, y) +h

2f [1](t, y) + · · · + hp−1

p!f [p−1](t, y).

Si se supone que f (t, y) es p veces continuamente diferenciable, se deduce

rapidamente de la formula de Taylor que

Th(t, y) = Φh(t, y)− y(t + h)− y(t)

h

= Φh(t, y)−p−1∑j=0

hj

(j + 1)!y(j+1)(t)− hp

(p + 1)!y(p+1)(ξ)

= − hp

(p + 1)!y(p+1)(ξ),

con t < ξ < t+h y y(p+1)(ξ) = f [p](ξ, y(ξ)), y por lo tanto el metodo de Taylor

tiene orden p, lo que implica su consistencia.

Para la misma funcion del ejemplo anterior, la implementacion del metodo de

Taylor en Mathematica se da a continuacion. Para p = 1 se tiene en particular

el metodo de Euler.

Clear["Global`*"]

f[t−, y−] = y Cos[t];

a = Input[a]; b = Input[b]; y0 = Input[y0]; p = Input[p]; n = Input[n];

h = (b - a)/n; t[0] = a; v[0] = y0; f[0][t−, y−] = f[t, y];

For[j = 1, j <= p - 1, j = j + 1,

f[j][t−, y−] = Simplify[D[f[j - 1][t, y], t] + D[f[j - 1][t, y], y]f[t, y]]];

For[i = 1, i <= n, i = i + 1, t[i] = t[i - 1] + h;

v[i] = N[v[i - 1] + h Sum[f[j][t[i - 1], v[i - 1]]hj/(j + 1)!, {j, 0, p - 1}]]];

Show[Plot[ESin[t], {t, 0, 2 Pi}, DisplayFunction −> Identity],

ListPlot[Table[{t[i], v[i]}, {i, 0, n}], PlotStyle −> PointSize[.008],

DisplayFunction −> Identity], DisplayFunction −> $DisplayFunction]

Page 77: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 77

La respuesta, para n = 10 y p = 2, se muestra en la siguiente figura. Si se

compara con la Figura 24, se observa que pasar solo de p = 1 a p = 2 produce

ya una apreciable mejor aproximacion.

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 26

Metodos mejorados de Euler

La accion local del metodo de Euler consiste en evaluar y(t + h) usando la

informacion dada por y′(t) = f (t, y). Como la funcion y′(t) varıa en el intervalo

[t, t+h], es una idea razonable utilizar en su lugar un valor que tenga en cuenta

de alguna manera esa variacion. Por ejemplo, tomar la media entre f (t, y) y

f (t + h, y + hf (t, y)). Si escribimos

k1 = k1(t, y) := f (t, y)

k2 = k2(t, y; h) := f (t + h, y + hk1),

entonces resulta

Φh(t, y) =k1 + k2

2.

El metodo determinado por esta funcion suele llevar el nombre de metodo de

Heun.

Page 78: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 78

Esta idea puede generalizarse un poco mas y considerar una media ponderada

Φh(t, y) = α1k1 + α2k2, α1 + α2 = 1,

donde ahora

k1 = f (t, y)

k2 = f (t + µh, y + µhk1), 0 < µ ≤ 1.

Los parametros α1, α2 y µ pueden determinarse de modo que el metodo re-

sultante tenga un orden p = 2. Aplicando la formula de Taylor, despues de

algunos calculos se llega a que esta condicion se consigue cuando

α2µ =1

2.

El metodo de Heun se corresponde con el caso µ = 1.

Metodos de Runge-Kutta

Una ulterior extension de los metodos mejorados de Euler permite llegar a la

siguiente formula:

Φh(t, y) =

r∑s=1

αsks,

r∑s=1

αs = 1

k1(t, y) = f (t, y)

ks(t, y; h) = f (t + µsh, y + hs−1∑j=1

λsjkj), s = 2, 3, · · · , r,

dondes−1∑j=1

λsj = µs, s = 2, 3, · · · , r.

Un metodo determinado por esta funcion Φh se conoce con el nombre de metodo

explıcito de Runge-Kutta de r etapas porque las funciones ks vienen determi-

nadas explıcitamente por recurrencia desde s = 1 hasta s = r. En el llamado

metodo implıcito estas funciones aparecen a ambos lados de las igualdades, lo

Page 79: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 79

que obliga a resolver un sistema de ecuaciones, por lo general trabajoso, para

calcularlas. En ambos casos los parametros involucrados se obtienen de forma

que el orden sea lo mas alto posible. Al respecto, Kutta probo en 1901 que

el maximo orden p que se puede alcanzar es p = r cuando 1 ≤ r ≤ 4. En

particular, la formula clasica de Runge-Kutta de orden p = 4 es la siguiente:

Φh(t, y) =k1 + 2k2 + 2k3 + k4

6

k1(t, y) = f (t, y)

k2(t, y; h) = f

(t +

1

2h, y +

1

2hk1

)

k3(t, y; h) = f

(t +

1

2h, y +

1

2hk2

)

k4(t, y; h) = f (t + h, y + hk3).

Cuando la funcion f no depende de y, y por tanto estamos ante un caso de

cuadratura numerica, el metodo determinado por la anterior funcion Φh co-

incide con la formula de Simpson. Esto no es casualidad, ya que Runge, des-

cubridor en 1895 del metodo que lleva su nombre, buscaba en sus investigaciones

generalizar precisamente esa formula para aplicarla a la solucion de ecuaciones

diferenciales.

A continuacion se da el programa del metodo clasico de Runge-Kutta y la

correspondiente respuesta grafica para n = 10 y valores ti equidistantes.

Page 80: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 80

Clear["Global`*"]

f[t−, y−] = y Cos[t];

a = Input[a]; b = Input[b]; y0 = Input[y0]; n = Input[n];

h = (b - a)/n; t[0] = a; v[0] = y0;

k2[t−, y−] = f[t + h/2, y + h f[t, y]/2];

k3[t−, y−] = f[t + h/2, y + h k2[t, y]/2];

k4[t−, y−] = f[t + h, y + h k3[t, y]];

For[i = 1, i <= n, i = i + 1, t[i] = t[i - 1] + h;

v[i] = N[v[i - 1] + h( f[t[i - 1], v[i - 1]] + 2 k2[t[i - 1], v[i - 1]]

+ 2k3[t[i - 1], v[i - 1]] + k4[t[i - 1], v[i - 1]])/6]];

Show[Plot[ESin[t], {t, 0, 2 Pi}, DisplayFunction −> Identity],

ListPlot[Table[{t[i], v[i]}, {i, 0, n}], DisplayFunction −> Identity,

PlotStyle −> PointSize[.008]], DisplayFunction −> $DisplayFunction]

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 27

Se observa un preciso ajuste de los puntos a la curva. Se ha de esperar todavıa

una mejor aproximacion, tanto en este metodo como en los precedentes, si se

usa un valor mayor de n, ya que, como se ha dicho anteriormente, todos estos

metodos convergen.

Page 81: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 81

4.2 Metodos de varios pasos

Los metodos de k pasos (k > 1) tienen a su favor el hecho de que permiten

aumentar el orden de una manera mas directa que en los metodos de un paso.

Por otra parte, su analisis es mas complicado que en estos, por lo que solo

daremos las ideas basicas necesarias para su construccion. El objetivo final es

el mismo que en los metodos de un paso, esto es, construir un conjunto de

puntos (ti, vi), a = t0 < t1 < · · · < tn = b, donde vi aproxima a y(ti). La

diferencia radica en que para calcular vm+k, con k ≤ m + k ≤ n, se usan los k

valores ya obtenidos vm, vm+1, · · · , vm+k−1. Como ahora k > 1, esto obliga a

calcular por algun otro metodo v1, · · · , vk−1 (v0 = y(t0)). Para ello, se aplica

usualmente un metodo de un paso.

Consideraremos metodos lineales de k pasos, con h = (b− a)/n (valores tiequidistantes). Se llaman ası porque

f (tm, vm), f (tm+1, vm+1), · · · , f (tm+k−1, vm+k−1)

intervienen linealmente en la expresion de calculo de vm+k. Esta queda deter-

minada por 2k + 1 coeficientes αj, βj, j = 0, 1, · · · , k (αk = 1), de la siguiente

forma:vm+k + αk−1vm+k−1 + · · · + α0vm

= h(βkfm+k + βk−1fm+k−1 + · · · + β0fm),(29)

donde fm+k−r := f (tm+k−r, vm+k−r), r = 0, 1, · · · , k. Si βk = 0, entonces

el metodo se llama explıcito, e implıcito en caso contrario. En este ultimo

caso vm+k aparece en ambos lados de la ecuacion (29). Por consiguiente, vm+k

debe obtenerse a traves de algun metodo numerico para busqueda de raıces

de ecuaciones no lineales. Lo usual es aplicar el metodo de punto fijo. Bajo

las hipotesis de f que estamos considerando (concretamente, que f (t, y) satis-

face una condicion uniforme de Lipschitz en [a, b]) puede probarse, usando el

Teorema de la aplicacion contractiva, que si h es suficientemente pequeno el

metodo de punto fijo converge a una solucion de (29) en la incognita vm+k.

En forma analoga a lo hecho en los metodos de un paso, damos las siguientes

definiciones. Si un metodo produce los valores vi, 0 ≤ i ≤ n, entonces se dice

Page 82: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 82

que converge cuando

limh→0

max1≤i≤n

|vi − y(ti)| = 0.

Para 0 ≤ m ≤ n − k, la coordenada m-esima del error de truncamiento Th

viene dada por

Th(m) =1

h

k∑j=0

αjy(tm+j)−k∑

j=0

βjf (tm+j, y(tm+j))

=1

h

k∑j=0

αjy(tm + jh)−k∑

j=0

βjy′(tm + jh). (30)

El metodo se dice consistente si

limh→0

max0≤m≤n−k

|Th(m)| = 0.

El orden del metodo es p si

max0≤m≤n−k

|Th(m)| = O(hp) cuando h → 0.

Es claro que si un metodo tiene orden p, con p > 0, entonces es consistente.

Por supuesto, se trata de conseguir convergencia y tambien que el orden sea lo

mayor posible. Esto se lograra con una adecuada eleccion de los coeficientes αj

y βj. Suponiendo que la funcion y(t) es suficientemente diferenciable y usando

la formula de Taylor para y(tm + jh) e y′(tm + jh), de la ecuacion (30) pueden

deducirse las relaciones que esos coeficientes deben cumplir para que el metodo

tenga orden p, p ≥ 1. En efecto, escribiendo (30) como 1h(γ0+γ1h+γ2h

2+· · ·),la anulacion de los coeficientes γ0, γ1, · · · γp produce las siguientes condiciones

(recordar que αk = 1):∑k

j=0 αj = 0∑k

j=0 jαj =∑k

j=0 βj

... ... ...∑k

j=0 jpαj = p∑k

j=0 jp−1βj.

(31)

Page 83: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 83

No obstante, estas condiciones no bastan para que el metodo converja. Para que

esto suceda deben cumplirse las propiedades (i)–(iv) que se dan a continuacion.

Escribimos α(z) =∑k

j=0 αjzj.

(i) Los valores v1, v2, · · · , vk−1, que dependen de h, tienden a y0 cuando h

tiende a cero;

(ii) α(1) = 0 y α′(1) =∑k

j=0 βj;

(iii) Todos los ceros de α(z) estan en el intervalo [−1, 1];

(iv) Si 1, o −1, son ceros de α(z), entonces son ceros simples.

Observar que (ii) es precisamente equivalente a las dos primeras igualdades de

(31), las cuales implican que el orden es al menos 1, y por tanto el metodo es

consistente. Notar tambien que (i) queda siempre garantizado si se calculan

v1, v2, · · · , vk−1 aplicando, por ejemplo, un metodo convergente de un paso.

Por ultimo, las propiedades (iii) y (iv) equivalen a la llamada estabilidad del

metodo.

Como ejemplo, en lo que sigue determinamos todos los metodos explıcitos

de 2 pasos,

vm+2 + α1vm+1 + α0vm = h(β1fm+1 + β0fm),

con ordenes 1, 2 y 3. Las ahora cuatro ecuaciones de (31) son

α0 + α1 + 1 = 0

α1 + 2 = β0 + β1

α1 + 4 = 2β1

α1 + 8 = 3β1.

El polinomio α(z) es α0 + (−1 − α0)z + z2, que tiene los ceros 1 y α0. Por

consiguiente, para que ademas se cumplan (iii) y (iv) debe valer que α0 caiga

en el intervalo [−1, 1).

Para obtener orden p = 3 tienen que valer las cuatro ecuaciones de arriba, que

determinan los cuatro coeficientes

α0 = −5, α1 = 4, β0 = 2, β1 = 4.

Page 84: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 84

Por lo tanto no se cumple (iii) y el metodo no es estable. Esto es ası en general.

Puede probarse que no existen metodos explıcitos y estables de k pasos con

orden p > k. Luego no es aconsejable aplicar este metodo ya que puede haber

casos donde las aproximaciones vi no convergen a la solucion.

Para obtener orden p = 2 deben cumplirse las tres primeras ecuaciones de

arriba. Esto deja libre un unico coeficiente:

α1 = −α0 − 1, β0 = −1

2α0 − 1

2, β1 = −1

2α0 +

3

2.

En particular, para α0 = −1 se tiene la llamada regla del punto medio:

vm+2 = vm + 2hfm+1.

Para α0 = 0 se obtiene el metodo de Adams-Bashforth de 2 pasos:

vm+2 = vm+1 +1

2h(3fm+1 − fm).

Por ultimo, cuando solo valen las dos primeras ecuaciones de arriba obten-

dremos orden p = 1, quedando libre dos coeficientes, uno en cada grupo α0, α1

y β0, β1.

Metodos de Adams

Para k ≥ 2 el metodo explıcito de Adams de k pasos, tambien llamado de

Adams-Bashforth, responde a la formula

vm+k = vm+k−1 + hk−1∑j=0

βk,jfm+j, (32)

donde los coeficientes βk,j pueden obtenerse a partir de (31), con p = k y

αj = 0 para j = 0, 1, · · · , k − 2. Como en este caso es

α(z) = zk − zk−1,

sigue que los unicos ceros de α(z) son 0 y 1, donde 1 es ademas un cero simple.

De esta manera el metodo resulta de orden k, estable y convergente. Una forma

Page 85: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 85

alternativa de obtener los coeficientes βk,j es a partir de la formula

y(tm+k) = y(tm+k−1) +

∫ tm+k

tm+k−1

y′(t) dt,

que se deduce inmediatamente de la regla de Barrow. Ahora se reemplaza el

integrando y′(t) por el unico polinomio en Pk−1 que interpola a y′(t) en los k

puntos (tj, y′(tj), m ≤ j ≤ m + k − 1. Si se usa la forma de Lagrange del

polinomio interpolador, la integral se transforma en la expresion

hk−1∑j=0

βk,jy′(tm+j),

donde

βk,j =

∫ 1

0

k−1∏r=0r 6=j

(u + k − 1− r

j − r

)du, j = 0, 1, · · · , k − 1.

Estos valores de βk,j satisfacen (31), con p = k y αj = 0 para j = 0, 1, · · · , k−2.

Por lo tanto son precisamente los coeficientes que deben utilizarse en (32).

A continuacion se da un programa del metodo explıcito de Adams de k pasos.

Se ha utilizado el metodo clasico de Runge-Kutta, de orden p = 4, para calcular

v1, v2, · · · , vk−1.

Clear["Global`*"]

f[t−, y−] = y Cos[t];

a = Input[a]; b = Input[b]; y0 = Input[y0]; n = Input[n]; k = Input[k];

h = (b - a)/n; t[0] = a; v[0] = y0;

k2[t−, y−] = f[t + h/2, y + h f[t, y]/2];

k3[t−, y−] = f[t + h/2, y + h k2[t, y]/2];

k4[t−, y−] = f[t + h, y + h k3[t, y]];

For[i = 1, i <= k - 1, i = i + 1, t[i] = t[i - 1] + h; v[i] = N[v[i - 1] + h( f[t[i - 1], v[i - 1]] + 2 k2[t[i - 1], v[i -

1]] + 2k3[t[i - 1], v[i - 1]] + k4[t[i - 1], v[i - 1]])/6]];

beta[0] = Integrate[Product[(u + k - 1 - r)/(-r), {r, 1, k - 1}], {u, 0, 1}];

beta[k - 1] = Integrate[Product[(u + k - 1 - r)/(k - 1 - r), {r, 0, k - 2}],

Page 86: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 86

{u, 0, 1}];

For[j = 1, j <= k - 2, j = j + 1,

beta[j] = Integrate[Product[(u + k - 1 - r)/(j - r), {r, 0, j - 1}]

Product[(u + k - 1 - r)/(j - r), {r, j + 1, k - 1}], {u, 0, 1}]];

For[i = k, i <= n, i = i + 1, t[i] = t[i - 1] + h;

v[i] = N[v[i - 1] + h(Sum[beta[j] f[t[j + i - k], v[j + i - k]], {j, 0, k - 1}])]];

Show[Plot[ESin[t], {t, 0, 2 Pi}, DisplayFunction −> Identity],

ListPlot[Table[{t[i], v[i]}, {i, 0, n}], DisplayFunction −> Identity,

PlotStyle −> PointSize[.008]], DisplayFunction −> $DisplayFunction]

Para una entrada de n = 10 y k = 4 se obtiene la siguiente respuesta.

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 28

La aproximacion a la solucion es pesima. Ocurre que si se usa un metodo de

k pasos, es obvio que en general n debe ser mucho mayor que k para que la

accion de este metodo sea significativa. Para una entrada de n = 50, k = 4,

tenemos la siguiente respuesta.

Page 87: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 87

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 29

El metodo implıcito de Adams, llamado tambien de Adams-Moulton, es el

analogo al metodo explıcito de Adams. Su formula es

vm+k = vm+k−1 + hk∑

j=1

βck,jfm+j.

Utilizando el mismo procedimiento del caso explıcito se obtiene la siguiente

expresion para los coeficientes βck,j.

βck,j =

∫ 1

0

k∏r=1r 6=j

(u + k − 1− r

j − r

)du, j = 1, 2, · · · , k.

Para deducir esta igualdad, ahora debe usarse el polinomio interpolador de y′(t)en los puntos

(tm+1, y′(tm+1)), (tm+2, y

′(tm+2)), · · · , (tm+k, y′(tm+k)).

En realidad la formula de arriba corresponde a un metodo de k− 1 pasos pero

de orden k.

Metodos predictor-corrector

Se llaman ası a metodos que usan en forma combinada metodos explıcitos e

implıcitos, usualmente del mismo orden, el primero para predecir la siguiente

Page 88: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 88

aproximacion y el segundo para corregirla. Lo habitual es emplear un metodo

explıcito de Adams de k pasos como predictor y el analogo implıcito de k − 1

pasos como corrector. Se da a continuacion el programa en Mathematica de

este metodo combinado. Se aplica el metodo de Runge-Kutta para el inicio.

Clear["Global`*"]

f[t−, y−] = y Cos[t]; a = Input[a]; b = Input[b]; y0 = Input[y0];

n = Input[n]; k = Input[k];

h = (b - a)/n; t[0] = a; v[0] = y0;

k2[t−, y−] = f[t + h/2, y + h f[t, y]/2];

k3[t−, y−] = f[t + h/2, y + h k2[t, y]/2];

k4[t−, y−] = f[t + h, y + h k3[t, y]];

For[i = 1, i <= k - 1, i = i + 1, t[i] = t[i - 1] + h; v[i] = N[v[i - 1] + h( f[t[i - 1], v[i - 1]] + 2 k2[t[i - 1], v[i -

1]] + 2k3[t[i - 1], v[i - 1]] + k4[t[i - 1], v[i - 1]])/6]];

beta[0] = Integrate[Product[(u + k - 1 - r)/(-r), {r, 1, k - 1}], {u, 0, 1}];

beta[k - 1] = Integrate[Product[(u + k - 1 - r)/(k - 1 - r), {r, 0, k - 2}],

{u, 0, 1}];

For[j = 1, j <= k - 2, j = j + 1,

beta[j] = Integrate[Product[(u + k - 1 - r)/(j - r), {r, 0, j - 1}]

Product[(u + k - 1 - r)/(j - r), {r, j + 1, k - 1}], {u, 0, 1}]];

betac[1] = Integrate[Product[(u + k - 1 - r)/(1 - r), {r, 2, k}], {u, 0, 1}];

betac[k] = Integrate[Product[(u + k - 1 - r)/(k - r), {r, 1, k - 1}], {u, 0, 1}];

For[j = 2, j <= k - 1, j = j + 1,

betac[j] = Integrate[Product[(u + k - 1 - r)/(j - r), {r, 1, j - 1}]

Product[(u + k - 1 - r)/(j - r), {r, j + 1, k}], u, 0, 1]];

For[i = k, i <= n, i = i + 1, t[i] = t[i - 1] + h;

v[i] = N[v[i - 1] + h(Sum[beta[j] f[t[j + i - k], v[j + i - k]], {j, 0, k - 1}])];

v[i] = N[v[i - 1] + h(Sum[betac[j] f[t[j + i - k], v[j + i - k]], {j, 1, k}])]];

Show[Plot[ESin[t], {t, 0, 2 Pi}, DisplayFunction −> Identity],

ListPlot[Table[{t[i], v[i]}, {i, 0, n}], DisplayFunction −> Identity,

PlotStyle −> PointSize[.008]], DisplayFunction −> $DisplayFunction]

Si entramos con n = 10 y k = 4 la respuesta la tenemos en la siguiente figura.

Page 89: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 89

Puede notarse la eficaz accion del metodo corrector si comparamos con la Figura

28.

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 30

La intervencion del metodo corrector en el programa anterior esta presente

en la cuarta lınea, contando de abajo hacia arriba,

v[i] = N[v[i - 1] + h(Sum[betac[j] f[t[j + i - k], v[j + i - k]], {j, 1, k}])]

Esta lınea, dentro del comando For, puede ser repetida cuantas veces quera-

mos con el proposito de mejorar la estimacion de v[i] (vm+k), pues recordemos

que si h es suficientemente pequeno el algoritmo del punto fijo nos conduce a

la verdadera solucion que determina el metodo implıcito. Para nuestro caso

anterior, repitiendo la lınea, por ejemplo tres veces, en efecto mejoramos la

aproximacion, tal como se muestra en la siguiente figura.

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 31

Page 90: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 90

El comando NDSolve de Mathematica utiliza un metodo de Adams implıcito,

de orden entre 1 y 12, para resolver un problema de valor inicial. Emplea un

metodo de Runge-Kutta de orden 4 o 5 para el proceso inicial. Por ejemplo,

para resolver el problema de valor inicial

y′ = y cos t, y′(0) = 1, 0 ≤ t ≤ 2π,

hacemos

sol[t−] = NDSolve[{y’[t] == y[t] Cos[t], y[0] == 1}, y[t], {t, 0, 2 Pi}]

La respuesta la da a traves de una funcion que interpola los puntos estimados

por el metodo empleado. Para representar la solucion obtenida hacemos

Plot[y[t] /. sol[t], {t, 0, 2 Pi}]

A fin de comprobar la bondad de ajuste de este metodo representamos 51

puntos equidistantes, obtenidos de la funcion interpolante, junto con la grafica

de la solucion exacta.

Show[ListPlot[Table[{j Pi/25, y[j Pi/25] /. sol[j Pi/25][[1]]}, {j, 0, 50}],

DisplayFunction −> Identity],

Plot[ESin[t], {t, 0, 2 Pi}, DisplayFunction −> Identity],

DisplayFunction −> $DisplayFunction]

1 2 3 4 5 6

0.5

1

1.5

2

2.5

Figura 32

Page 91: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 91

4.3 Sistemas de ecuaciones diferenciales

Un problema de valor inicial en un intervalo [a, b], para un sistema de r ecua-

ciones diferenciales con r incognitas y1(t), y2(t), · · · , yr(t), esta dado por la

siguiente formulacion:

y′1(t) = f1(t, y1, y2, · · · , yr), y1(a) = y0,1

y′2(t) = f2(t, y1, y2, · · · , yr), y2(a) = y0,2... ... ... ...

y′r(t) = fr(t, y1, y2, · · · , yr), yr(a) = y0,r

a ≤ t ≤ b.

Usando notacion vectorial este sistema puede escribirse formalmente como el

problema para el caso de una unica ecuacion:

y′(t) = f(t,y), a ≤ t ≤ b, y(0) = y0.

Pero esto no es solo una cuestion formal. De hecho, toda el desarrollo teorico

y practico del caso de una ecuacion puede aplicarse tambien, con mınimos

cambios, a la presente situacion. Para ejemplificar lo que se esta diciendo

veamos la forma que adopta el metodo clasico de Runge-Kutta aplicado a un

sistema de dos ecuaciones. Los demas metodos vistos en Secciones 4.1 y 4.2 se

tratan de un modo analogo.

Page 92: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 92

Clear["Global`*"]

f[1][t−, y1−, y2−] = Input[f1[t, y1, y2]]; f[2][t−, y1−, y2−] = Input[f2[t, y1, y2]];

a = Input[a]; b = Input[b]; y01 = Input[y01]; y02 = Input[y02]; n = Input[n];

h = (b - a)/n; t[0] = a; v[1][0] = y01; v[2][0] = y02;

For[r = 1, r <= 2, r = r + 1, k2[r][t−, y1−, y2−] =

f[r][t + h/2, y1 + h f[1][t, y1, y2]/2, y2 + h f[2][t, y1, y2]/2]];

For[r = 1, r <= 2, r = r + 1, k3[r][t−, y1−, y2−] =

f[r][t + h/2, y1 + h k2[1][t, y1, y2]/2, y2 + h k2[2][t, y1, y2]/2]];

For[r = 1, r <= 2, r = r + 1, k4[r][t−, y1−, y2−] =

f[r][t + h, y1 + h k3[1][t, y1, y2], y2 + h k3[2][t, y1, y2]]];

For[i = 1, i <= n, i = i + 1, For[r = 1, r <= 2, r = r + 1, t[i] = t[i - 1] + h;

v[r][i] = N[v[r][i - 1] + h( f[r][t[i - 1], v[1][i - 1], v[2][i - 1]] + 2 k2[r][t[i - 1], v[1][i - 1], v[2][i - 1]]

+ 2k3[r][t[i - 1], v[1][i - 1], v[2][i - 1]] + k4[r][t[i - 1], v[1][i - 1], v[2][i - 1]])/6]]];

For[r = 1, r <= 2, r = r + 1, ListPlot[Table[{t[i], v[r][i]}, {i, 0, n}], PlotStyle −> PointSize[.008]]]

Apliquemos este programa a resolver el sistema

y′1(t) = 2y1(1− y2), y1(0) = 1,

y′2(t) = −y2(1− y1), y2(0) = 3,0 ≤ t ≤ 10.

Para una entrada de n = 100, las Figuras 33 y 34 muestran las respuestas para

y1(t) e y2(t), respectivamente, junto con la correspondiente solucion dada por

el comando NDSolve, a saber,

sol[t−] = NDSolve[{y1’[t] == 2y1[t](1 - y2[t]), y2’[t] == -y2[t](1 - y1[t]),

y1[0] == 1, y2[0] == 3}, {y1[t], y2[t]}, {t, 0, 10}]

Page 93: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 93

2 4 6 8 10

1

2

3

4

Figura 33

2 4 6 8 10

0.5

1

1.5

2

2.5

3

Figura 34

La Figura 33 se obtiene ejecutando la orden

Show[ListPlot[Table[{t[i], v[1][i]}, {i, 0, n}], DisplayFunction −> Identity,

PlotStyle −> PointSize[.008]], Plot[y1[t] /. sol[t], {t, 0, 10},

DisplayFunction −> Identity], DisplayFunction −> $DisplayFunction]

Se procede analogamente para obtener la Figura 34.

Finalmente, observamos que para r > 1 el problema de valor inicial en la

incognita y(t),

y(r)(t) = f (t, y, y′, · · · , y(r−1)), a ≤ t ≤ b,

y(j−1)(a) = y0,j, j = 1, 2, · · · , r,

Page 94: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 94

puede ser transformado en el sistema de r ecuaciones con r incognitas

y1(t), y2(t), · · · , yr(t),

con y1(t) = y(t),

y′1(t) = y2, y1(a) = y0,1

y′2(t) = y3, y2(a) = y0,2

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

y′r−1(t) = yr, yr(a) = y0,r−1

y′r(t) = f (t, y1, y2, · · · , yr), yr(a) = y0,r

a ≤ t ≤ b.

Ejemplo

Consideremos la ecuacion

y′′(t) + sen y = 0, 0 ≤ t ≤ 10, y(0) = 0, y′(0) = 1,

que es del tipo de las que describen el movimiento de un pendulo (ver Seccion

16.1 de Matematicas). Mediante el programa Mathematica se obtiene la

solucion numerica ejecutando la orden

sol[t−] = NDSolve[{y”[t] + Sin[y[t]] == 0, y[0] == 0, y’[0] == 1}, y[t],

{t, 0, 10}]

Por otra parte, segun la observacion anterior podemos transformar esta

ecuacion en el sistema

y′1(t) = y2, y1(0) = 0

y′2(t) = −sen y1, y2(0) = 10 ≤ t ≤ 10,

donde y1(t) = y(t). Aplicamos ahora nuestro programa del metodo clasico de

Runge-Kutta para resolver un sistema de dos ecuaciones, con n = 100. En la

Figura 35 se muestran simultaneamente ambas soluciones para y(t). La curva

continua es la respuesta de Mathematica y los puntos son las aproximaciones

numericas de nuestro programa.

Page 95: 1 Interpolaci´on y Aproximaci´on 1.1 Interpolaci´on mediante …mmarano/metnum.pdf · 2006-03-02 · 1 Interpolaci´on y Aproximaci´on 6-4 -2 2 4 0.2 0.4 0.6 0.8 1 Figura 2 Se

Solucion numerica de ecuaciones diferenciales ordinarias 95

2 4 6 8 10

-1

-0.5

0.5

1

Figura 35