Está en la página 1de 7

MÉTODOS NUMÉRICOS 3006907

NOTAS DE CLASE - SEMANA 05


INTERPOLACIÓN Y APROXIMACIÓN POLINOMIAL

Consideremos los problemas:

Dado un conjunto de n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) con xi 6= xj y queremos hallar un polinomio p de
menor grado posible que satisface la condición p(xi ) = yi para i = 0, . . . , n, llamada condición de interpolación.
El polinomio p es de grado menor o igual a n y recibe el nombre de polinomio interpolante y los xi reciben el
nombre de nodos de la interpolación.
P(x)

Conocida una función f queremos aproximarla por medio de un polinomio. Una forma de hacerlo es basados en la
interpolación, esto es, tomamos un conjunto de n + 1 nodos x0 , x1 , . . . , xn y hallamos el polinomio interpolante p
para los n + 1 puntos (x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn )).

puntos
P(x)
f(x)

Ambos casos se reducen a hallar el polinomio interpolante para la nube de n + 1 puntos {(xi , yi )}ni=0 . Veamos como hallar
tal polinomio.

⋆ POLINOMIO INTERPOLANTE DE LAGRANGE

Consideremos primero: dados los puntos (x0 , y0 ) y (x1 , y1 ), hallemos el polinomio p de grado menor o igual a uno que pasa
por ellos, es decir, p(x0 ) = y0 y p(x1 ) = y1 . Dicho polinomio esta dado por (la ecuación de la recta):
y0 − y1
p(x) = y0 + (x − x0 )
x0 − x1
que también puede ser escrito por
x − x1 x − x0
p(x) = y0 + y1
x0 − x1 x1 − x0

1
x − x1 x − x0
si denotamos L0 (x) := y L1 (x) := el polinomio que interpola a los puntos (x0 , y0 ) y (x1 , y1 ) esta dado
x0 − x1 x1 − x0
por:
p(x) = y0 L0 (x) + y1 L1 (x)

donde los polinomios L0 y L1 satisfacen la propiedad

L0 (x0 ) = 1, L0 (x1 ) = 0, L1 (x0 ) = 0, L1 (x1 ) = 1

que permiten verificar rápidamente que el polinomio p satisface la condición de interpolación.

Ahora consideremos los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) con xi 6= xj y encontremos una expresión similar para
el polinomio p:
p(x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) + . . . + yn Ln (x)

donde los polinomios Li deben cumplir con:


(
1, i=j
Li (xj ) =
0, i 6= j

para que p interpole todos los puntos. Si queremos que Li se anule en x0 , x1 , . . . , xi−1 , xi+1 , . . . , xn tomamos factores de
la forma (x − xj ), ası́:
(x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )

ahora necesitamos que Li (xi ) = 1 y para ello tenemos la expresión general:

(x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )


Li (x) =
(xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )

obteniendo un polinomio de grado menor o igual a n que interpola los n + 1 puntos. El polinomio p es llamado polinomio
interpolante de Lagrange.

Teorema. Si x0 , x1 , . . . , xn son n + 1 números (nodos) distintos y si f es una función cuyos valores están
dados en esos números, entonces existe un único polinomio pn de grado a lo más n, con la propiedad de que
f (xi ) = pn (xi ), i = 0, 1, . . . , n. Este polinomio está dado por
n
X
pn (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x) + . . . + f (xn )Ln (x) = f (xi )Li (x)
i=0

donde los coeficientes polinómicos de Lagrange Li estan dados por


n
Y
(x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn ) (x − xj )
Li (x) = = , i = 0, 1, . . . , n.
(xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn ) j=0 (xi − xj )
j6=i

Ejemplo Un automóvil realiza un recorrido por una carretera recta y se cronometra su recorrido en varios puntos. Los
datos recabados de las observaciones se incluyen en la tabla adjunta, donde el tiempo se indica en segundos y la distancia
en pies.
Tiempo 0 3 5 8 13
Distancia 0 225 383 623 993
Use el polinomio interpolante de Lagrange para predecir la posición del automóvil y su velocidad cuando t = 10s.

2
Solución: Tenemos 5 nodos, por lo tanto el grado del polinomio es menor o igual a 4. El polinomio interpolante de Lagrange
tiene la forma
p4 (x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) + y3 L3 (x) + y4 L4 (x)

donde
x0 = 0 x1 = 3 x2 = 5 x3 = 8 x4 = 13
y0 = 0 y1 = 225 y2 = 383 y3 = 623 y4 = 993
luego
p4 (x) = 0 L0 (x) + 225 L1 (x) + 383 L2 (x) + 623 L3 (x) + 993 L4 (x).

Calculamos L1 , L2 , L3 y L4 ya que el coeficiente que acompaña a L0 es el cero


(x − x0 )(x − x2 )(x − x3 )(x − x4 ) (x − 0)(x − 5)(x − 8)(x − 13) 1
L1 (x) = = = x(x − 5)(x − 8)(x − 13)
(x1 − x0 )(x1 − x2 )(x1 − x3 )(x1 − x4 ) (3 − 0)(3 − 5)(3 − 8)(3 − 13) −300

(x − x0 )(x − x1 )(x − x3 )(x − x4 ) (x − 0)(x − 3)(x − 8)(x − 13) 1


L2 (x) = = = x(x − 3)(x − 8)(x − 13)
(x2 − x0 )(x2 − x1 )(x2 − x3 )(x2 − x4 ) (5 − 0)(5 − 3)(5 − 8)(5 − 13) 240

(x − x0 )(x − x1 )(x − x2 )(x − x4 ) (x − 0)(x − 3)(x − 5)(x − 13) 1


L3 (x) = = = x(x − 3)(x − 5)(x − 13)
(x3 − x0 )(x3 − x1 )(x3 − x2 )(x3 − x4 ) (8 − 0)(8 − 3)(8 − 5)(8 − 13) −600

(x − x0 )(x − x1 )(x − x2 )(x − x3 ) (x − 0)(x − 3)(x − 5)(x − 8) 1


L4 (x) = = = x(x − 3)(x − 5)(x − 8)
(x4 − x0 )(x4 − x1 )(x4 − x2 )(x4 − x3 ) (13 − 0)(13 − 3)(13 − 5)(13 − 8) 5200

por lo tanto el polinomio interpolante de Lagrange es


225 383 623 993
p4 (x) = − x(x − 5)(x − 8)(x − 13) + x(x − 3)(x − 8)(x − 13) − x(x − 3)(x − 5)(x − 13) + x(x − 3)(x − 5)(x − 8)
300 240 600 5200
37263 831 2 131 3 1 4
p4 (x) = x+ x − x − x .
520 650 2600 650
Dado que la velocidad es la derivada de la distancia, evaluando en t = 10
40491
p4 (10) = ≈ 778.6731
52
831 393 2 2 37263
p′4 (10) = 10 − 10 − 103 + ≈ 75.9596
325 2600 325 520
La posición del automóvil a los 10 segundos es aproximadamente de 778.6731 pies y su velocidad es aproximadamente
75.9596 pies por segundo.

Ejemplo Aproximar la función f (x) = sen(ln(x2 + 1)) por un polinomio de grado 3 tomando x0 = −3, x1 = −1.8,
x2 = 1.3 y x3 = 2.9. Aproximar el valor de f (0.5), ¿cuál es el error relativo cometido?

Solución: Primero hallamos las imagenes

f (x0 ) = f (−3) = sen(ln(9 + 1)) ≈ 0.744


f (x1 ) = f (−1.8) = sen(ln(3.24 + 1)) ≈ 0.992
f (x2 ) = f (1.3) = sen(ln(1.69 + 1)) ≈ 0.8358
f (x3 ) = f (2.9) = sen(ln(8.41 + 1)) ≈ 0.7832

el polinomio será

p3 (x) = f (x0 ) L0 (x) + f (x1 ) L1 (x) + f (x2 ) L2 (x) + f (x3 ) L3 (x)


p3 (x) ≈ 0.744 L0 (x) + 0.992 L1 (x) + 0.8358 L2(x) + 0.7832 L3(x)

3
donde
(x − x1 )(x − x2 )(x − x3 ) (x + 1.8)(x − 1.3)(x − 2.9) 1
L0 (x) = = ≈ (x + 1.8)(x − 1.3)(x − 2.9)
(x0 − x1 )(x0 − x2 )(x0 − x3 ) (−3 + 1.8)(−3 − 1.3)(−3 − 2.9) −30.444
(x − x0 )(x − x2 )(x − x3 ) (x + 3)(x − 1.3)(x − 2.9) 1
L1 (x) = = ≈ (x + 3)(x − 1.3)(x − 2.9)
(x1 − x0 )(x1 − x2 )(x1 − x3 ) (−1.8 + 3)(−1.8 − 1.3)(−1.8 − 2.9) 17.484
(x − x0 )(x − x1 )(x − x3 ) (x + 3)(x + 1.8)(x − 2.9) 1
L2 (x) = = ≈ (x + 3)(x + 1.8)(x − 2.9)
(x2 − x0 )(x2 − x1 )(x2 − x3 ) (1.3 + 3)(1.3 + 1.8)(1.3 − 2.9) −21.328
(x − x0 )(x − x1 )(x − x2 ) (x + 3)(x + 1.8)(x − 1.3) 1
L3 (x) = = ≈ (x + 3)(x + 1.8)(x − 1.3)
(x3 − x0 )(x3 − x1 )(x3 − x2 ) (2.9 + 3)(2.9 + 1.8)(2.9 − 1.3) 44.368
luego el polinomio de grado 3 que aproxima a la función f en los nodos dados es
0.744 0.992 0.8358 0.7832
p3 (x) ≈ − (x+1.8)(x−1.3)(x−2.9)+ (x+3)(x−1.3)(x−2.9)− (x+3)(x+1.8)(x−2.9)+ (x+3)(x+1.8)(x−1.3)
30.444 17.484 21.328 44.368

p3 (x) ≈ 0.010764x3 − 0.022107x2 − 0.089319x + 0.96563.

El valor aproximado de f (0.5) esta dado por p3 (0.5) ≈ 0.91679 y el error relativo cometido esta dado por:

f (0.5) − p3 (0.5) 0.2213 − 0.91679
≈ ≈ 3.14275.
f (0.5) 0.2213

Notemos que si adicionamos un nodo más xn+1 , el polinomio interpolante será pn+1 y para construirlo, prácticamente
toca empezar de cero. Ası́ que la pregunta ahora es ¿se podrá construir el polinomio interpolante de forma recursiva? la
respuesta es sı́ y se construye a continuación.

⋆ POLINOMIO INTERPOLANTE DE NEWTON

Uno de los problemas del polinomio interpolante de Lagrange es que no hay una relación entre pn y pn+1 , cada polinomio
debe construirse individualmente, por lo tanto consideramos una nueva forma de construir el polinomio interpolante. Una
forma recursiva de construir el polinomio que interpola a una función f en los n + 1 nodos x0 , x1 , . . . , xn con xi 6= xj
consiste en:

Sea pk el polinomio de grado menor o igual a k que interpola a f en los primeros k + 1 nodos, dados por

p1 (x) = a0 + a1 (x − x0 )
p2 (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 )
p3 (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + a3 (x − x0 )(x − x1 )(x − x2 )
..
.
pn (x) = a0 + a1 (x − x0 ) + . . . + an (x − x0 )(x − x1 ) . . . (x − xn−1 )

es claro que pk (x) = pk−1 (x)+ ak (x− x0 ) . . . (x− xk−1 ). Las incógnitas ai para i = 0, 1, . . . , n las obtenemos de la condición
de interpolación, esto es, p1 debe interpolar a f en los nodos x0 y x1

p1 (x0 ) = f (x0 ) → a0 = f (x0 )


f (x1 ) − f (x0 )
p1 (x1 ) = f (x1 ) → a1 =
x1 − x0
p2 debe interpolar a f en los nodos x0 , x1 y x2 , de los nodos x0 y x1 obtenemos ls resultados anteriores, por lo tanto
empleamos el nodo nuevo
f (x1 ) − f (x0 )
f (x2 ) − f (x0 ) − (x2 − x0 )
x1 − x0
p2 (x2 ) = f (x2 ) → a2 =
(x2 − x0 )(x2 − x1 )

4
podemos rescribirlo de la forma
f (x2 ) − f (x1 ) f (x1 ) − f (x0 )

x2 − x1 x1 − x0
a2 =
x2 − x0
a1 y a2 son cocientes de diferencias, al emplear la condición de interpolación sobre p3 en el nodo x3 llegamos a una
expresión similar para a3 . Para simplificar la construcción de los ai emplearemos el siguiente concepto.

Definición. Sea f una función definida en los nodos x0 , x1 , . . . , xn , denotamos y definimos las diferencias divididas
para f en los respectivos nodos

f [xi ] = f (xi ) Diferencia dividida cero de f respecto a xi


f [xi+1 ] − f [xi ]
f [xi , xi+1 ] = Primera diferencia dividida de f respecto a xi y xi+1
xi+1 − xi
f [xi+1 , xi+2 ] − f [xi , xi+1 ]
f [xi , xi+1 , xi+2 ] = Segunda diferencia dividida
xi+2 − xi
f [xi+1 , xi+2 , xi+3 ] − f [xi , xi+1 , xi+2 ]
f [xi , xi+1 , xi+2 , xi+3 ] = Tercera diferencia dividida
xi+3 − xi

en general la k−ésima diferencia dividida de f respecto a xi , xi+1 . . . , xi+k

f [xi+1 , . . . , xi+k ] − f [xi , . . . , xi+k−1 ]


f [xi , xi+1 , . . . , xi+k−1 , xi+k ] = .
xi+k − xi

Observamos de la definición anterior

a0 = f [x0 ] , a1 = f [x0 , x1 ] , a2 = f [x0 , x1 , x2 ]

en general se cumple que


ai = f [x0 , . . . , xi ] .

El polinomio que interpola a f en los n + 1 nodos x0 , x1 , . . . , xn con xi 6= xj

pn (x) = a0 + a1 (x − x0 ) + . . . + an (x − x0 )(x − x1 ) . . . (x − xn−1 )

con ai = f [x0 , . . . , xi ] para todo i, recibe el nombre de polinomio interpolante de Newton.

Las diferencias divididas para f las podemos hallar por medio de la siguiente tabla de diferencias

xi f [xi ] f [xi , xi+1 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ] f [xi , xi+1 , xi+2 , xi+3 , xi+4 ]
x0 f [x0 ]
տ
x1 f [x1 ] ←− f [x0 , x1 ]
տ տ
x2 f [x2 ] ←− f [x1 , x2 ] ←− f [x0 , x1 , x2 ]
տ տ տ
x3 f [x3 ] ←− f [x2 , x3 ] ←− f [x1 , x2 , x3 ] ←− f [x0 , x1 , x2 , x3 ]
տ տ տ տ
x4 f [x4 ] ←− f [x3 , x4 ] ←− f [x2 , x3 , x4 ] ←− f [x1 , x2 , x3 , x4 ] ←− f [x0 , x1 , x2 , x3 , x4 ]

Observación El polinomio interpolante de Lagrange y de Newton para una función f en los n + 1 nodos o para un
conjunto de n + 1 puntos son el mismo, solo que tienen diferentes formas de representarse.

x −3 −1 0 4 5
Ejemplo a. Hallar el polinomio que interpola los valores de la tabla
y 5 6 1 −12 3
b. Si adicionalmente, sabemos que y(2) = 12, ¿cuál es el polinomio que interpola todos los puntos conocidos?

5
Solución: a. Como tenemos 5 nodos hallamos el polinomio interpolante p4 de grado menor o igual a 4 de la forma

p4 (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + a3 (x − x0 )(x − x1 )(x − x2 ) + a4 (x − x0 )(x − x1 )(x − x2 )(x − x3 ).

Construimos la tabla de diferencias con f (xi ) = yi para i = 0, 1, 2, 3, 4

xi f [xi ] f [xi , xi+1 ] f [xi , xi+1 , xi+2 ]


x0 = −3 f [x0 ] = 5
տ 6−5 1
x1 = −1 f [x1 ] = 6 ←− f [x0 , x1 ] = =
−1 − (−3) 2
տ 1−6 տ −5 − 21 11
x2 = 0 f [x2 ] = 1 ←− f [x1 , x2 ] = = −5 ←− f [x0 , x1 , x2 ] = =−
0 − (−1) 0 − (−3) 6
13
տ −12 − 1 13 տ − − (−5) 7
x3 = 4 f [x3 ] = −12 ←− f [x2 , x3 ] = =− ←− f [x1 , x2 , x3 ] = 4 =
4−0 4 4 − (−1) 20
տ 3 − (−12) տ 15 − (− 13
4 ) 73
x4 = 5 f [x4 ] = 3 ←− f [x3 , x4 ] = = 15 ←− f [x2 , x3 , x4 ] = =
5−4 5−0 20

f [xi , xi+1 , xi+2 , xi+3 ] f [xi , xi+1 , xi+2 , xi+3 , xi+4 ]


7
20− (− 11
6 )
131
f [x0 , x1 , x2 , x3 ] = =
4 − (−3) 420
73 7 11131
− 11 տ − 420 5
f [x1 , x2 , x3 , x4 ] = 20 20 = ←− f [x0 , x1 , x2 , x3 , x4 ] = 20
=
5 − (−1) 20 5 − (−3) 168
luego el polinomio que interpola los valores de la tabla es:
1 11 131 5
p4 (x) = 5 + (x + 3) − (x + 3)(x + 1) + (x + 3)(x + 1)x + (x + 3)(x + 1)x(x − 4).
2 6 420 168
b. Ahora, si y(2) = 12 la nueva tabla es

x −3 −1 0 4 5 2
y 5 6 1 −12 3 12

tenemos 6 nodos ası́ que hallamos el polinomio de grado menor o igual a 5 que interpola los datos, pero, dado que el
polinomio interpolante de Newton se construye es forma recursiva sabemos que

p5 (x) = p4 (x) + a5 (x − x0 )(x − x1 )(x − x2 )(x − x3 )(x − x4 )


p5 (x) = p4 (x) + a5 (x + 3)(x + 1)x(x − 4)(x − 5)

la incógnita a5 la obtenemos por la condición de interpolación faltante, es decir, p5 (2) = 12


1 11 131 5
p5 (2) = 5 + (2 + 3) − (2 + 3)(2 + 1) + (2 + 3)(2 + 1)2 + (2 + 3)(2 + 1)2(2 − 4) + a5 (2 + 3)(2 + 1)2(2 − 4)(2 − 5)
2 6 420 168

87 19
12 = − + 180 a5 → a5 =
7 140
luego
1 11 131 5 19
p5 (x) = 5 + (x + 3) − (x + 3)(x + 1) + (x + 3)(x + 1)x + (x + 3)(x + 1)x(x − 4) + (x + 3)(x + 1)x(x − 4)(x − 5).
2 6 420 168 140

Ejemplo Aproximar la función f (x) = ex − cos(ln(x2 + 3)) por un polinomio de grado 3 tomando x0 = −4, x1 = 1.3,
x2 = −0.5 y x3 = 2.9.

Solución: Tenemos 4 nodos, el polionomio interpolante de grado menor o igual a 3 tiene la forma

p3 (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + a3 (x − x0 )(x − x1 )(x − x2 )

6
y la tabla de diferencias divididas esta dada por

xi f [xi ] f [xi , xi+1 ]


x0 = −4 f [x0 ] ≈ 0.9989
տ 3.6439 − 0.9989
x1 = 1.3 f [x1 ] ≈ 3.6439 ←− f [x0 , x1 ] = ≈ 0.4991
1.3 − (−4)
տ 0.2244 − 3.6439
x2 = −0.5 f [x2 ] ≈ 0.2244 ←− f [x1 , x2 ] = ≈ 1.8997
−0.5 − 1.3
տ 18.9344 − 0.2244
x3 = 2.9 f [x3 ] ≈ 18.9344 ←− f [x2 , x3 ] = ≈ 5.5029
2.9 − (−0.5)

f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ]


1.8997 − 0.4991
f [x0 , x1 , x2 ] = ≈ 0.4002
−0.5 − (−4)
5.5029 − 1.8997 տ 2.252 − 0.4002
f [x1 , x2 , x3 ] = ≈ 2.252 ←− f [x0 , x1 , x2 , x3 ] = ≈ 0.2684
2.9 − 1.3 2.9 − (−4)
luego
p3 (x) ≈ 0.9989 + 0.4991(x + 4) + 0.4002(x + 4)(x − 1.3) + 0.2684(x + 4)(x − 1.3)(x + 0.5).
La pregunta ahora es: ¿cuál es el error que se comete al aproximar f por el polinomio interpolante?

Teorema. Supongamos que x0 , x1 , . . . , xn son n+ 1 números distintos en el intervalo [a, b] y que f ∈ C n+1 [a, b].
Entonces, para cada x ∈ [a, b] existe un número ξ (x) en (a, b) con

f (x) = pn (x) + E (x)

donde pn es el polinomio que interpola a f en los nodos x0 , x1 , . . . , xn y E es el término del error dado por
n
f n+1 (ξ (x)) Y
E (x) = (x − xi ) .
(n + 1)! i=0

x
Ejemplo Hallar una cota para el error que se comete al aproximar la función f (x) = ln por medio del polinomio
2
interpolante de grado 3 en el intervalo [1, 3], tomando los nodos x0 = 1, x1 = 1.3, x2 = 2.1 y x3 = 3.

Solución: La cota está dada por el máximo valor que puede tomar |E (x)| . El error esta dado por:
f (4) (e
x)
E (x) = (x − 1) (x − 1.3) (x − 2.1) (x − 3) ,
4!
calculamos las derivadas de f
1 1 2 6
f ′ (x) = , f ′′ (x) = − , f ′′′ (x) = , f (4) (x) = − ,
x x2 x3 x4
luego
1 6 1 6 4
|E (x)| = − 4 (x − 1) (x − 1.3) (x − 2.1) (x − 3) = 4 x − 7.4x3 + 19.33x2 − 21.12x + 8.19

4! e
x 4! xe
6

el máximo valor de xe4 para x
e ∈ (1, 3) se alcanza cuando x e = 1 (la función xe64 es decreciente en [1, 3], por la tanto
alcanza su valor máximo en el extremo izquierdo), y para x4 − 7.4x3 + 19.33x2 − 21.12x + 8.19 = g (x), hallamos sus
valores extremos en [1, 3]. Las raı́ces de g ′ (x) = 4x3 − 22.2x2 + 38.66x − 21.12 son 1.1326, 2.6740 y 1.7434, evaluamos en
los números crı́ticos y en los extremos del intervalo

g (1) = 0, g (1.7434) ≈ 0.1477, g (1.1326) ≈ −4.01 × 10−2 , g (3) = 0, g (2.6740) ≈ −0.4304,


6(0.4304)
ası́ |g (x)| es menor a 0.4304 y la cota del error es |E (x)| ≤ ≈ 0.1076.
4!

También podría gustarte