artico.lma.fi.upm.esartico.lma.fi.upm.es/numerico/asigs/c_numerico/cuadernos/interp... · l ˚ 5 (...

21
! " # $ % !& ’( ) * + , -. / 01 2 3/ / 01 23 * .(. * $ 23 * 0 3 2 3 2 0 ) * + # 4 . *

Transcript of artico.lma.fi.upm.esartico.lma.fi.upm.es/numerico/asigs/c_numerico/cuadernos/interp... · l ˚ 5 (...

Capítulo 3

Interpolación polinomial clásica

Este capítulo se centra en la interpolación polinomial clásica, la más utilizada en las aplicaciones. También en el cálculo numérico es de gran interés al servir como base para deducir métodos de integración y diferenciación numérica, optimización, resolución de ecuaciones diferenciales y otros métodos de interpolación como se verá en el capítulo 5.

En capítulos previos se ha planteado el problema y se ha estudiado la existencia y unicidad de la solución. Nos centramos ahora en la construcción del polinomio de interpolación. En este capítulo se plantearán distintos algoritmos de cálculo, analizando sus ventajas e inconvenientes. A este respecto se revisa el algoritmo de Lagrange, visto en el capítulo anterior, y se introducen la Fórmula de Newton y otros algoritmos recurrentes. En la sección 3.4 se estudia el error de interpolación.

3.1 Revisión del problema. Construcciones preliminares

Se aborda el problema de construir un polinomio que coincida con una función dada en un número de puntos especificados. Dados n+1 puntos distintos xi, i = 0,…,n y los valores de la función en estos puntos, f (xi) = yi, i = 0,…,n, el polinomio de menor grado (n) que coincida con f en esos puntos se denomina polinomio de interpolación de f en los puntos xi, i = 0,…,n.

En la sección 1.4.1 se probaba que dicho polinomio existe y está unívocamente determinado por sus valores en los nodos. Llamamos p (x) a este polinomio de grado n tal que

n0,..,i,)x()x( iii === yfp .

con i , i 0,..,n, y = dados.Este capítulo se centra en proporcionar métodos de construcción de dicho

polinomio p . Se hace notar que el polinomio p es único, pero admite diferentes representaciones, diferentes fórmulas de implementación, atendiendo a la base elegidaen la construcción. A este respecto, varias consideraciones:

1. El orden de los datos no influye en el polinomio, aunque sí posiblemente en su representación.

2. La elección de la base de polinomios de grado n, ésto es, la elección del método de construcción, no influye (salvo errores de redondeo) en el polinomio, pero sí en su representación.

3. Desde el punto de vista numérico es de gran importancia la fórmula elegida para implementar dicho polinomio.

Una forma directa de construir p viene indicada en la sección 1.4.1, donde se analizaba la existencia y unicidad del polinomio. En una primera aproximación, se escribía:

nn10 x...x p(x) c c c +++=

en términos de la base {1, x,…,xn}. Introduciendo las condiciones de interpolación se obtiene

=

=+++

n,...,1,0

x...x nini10

i

yccc i

Este sistema lineal se puede resolver mediante algún método numérico de resolución (Gauss, factorización LU,…). Sin embargo, este enfoque no se recomienda porque con frecuencia la matriz del sistema (matriz de Vandermonde) está mal condicionada1, pudiendo proporcionar soluciones no precisas o erróneas al resolver el sistema. Por ello, desarrollamos en las siguientes secciones métodos numéricos más eficientes en la práctica.

Un procedimiento alternativo para obtener directamente el polinomio de interpolación es la fórmula de Lagrange vista en la sección 2.3.1.:

∑=

=n

ilyp

0ii (x)(x) (1)

con li(x) = ∏≠= −

−n

ik0k ki

k)xx()xx( , i = 0,…,n.

El polinomio de interpolación escrito en la forma (1) se denomina polinomio de Lagrange.

1 Un problema asociado a la resolución numérica de sistemas lineales de ecuaciones algebraicas es el mal condicionamiento. Un sistema lineal se dice mal condicionado si la solución es muy sensible a pequeñas perturbaciones a los elementos de la matriz o a los elementos del término independiente. Consecuentemente los resultados obtenidos en la solución pueden depender del ordenador usado, del compilador,…. La mejor forma de enfrentarse a este problema es reescribir el problema de forma que se reduzca el mal condicionamiento y utilizar precisión alta para calcular la solución.

Observaciones:

1. Las funciones li(x) son independientes de los datos numéricos yi, i = 0,…,n.

2. La fórmula (1) presenta de una forma explícita la solución en términos de los datos. Una vez calculadas las funciones li, i = 0,…,n, se puede escribir inmediatamente el polinomio de interpolación de cualquier función en los puntos xi, i = 0,…,n, incorporando los datos yi, i = 0,…,n, correspondientes. A cambio el esfuerzo se dedica al cálculo de las funciones li, i = 0,…,n.Esta fórmula es de mayor interés teórico (desarrollo de fórmulas de integración numérica,…) que práctico, aunque existen algoritmos para calcular la fórmula de Lagrange eficientemente.

3. Esta fórmula tiene el inconveniente de que si se añade otro punto de interpolación el nuevo polinomio de interpolación no se puede calcular fácilmente a partir del anterior, habría que repetir todo el proceso.

3.2 Fórmula de Newton

Veremos una importante representación del polinomio de interpolación que permite calcular progresivamente polinomios de interpolación de grado creciente al ir incorporando puntos de interpolación, evitando así el inconveniente de la fórmula de Lagrange.

Supongamos que se ha calculado 1−np , polinomio de interpolación de f enx0,…,xn-1. Se quiere calcular ahora np , polinomio de interpolación de f en x0,…,xn-1 y xncon xn≠ xi, i = 0,…,n-1, a partir de 1−np . La idea es escribir np en términos de 1−npmás un término de corrección:

)x()x()x( 1nn cpp += − .

¿Qué sabemos de c(x)?:

1. c(x) es un polinomio de grado n (por construcción)2. c(xi) = 0, i = 0,…,n-1 ( p n y p n-1 interpolan a f en xi, i = 0,…,n-1). 3. c(xn) = p n(xn)- p n-1(xn) = f ( xn) - p n-1(xn).

De (1) y (2):c(x) = An(x – x0)…(x – xn-1)

Sustituyendo en xn y considerando (3):

An = n 1 n

n 0 n 1

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

n

n

f p −

−− −

Denotaremos An = f [x0,..,xn] y le llamaremos diferencia dividida de f en x0,..,xn, más adelante veremos este concepto. Entonces

[ ] ==−−+= − ...)xx)...(xx(x,...,x)x()x( n0n01 fpp nn

Aplicando la idea anterior a 1−np , 2−np , … para cualquier n > 0 podemos escribir:

)xx)...(xx(...)xx)(xx()xx()x( 1n0102010 −−−++−−+−+= nn AAAAp =[ ] [ ] [ ]

[ ] )xx)...(xx(x,...,x,x...)xx)(xx(x,x,x)xx(x,xx

1-n0n10

102100100−−+

++−−+−+=

ffff

que es la fórmula de Newton del polinomio de interpolación.

Observaciones:

1. Hemos construido una representación del polinomio de interpolación alternativa a la de Lagrange. Esta fórmula es especialmente interesante desde el punto de vista computacional, permite calcular fácilmente el polinomio de interpolación a partir de polinomios de interpolación de grado inferior.

2. Se hace notar que el número f [x0,…,xn], que veremos con más detalle a continuación, es el coeficiente del término de mayor grado (xn) en el polinomio de interpolación np .

3.2.1 Diferencias divididas

Nos centramos ahora en los coeficientes f [x0,…,xk] que aparecen en la fórmula de Newton. Varias son las expresiones explícitas para calcular dicho número, daremos aquellas que sean especialmente interesantes desde el punto de vista computacional.

Dados x0,..,xn , puntos distintos se demuestra que las diferencias divididas de lafunción f vienen dadas por las expresiones:

[ ] )x(x 00 ff = Diferencias divididas de orden 0 de f en x0.

[ ] [ ] [ ]01

01

01

0110 xx

)x()x(xxxx

x,x−−

=−−

=ffff

f Diferencias divididas de

orden 1 de f en x0,x1 .

[ ] [ ] [ ]0n

1-n0n1n10 xx

x,...,xx,...,xx,...,x,x

−−

=ff

f Diferencias divididas de

orden n de f en x0,…, xn

La construcción de las diferencias divididas de f , según las fórmulas dadasanteriormente, es un procedimiento recurrente que esquematizamos en la siguientetabla:

xk f [xk] f [ ••, ] f [ ••• ,, ] f [ •••• ,,, ]x0 f (x0) [ ]10 x,xf [ ]210 x,x,xf [ ]3210 x,x,x,xfx1 f (x1) [ ]21 x,xf [ ]321 x,x,xf �x2 f (x2) [ ]32 x,xf � �x3 f (x3) � � �� � � � �

Se observa en la tabla anterior que cada columna se calcula a partir de la columna anterior.

Veamos algunas propiedades de las diferencias divididas que nos serán de utilidad al trabajar con ellas.

1. Linealidad:

[ ] [ ] [ ] .,con x,...,xx,...,xx,...,x)( n0n0n0 ℜ∈+=+ βαβαβα gfgf

2.[ ] i

0 n

i k0

0

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

n

ni

kk i

ff=

=≠

=−

∑∏

Esta propiedad se puede demostrar por inducción sobre n, pero vamos a hacerlo como un ejercicio de aplicación de los conocimientos que tenemos del polinomio de interpolación.

Sea np el polinómio de interpolación de f en n0 x,...,x . Utilizando las fórmulas de Lagrange (1) y Newton (2) y reagrupando los términos de mayor orden podemos escribir:

)1(0

)x(x)xx(

)x(xx)xx()ix()x( 1

0

0ki

i

0 ki

k∑ +−

=−−

== −

=

≠=

≠=

∑∏

∏n

in

nn

in

ikk

n

ikk

qffnp

[ ] [ ] )2()x(~xx,...,x)xx)...(xx(x,...,x)x( 1n00

1k0k0 −=

− +=−−= ∑ nn

n

kqffpn

siendo 1−nq y 1~

−nq polinomios de grado n-1. Por tanto:

[ ]∑∏=

≠=

=

n

in

ikk

ff

0n0

0ki

i x,...,x)xx(

)x(

3. [ ] ff =n0 x,...,x [ σ(n))σ( x,...,x 0 ] siendo σ una permutación de {0, 1,...,n}.

Esto es, si reordenamos los puntos, el valor de las diferencias divididas no cambia. El valor de la expresión es independiente del orden en el que lo puntos involucrados intervienen.

Esta propiedad se puede demostrar fácilmente a partir de la propiedad 2. también se puede hacer como un ejercicio de interpolación. Se considera el polinomio np de interpolación de f en n0 x,...,x o en σ(n))σ( x,...,x 0 (es el

mismo conjunto de nodos). Si se construye la fórmula de Newton de np :

• atendiendo a la ordenación x0,...,xn→ [ ]n0 x,...,xf es el coeficiente de la potencia de mayor orden xn en np .

• atendiendo a la ordenación σ(n))σ( x,...,x 0 → f [ σ(n))σ( x,...,x 0 ] es el coeficiente de la potencia de mayor orden xn en np .

Esto es,

[ ] fqfp nn

n =+= − )x(xx,...,x)x( 1n0 [ σ(n))σ( x,...,x 0 ]xn )x(~1−+ nq

siendo 1−nq y 1~

−nq polinomios de grado n-1. Por tanto:

[ ] ff =n0 x,...,x [ σ(n))σ( x,...,x 0 ].

4. A partir de la construcción de diferencias divididas, se obtiene la siguiente expresión para cualquier función f en términos de las diferencias divididas:

[ ] [ ] [ ]

[ ]

( ) (x ) x ,x (x x ) x ,x ,x (x x )(x x ) ... x ,x ,...,x (x x )...(x x )0 0 1 0 0 1 2 0 1 0 1 n 0 n 1

(x)

x ,x ,...,x ,x (x x )...(x x )(x x )0 1 n 0 n 1 n

(x)

f x f f f f

p

f

e

= + − + − − + + − − +−

+ − − −−

�������������������������������

���������������

Esta es una expresión interesante que permite descomponer la función fcomo suma de:

• p(x): el polinomio de interpolación en x0,...,xn expresado mediante la fórmula de Newton.

• Un término adicional

e(x): [ ]x ,x ,...,x ,x (x x )...(x x )0 1 n 0 nf − −

que expresa el error de interpolación y que veremos en detallemás adelante.

5. Si f es una función diferenciable de orden n en un entorno de los puntos x0,...,xn, se demuestra (utilizando el Teorema del Valor Medio) que existe un punto ξ en ese entorno tal que

[ ] .!

)((

nx,...,1x,0x n

nff ξ=

Ejemplo 3.2.1.1. Las diferencias divididas de orden N de un polinomio de grado n con N > n son nulas.

Sea p(x) un polinomio de grado n, por construcción se puede escribir:

[ ]

[ ] [ ] )x-x)(x-x(x,x,xp)x-x(x,xp)x()x(

)x-x(x,xp)x()x(

10100100

000

++=

+=

pp

pp

�donde [ ]x,xp 0 , [ ]x,x,xp 10 , ..., [ ]x,x,...,x,xp 1-n10 son polinomios de grado 1−n ,

2−n , ..., 0, respectivamente. Por tanto, las diferencias divididas de grado 1+n son cero y las de orden superior también por construcción.

Ejemplo 3.2.1.2. Construir el polinomio de grado 3 cuya gráfica pasa por los puntos (1, 1), (2, -1), (3, 1), (4, -1).

Construimos la tabla de diferencias divididas:

xk p [xk] p [ ji x,x ] p [ kji x,x,x ] p [ 4321 x,x,x,x ]1 1 -2 2

34−

2 -1 2 -2

3 1 -2

4 -1

Por tanto, el polinomio buscado es

)3x)(2x)(1x(34)2x)(1x(2)1x(21)x( −−−−−−+−−=p

3.2.2 Fórmula de Newton de diferencias finitas

En muchas aplicaciones prácticas los nodos de interpolación son equiespaciados. Esto simplifica, en general, las expresiones y resultados obtenidos hasta ahora.

Consideramos ahora la construcción del polinomio de interpolación en el caso en que los nodos de interpolación son equidistantes:

ihi += 0xx 0>h

Asociado al paso h, definimos el concepto de diferencias finitas progresivas, )x(fk∆ , de una función:

• Diferencia finita progresiva de orden 1 de f en x:

)x()hx()x( fff −+=∆

• Diferencia finita progresiva de orden 2 de f en x:

=∆∆=∆ ))x(()x(2 ff )x()hx( ff ∆−+∆

• Diferencia finita progresiva de orden n de f en x:

=∆∆=∆ − ))x(()x( 1 ff nn )x()hx( 11 ff nn −− ∆−+∆

Análogamente se definen las diferencias finitas regresivas, )x(fk∇ , y centrales, )x(fkδ , de f :

• )x()x()x( hfff −−=∇ , )2

x()2

x()x( hfhff −−+=δ

• ))x(()x( 1 ff nn −∇∇=∇ , ))x(()x( 1 ff n −= δδδ

El cálculo de las diferencias finitas progresivas de f en los puntos {xi}, atendiendo a su definición recurrente sigue el siguiente diagrama

xk f (xk) = kf f [ ••, ] f [ ••• ,, ]x0 0fx1 1f )x( 0f∆x2 2f )x( 1f∆ )x( 0

2 f∆� � � �

Veamos algunas propiedades de las diferencias finitas:

1. Los operadores nnn δy ,∇∆ son lineales.

2. )x()x()x( 2nin

nin

in fff ++ =∇=∆ δ

3. [ ] k

k

hkf

f!

)x(kx,...,0x

0∆=

Sea p el polinomio de interpolación de f en los nodos equidistantes { }n0ix . Partiendo de la Fórmula de Newton del polinomio de interpolación p y de la relación entre las diferencias divididas y finitas podemos escribir

[ ] ∑∑==

∆==

n

kk

n

k hk

ffp

01-k0

0k

01-k0 )x-x)...(x-x(

!

)x()x-x)...(x-x(kx,...,0x)x(

Haciendo el cambio de variable shi += 0xx resulta:

)(1))-(k-s...(s!

)x()x()x(

0

0k

0 spkfshpp

n

k

=

=∆

=+= ∑

Definiendo los coeficientes binomiales generalizados

10

=

s,

!)1)...(1(

kksss

ks +−−

=

si 0>k ,

se obtiene la siguiente expresión compacta del polinomio

∑=

∆==

n

k

k

ks

fspp0

0 )x()()x(

que es la Fórmula de interpolación de Newton de diferencias progresivas.

Fórmulas análogas se obtienen utilizando las diferencias regresivas y las diferencias centrales.

Ejemplo 3.2.2.1. Calcúlese ∑=

=n

kknf0

2)( , ℵ∈n .

Si construimos la tabla de diferencias finitas progresivas de f obtenemos:

n )(nf )(nf∆ )(2 nf∆ )(3 nf∆ )(4 nf∆0 0

1 1 1

2 5 4 3

3 14 9 5 2

4 30 16 7 2 0

5 55 25 9 2 0

Se observa que 0)( ≡∆ nfk 4≥∀k , por tanto )(nf es un polinomio de grado 3 en n que admite la expresión (Fórmula de Newton de diferencias finitas progresivas):

=−−

∆+−

∆+∆+=!3

)2)(1()0(2

)1()0()0()0()( 32 nnnfnnfnffnf

)2)(1(31)1(

23

−−+−+= nnnnnn .

3.3 Otros algoritmos recurrentes de cálculo

Un tipo especialmente interesante de métodos de construcción, dentro de los cuales está la Fórmula de Newton vista, es el de los algoritmos recurrentes. Estos se basan en la estrategia de calcular en cada paso el polinomio de interpolación de orden creciente a partir de polinomios de interpolación de grado inferior y calculados en etapas previas. El punto de partida para los métodos que vamos a ver es el siguiente resultado.

Sea X una colección de puntos distintos. Denotamos por Xp al polinomio de interpolación de una función f en los puntos del conjunto X. Si a y b son puntos distintos y X∉a y X∉b , entonces el polinomio de interpolación de f en los puntos

{a,b}∪X , que denotamos por Xabp admite la siguiente expresión:

[ ])x)(x()x)(x(1)x( apbpba

p XbXaabX −−−−

=

Donde Xap y Xbp denotan los polinomios de interpolación de f en {a}∪X y {b}∪X respectivamente. Es sencillo verificar que la expresión dada es un

polinomio verificando las condiciones de interpolación requeridas:

• [ ]1 1(x)(x ) (x)(x ) ( )( ) ( )Xa Xb Xax ap b p a p a a b f a

a b a b=− − − = − =

− −

• Análogamente [ ]1 (x)(x ) (x)(x ) ( )Xa Xb x bp b p a f b

a b =− − − =

• Sea X∈c , [ ]1 (x)(x ) (x)(x ) ( )Xa Xb x cp b p a f c

a b =− − − =

Por tanto, por la unicidad del polinomio de interpolación, la expresión dada coincide con Xabp .

Diferentes reordenaciones de X, a y b dan lugar a diferentes algoritmos recursivos de cálculo. Los más usuales son los algoritmos de Aitken y Neville que describimos a continuación.

Algoritmo de Aitken

Sigue el esquema iterativo señalado en la tabla:

kx )x( if 0 (i 1)ip > )1i(01 >ip

0x )f(x0

1x )f(x1 )x(01p

2x )f(x2 )x(02p )x(012p

� � � � �

nx )f(xn )x(0np )x(01np � )x(...01 np

Donde kp ...01 denota el polinomio de interpolación de f en 0,x,...,x0 ≠kk . Nótese que en la primera columna que se calcula =X ∅, 0x=a y b va tomando los valores nx,...x1 , a lo largo de la columna. La segunda columna se calcula utilizando la expresión dada para { }0x=X , 1x=a y b igual a nx,...x2 en los distintos elementos de esta columna.

Algoritmo de Neville

En muchas aplicaciones, los valores de la función se generan secuencialmente y no se sabe a priori cuantos valores se van a generar. En estos casos es especialmente interesante utilizar un esquema que trabaje con el último par de valores. Este es el caso del algoritmo de Neville que sigue el siguiente esquema:

ix )x( if 1iip + 1 2ii ip + +

0x )f(x0

1x )f(x1 )x(01p

2x )f(x2 12 (x)p )x(012p

� � � � �

Nótese que cada elemento de una columna dada se calcula a partir de dos elementos adyacentes de la columna anterior mediante la fórmula dada.

Nota: Cuando sólo se quiere conocer el valor del polinomio de interpolación en un punto o en unos pocos puntos, no es eficiente obtener la representación explícita del polinomio. En estos casos el valor buscado se puede calcular mediante los algoritmos aquí vistos.

Ejemplo 3.3.1. Una exploración petrolífera sondea en tres puntos alineados equidistantes 100 metros entre cada dos consecutivos. Encuentra gas en las profundidades indicadas en la tabla

kx 0 100 200

kp 1895 1450 1670

Suponiendo que la sección de la bolsa de gas considerada se simula por una parábola pasando por los puntos dados, dar una estimación de a que profundidad se espera encontrar gas en la abcisa 135.

Sea )x(p el polinomio de grado dos que interpola los datos de la tabla dada. Estamos interesados en evaluar )x(p en x = 135. Aplicando el algoritmo de Neville en ese punto se obtiene la tabla:

0x0 = 18950 =p100x1 = 14501 =p 25.1294)135(01 =p200x2 = 16702 =p 12 (135) 1527p = 012 (135) 1451.35p =

Donde )135(01p , )135(12p y )135(012p se han calculado siguiendo la fórmula (1):

[ ] 25.1294)xx)(()xx)((xx

1)135( 135x011010

01 =−−−−

= =xpxpp

[ ]12 1 2 2 1 x 1351 2

1(135) ( )(x x ) ( )(x x ) 1527x x

p p x p x=

= − − − =−

[ ]012 01 1 12 0 x 1350 2

1(135) (x)(x x ) (x)(x x ) 1451.35x x

p p p=

= − − − =−

Ejemplo 3.3.2. Calcular utilizando el algoritmo de Aitken el valor del polinomio de interpolación en x = 2 de los datos:

kx -1 0 1 3

ky -1 0 1 27

Se construye el diagrama siguiente utilizando la fórmula (1) según nos indica el algoritmo de Aitken:

kx ky

-1 -1

0 0 2)2(01 =p

1 1 2)2(02 =p 2)2(012 =p

3 27 20)2(03 =p 14)2(013 =p 8)2(0123 =p

Obteniéndose 8)2()2( 0123 == pp .

En la nota y ejemplos anteriores hemos hablado de evaluar al polinomio de interpolación. Esta es quizá la operación más usual con polinomios. Es el momento por tanto de presentar un algoritmo adecuado para tal función, esto es evaluar un polinomio en uno o varios puntos.

Sea )x(p el polinomio de la forman

10 x...)x( ncxccp +++=

La idea es escribir en forma anidada:

))...)).x(c(...((x)x( n1210 +++++= −ncxcxccp

Utilizando el algoritmo recurrente denominado método de Horner:

doendcxpp

nidocp

in

n

:,...,2,1

:

−+==

=

se calcula el valor de )x(: pp = en el punto x.

Observaciones:

1. El método de Horner requiere efectuar n sumas y n productos para evaluar un polinomio de grado n en un punto. El esfuerzo computacional del método es óptimo para esta tarea, suponiendo conocidos los coeficientes del polinomio en términos de la base nx,...,1 . 2. Un procedimiento análogo se puede escribir si el polinomio está escrito entérminos de la base )xx)...(xx(,...,xx,1 100 −−−− n .

3.4 Estudio del error

Una vez visto cómo construir un polinomio de grado dado coincidiendo con la función en un conjunto de puntos, se trata de analizar cómo es esta simulación. Ésto es: ¿Se “parecen” las funciones f y p?; ¿Podemos conseguir que al aumentar el número de puntos de interpolación se “parezcan” más?; ¿Se pueden elegir los nodos de interpolación de forma que el “grado de parecido” sea mayor?. Formalmente, las cuestiones planteadas se refieren al:

• Estudio del error de interpolación.• Estudio de la convergencia de los polinomios de interpolación al aumentar el

grado.• Selección de los nodos de interpolación para conseguir una aproximación

mayor.

Estos temas se abordan en esta sección.

Estudio del error

Dada una función continua f y su polinomio de interpolación p de grado n en los puntos nii ,...,0,x = , la función error de interpolación, )x(e , viene dada por

)x()x()x( pfe −=

¿Qué sabemos de )x(e ? Atendiendo a los requerimientos de interpolación

(x ) 0, 0,...,ie i n= =

pero fuera de esos nodos de interpolación puede alcanzar valores grandes. ¿Qué más podemos decir? Obviamente depende de la información que tengamos de la función f.

A partir de la fórmula de Newton y del concepto de diferencias divididas, tenemos la siguiente representación:

[ ] )1()xx)...(xx(x,x,...,x)x( 00 nnfe −−=

Si la función f es suficientemente regular tenemos una representación más cómoda del error. Para ello veamos previamente una expresión alternativa de las diferencias divididas.

Teorema 3.4.1 Si [ ]( )baCf n ,∈ , siendo [ ]ba, un intervalo que contiene a los puntos nii ,...,0,x = . Entonces existe un punto [ ]ba,∈ξ tal que

[ ]!)(x,...,x

(0 n

ffn

=

Demostración:La función error [ ]( )baCe n ,)x( ∈ y por los requerimientos de interpolación:

nie i ,...,0,0)x( ==

Por tanto, aplicando el Teorema de Rolle, e′ se anula en al menos n puntos entre los { } 0x =i

ni , en definitiva en el intervalo [ ]ba, .

Aplicando el argumento anterior a e′ y sucesivamente a e ′′ ,…, ne( ; se

concluye que ne( tiene al menos un cero ξ en el intervalo [ ]ba, :

)()()(0 ((( ξξξ nnn pfe −==

Si calculamos la derivada n-ésima del polinomio de interpolación expresado mediante la fórmula de Newton:

[ ] !x,...,x)( 0( nfp nn =ξ

De donde se obtiene fácilmente el resultado.

Aplicando este resultado convenientemente a la expresión de la función error (1), se obtiene la siguiente representación.

Corolario 3.4.1 Sea [ ]( )baCf n ,1+∈ siendo [ ]ba, un intervalo que contiene a los puntos nii ,...,0,x = y p es el polinomio de interpolación de f en nii ,...,0,x = . Entonces para cada [ ]ba,x∈ , existe un punto xξ en el intervalo [ ]ba, tal que:

)xx)...(xx(!1)(n)(

)x( 0

1(

nx

nfe −−+

=+ ξ

.

Observaciones:

1. De la expresión anterior se deduce que la magnitud de error de interpolación depende de las propiedades de la función f y de la distribución de los nodos de interpolación.

2. Una acotación del error: Si M es una cota superior de 1( +nf en el intervalo

[ ]ba, , [ ]baMf n ,x,)x(1( ∈∀≤+ , entonces se obtiene la siguiente acotación del

error en dicho intervalo:

[ ]banMe n ,x,)xx)...(xx(

!)1()x( 0 ∈∀−−

+≤

De donde se deduce que el error de interpolación en el intervalo [ ]ba, será a lo sumo:

[ ] [ ] (2).)xx)...(xx(!)1(

)x( 0,x,x nbaba MaxnMeMax −−+

≤ ∈∈

Ejemplo 3.4.1. Acotar los errores que se cometen en el intervalo [ ]2.1,0 al sustituir la función xcos)x( =f por su polinomio interpolador, 1p , en los puntos { }2.1,0 y por el polinomio interpolador, 2p , en { }2.1,6.0,0 , respectivamente.

Sea )x()x()x( 11 pfe −= . Siguiendo la acotación (2)

[ ] [ ]2.1,0x,)1.2x(x2

)x( 2.1,0x1

1 ∈−≤ ∈MaxMe

Para acotar el valor absoluto del polinomio )2.1x(x)x(1 −=q en [ ]2.1,0 de la expresión anterior, derivamos para buscar los puntos críticos:

6.0x0)x(/1 =→=q

Por tanto los valores extremos de )x(1q en [ ]2.1,0 se alcanzan en los extremos del intervalo, donde 0)2.1()0( 11 == qq , o en el punto crítico donde

36.0)6.0(1 =q . Por tanto:

[ ] 36.0)1.2x(x2.1,0x =−∈Max

Para obtener 1M , acotamos xcos)x( −=′′f en [ ]2.1,0 :

[ ]2.1,0x,10cos xcos)( 1 ∈==≤=′′ Mxf .

Por tanto,

[ ]2.1,0x,18.0)x(1 ∈≤e .

Sea )x()x()x( 22 pfe −= . Sabemos que

[ ].2.1,0x,)1.2x)(0.6x(x!3

)x( 22 ∈−−≤ MaxMe

Si llamamos )1.2x)(0.6x(x)x(2 −−=q , procediendo como en el caso anterior se llega a que en el intervalo de trabajo

32 )6.0(

932)x( ≤q

Buscamos un valor para 2M :

[ ]2.1,0x,932039.02.1 x)( 23( ∈==≤= Msensenxf

Operando se concluye que:

[ ]2.1,0x,012915.0)x(2 ∈≤e .

Ejemplo 3.4.2.

a) Se considera la función )(f xln)x( = y su polinomio interpolador en 0x y

1x con 10 xx0 << . Dar una acotación del error de interpolación en [ ]10 x,x . En el caso de que 1x0 = , ¿hasta dónde se puede extender el intervalo garantizando un

error menor que 410− ?. ¿Y si se parte de 100x0 = ?.

Utilizando la acotación del error dada en (2) con:

• [ ] [ ] 20

2x,xx,x2 x1

x1)x(

1010==′′= ∈∈ xx MaxfMaxM

•0 1

21 0

x x0 1 0 1 0 12x2

(x x )(x x )(x x ) (x x )(x x ) , [x , ]2

Max x x+=

−− − = − − = ∈

Luego2

1 00 12

0

(x x )(x) , [x , ]8x

e x x−≤ ∈ .

Si 1x0 = , 2

11

(x 1)(x) , [1, ]8

e x x−≤ ∈ . Veamos hasta qué valor puede tomar 1x1 >

para que se mantenga que 410)x( −<e :

24 21

1(x 1) 10 x 1 2 2 10 0.028284

8− −−

< → − < ⋅ = .

Procediendo análogamente para 100x0 = , la acotación del error se mantiene

inferior que 410− si

82842.222100x1 =<− .

b) Se desea tabular )(f xln)x( = en el intervalo [ ]1,100 para obtener

estimaciones de los valores de x)(f con un error menor o igual que 210− mediante interpolaciones lineales entre puntos adyacentes.

La idea es asignar a x)(f el valor de )x(ip , )x()x( ipf ≈ , si [ ]1ii x,xx +∈ , siendo ip el polinomio de interpolación de f en 1ii y xx + . Los nodos ix ,

Ni ,...,1,0= , se han de elegir en el intervalo [ ]100,1 de forma que garanticen un

error menor que 210− . Por la expresión de acotación del error obtenida en el apartado anterior:

[ ]1ii2i

2i1 x,xx,

x8xx

)x( ++ ∈

−≤ i

ie

siendo ie el error de interpolación ( x)()x()x( ii pfe −= ) en cada intervalo

[ ]1x,x +ii . Obligando a que esta acotación sea menor o igual que 210− se obtiene

2221 x108xx iii

−+ ⋅≤−

Luego

1 1 11 0x x (1 2 2 10 ) ... (1 2 2 10 ) xi

i i− − +

+ ≤ + ⋅ ≤ ≤ + ⋅

Si evaluamos 2822427.110221 1 =⋅+ − , tomando 01

1 x)2.1(x ++ = ii , tenemos

garantizada la aproximación pedida.

Elección de nodos óptimos de interpolación

A la vista de la acotación (2) del error de interpolación, una cuestión interesante es si se pueden elegir los nodos de interpolación de forma que la expresión (2) sea mínima. Se demuestra que los puntos

(3)0,!)1(2

)12(cosx nin

nii ≤≤

++

=

Garantizan un error mínimo entre todas las posibles elecciones de 1+nnodos en el intervalo [ ]1,1− . En este caso:

[ ]1,1,21

!)1()x( −∈

+≤ x

nMe n

En cualquier otro intervalo [ ]ba, , los nodos óptimos serán los trasladados de (3) al intervalo [ ]ba, . Los puntos señalados en (3) son los ceros del polinomio de grado 1+n de Chebyshev que se verán en el capítulo de aproximación de funciones.

Convergencia de los polinomios de interpolación

Al aproximar la función f por su polinomio de interpolación de grado n, np , en los puntos ix , que supondremos equiespaciados, surge la pregunta de si al aumentar el número de puntos, ésto es, el grado del polinomio, aumenta el grado de aproximación. Esto es,

[ ] ?0)x()x(¿ ,x ∞→∈ →− nba pfMax

La respuesta es que en general no. Para ello veamos gráficamente un ejemplo clásico (debido a C.Runge) donde no hay convergencia. Se considera la función

[ ]5,5x,x11)x(

2−∈

+=f

Y los puntos equiespaciadosn

hniihi10,,...,0,5x ==+−= . Se demuestra que

)x()x( pf − puede ser arbitrariamente grande en puntos del intervalo [ ]5,5− para n suficientemente grande:

Función de Runge (-) y polinomio interpolador de grado 10 (---).

Como se observa en el gráfico al aumentar el grado del polinomio aumenta su carácter oscilante, alejándose fuertemente cerca de los extremos del intervalo de la función f. Obsérvense en la gráfica los valores de )5.4(10p y de )5.4(f .

Bajo ciertas condiciones de regularidad de la función f y una elección adecuada de los puntos de interpolación se pueden conseguir resultados de convergencia.