Está en la página 1de 10

1 Interpolación polinomial 1

INTERPOLACIÓN
Interpolar una función f (x) consiste en aproximar la función con otra función g(x), escogida
entre una clase de funciones y que satisface algunas propiedades. La función g(x) sustituye
a f (x).
Algunas situaciones son necesarias para efectuar dicha sustitución, como por ejemplo

a) Cuando conocemos solamente los valores numéricos de una función para un conjunto
finito y discreto de puntos en un intervalo y es necesario calcular el valor en algún
otro punto del intervalo.

b) Cuando la función en estudio tiene una expresión analı́tica muy complicada tal que
operaciones como diferenciación e integración son dificiles de realizar.

Consideramos (n + 1) puntos distintos: x0 , x1 , x2 , . . . , xn llamados nodos de la interpolación


y los valores de f (x) en esos puntos f (x0 ), f (x1 ), f (x2 ), . . . f (xn ).
La forma de interpolación que veremos, consiste en obtener una determinada función
g(x) tal que: 

 g(x0 ) = f (x0 )
 g(x1 ) = f (x1 )



g(x2 ) = f (x2 )
 .. ..



 . .
 g(x ) = f (x )
n n

Las funciones que sustituyen las funciones dadas pueden ser exponenciales, logarı́tmicas,
trigonométricas, polinomiales, etc. Nosotros consideraremos que g(x) pertenece a la clase
de las funciones polinomiales, debido que los polinomios tienen como derivadas e integrales
polinomios y son relativamente más fáciles de trabajar computacionalmente.

1 Interpolación polinomial
Dados los (n + 1) puntos (x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn )), queremos aproximar f (x)
por un polinomio pn (x), de grado menor o igual a n, tal que :

f (xk ) = p(xk ) k = 0, 1, 2, . . . , n

Surgen dos preguntas:


¿Existe siempre un polinomio pn (x) que satisfaga estas condiciones? y si existe ¿es único?

1.1 Interpolación lineal


Calculemos teóricamente para dos puntos distintos (x0 , f (x0 )) y (x1 , f (x1 )), como n = 1 la
interpolación para dos puntos es llamado de interpolación lineal.
Dados dos puntos distintos (x0 , f (x0 )), (x1 , f (x1 )) deseamos calcular f (x̄) con x̄ ∈ (x0 , x1 )
El polinomio interpolador es de primer grado

p1 (x) = a1 x + a0

tenemos que determinar las incógnitas a1 y a0 , montamos el sistema



a0 + a1 x0 = f (x0 )
a0 + a1 x1 = f (x1 )
1 Interpolación polinomial 2

La matriz de coeficientes del sistema es


 
1 x0
A= det(A) = x0 − x1 6= 0
1 x1

El sistema tiene solución única.

1.2 Interpolación polinomial


Dados los (n + 1) puntos (x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn )), queremos aproximar f (x)
por un polinomio pn (x), de grado menor o igual a n, tal que :

f (xk ) = pn (xk ) k = 0, 1, 2, . . . , n

Representamos pn (x) por

pn (x) = ao + a1 x + a2 x2 + . . . + an xn .

Entonces obtener pn (x) significa obtener los coeficientes a0 , a1 , . . . , an .


De la condición f (xk ) = pn (xk ) ∀k = 0, 1, 2, . . . , n montamos el siguiente sistema


 a0 + a1 x0 + a2 x20 + . . . + an xn0 = f (x0 )
 a0 + a1 x1 + a2 x2 + . . . + an xn = f (x1 )

1 1
.. .. .. .. .. ..

 . . . . . .
 a + a x + a x2 + . . . + a xn = f (x )

0 1 n 2 n n n n

con n + 1 ecuaciones y n + 1 incógnitas: a0 , a1 , . . . , an .


La matriz A de coeficientes es
 
1 x0 x20 . . . xn0
 1 x1 x21 . . . xn1 
A =  ..
 
.. .. .. .. 
 . . . . . 
1 xn xn . . . xnn
2

que es conocida como la matriz de Vandermonde y por tanto, desde que x0 , x1 , . . . , xn sean
siempre puntos distintos, tenemos que:
n
Y
det A = (xi − xj ),
i=1
i>j

Como xi 6= xj entonces det(A) 6= 0 y el sistema lineal admite solución única.


Teorema 1 (Existencia y unicidad) Dado el conjunto de n + 1 puntos distintos
(xk , f (xk )), k = 0, 1 . . . , n, es decir xk 6= xj , j 6= k. Existe un único polinomio pn (x) de
grado ≤ n, tal que f (xk ) = pn (xk ) ∀k = 0, 1, 2, . . . , n.

1.3 Formas de obtener el polinomio interpolante


Estudiaremos tres formas de encontrar el polinomio.
a) Resolución de un sistema lineal

b) Formas de Lagrange

c) Forma de Newton
2 Resolución de un sistema lineal 3

2 Resolución de un sistema lineal


Veamos algunos ejemplos:

1. Encontrar el polinomio de primer grado que interpola los puntos de la tabla y deter-
minar f (0.73)
x 0 1
f(x) 1.35 2.94
Tenemos que p1 (x) = a0 + a1 x

p1 (0) = f (0) = a0 + a1 (0) = 1.35


p1 (1) = f (1) = a0 + a1 (1) = 2.94

Resolviendo el sistema lineal, obtenemos a0 = 1.35 y a1 = 1.59. Entonces

p1 (x) = 1.59x + 1.35 −→ p1 (0.73) = 1.59(0.73) + 1.35 = 2.51

2. Encontrar el polinomio de segundo grado que interpola los puntos de la tabla y apro-
ximar f (1)
x -1 0 2
f(x) 4 1 -1
Tenemos que p2 (x) = a0 + a1 x + a2 x2

p2 (x0 ) = f (x0 ) = a0 − a1 + a2 = 4
p2 (x1 ) = f (x1 ) = a0 = 1
p2 (x2 ) = f (x2 ) = a0 + 2a1 + 4a2 = −1

Resolviendo el sistema lineal, obtenemos a0 = 1, a1 = 7/3, y a2 = 2/3.


7 2 7 2 2
p2 (x) = 1 − x + x2 −→ p2 (1) = 1 − + =−
3 3 3 3 3

La determinación del polinomio de interpolación por medio de la solución de un sistema


es trabajoso y pueden ocurrir errores de redondeo haciendo que la solución obtenida sea
irreal.
Además al aproximar una función por un polinomio se comete el error por truncamiento
pues estamos aproximando la función solamente através de un conjunto de puntos discretos.

3 Forma de Lagrange
Sean x0 , x1 , x2 , . . . , xn , (n + 1) puntos distintos y yi = f (xi ), i = 0, 1, . . . , n. Sea pn (x) el
polinomio de grado ≤ n que interpola f en x0 , x1 , x2 , . . . , xn . Podemos representar pn (x)
en la forma pn (x) = y0 L0 (x) + y1 L1 (x) + . . . + yn Ln (x), donde los polinomios Lk (x) para
k = 0, 1, 2, . . . , n, son de grado n.
Para cada i queremos que la condición pn (xi ) = yi se satisfaga, es decir

pn (xi ) = y0 L0 (xi ) + y1 L1 (xi ) + . . . + yn Ln (xi ) = yi

La forma más simple para satisfacer esta condición es imponer



0 si k 6= i
Lk (xi ) =
1 si k = i
3 Forma de Lagrange 4

Entonces definimos Lk (x) por

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


Lk (x) =
(xk − x0 )(xk − x1 ) . . . (xk − xk−1 )(xk − xk+1 ) . . . (xk − xn )

Además para x = xi , i = 0, 1, . . . , n tenemos


n
X
pn (xi ) = yk Lk (xi ) = yi Li (xi ) = yi
k=0

Entonces, la forma de Lagrange para el polinomio interpolador de grado menor o igual a n


es n
X
pn (x) = yk Lk (x) = y0 L0 (x) + y1 L1 (x) + · · · yn Ln (x)
k=0
con n
Y (x − xj )
Li (x) =
j=0
(xi − xj )
j6=i

Interpolación Lineal
Calculemos teóricamente para dos puntos distintos (x0 , f (x0 )) y (x1 , f (x1 )), como
n = 1 usando la forma de Lagrange tenemos

p1 (x) = y0 L0 (x) + y1 L1 (x)

(x − x1 ) (x − x0 )
donde L0 (x) = , L1 (x) =
(x0 − x1 ) (x1 − x0 )
Asi:
(x − x1 ) (x − x0 ) (x1 − x)yo + (x − x0 )y1
p1 (x) = y0 + y1 =
(x0 − x1 ) (x1 − x0 ) (x1 − x0 )
que es la ecuación de la recta que pasa por (x0 , f (x0 )) y (x1 , f (x1 )).
Ejemplo: Dada la tabla calcular su polinoio interpolante

x 0 1
f(x) 1.35 2.29

Tenemos que p1 (x) = y0 L0 (x) + y1 L1 (x)


(x − 1) (x − 0)
donde L0 (x) = = 1 − x, L1 (x) = =x
(0 − 1) (1 − 0)
Luego p1 (x) = 1.35(1 − x) + 2.29(x) = 1.59x + 1.35

Interpolación cuadrática
Dados tres puntos distintos (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 )). Usando la forma de
Lagrange tenemos
p2 (x) = yo L0 (x) + y1 L1 (x) + y2 L2 (x)
(x − x1 )(x − x2 ) (x − x0 )(x − x2 )
donde L0 (x) = , L1 (x) = , y
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 )
(x − x0 )(x − x1 )
L2 (x) =
(x2 − x0 )(x2 − x1 )
Ejemplo Dada la tabla calcular su polinomio interpolante

x -1 0 2
f(x) 4 1 -1
4 Forma de Newton 5

Por la forma de Lagrange

p2 (x) = yo L0 (x) + y1 L1 (x) + y2 L2 (x)

(x − 0)(x − 2) x2 − 2x (x + 1)(x − 2) x2 − x − 2
donde L0 (x) = = , L1 (x) = ,
(−1 − 0)(−1 − 2) 3 (0 + 1)(0 − 2) −2
(x + 1)(x − 0) x2 + x
y L2 (x) = =
(2 + 1)(2 − 0) 6
Luego  2   2   2 
x − 2x x −x−2 x +x
p2 (x) = 4 +1 + (−1)
3 −2 6
Agrupando obtenemos
7 2
p2 (x) = 1 − x + x2
3 3

4 Forma de Newton
La forma de Newton para el polinomio pn (x) que interpola f (x) en x0 , x1 , x2 , . . . , xn (n + 1)
puntos distintos es la siguiente:

pn (x) = d0 + d1 (x − x0 ) + d2 (x − x0 )(x − x1 ) + . . . + dn (x − x0 )(x − x1 ) . . . (x − xn−1 )

donde los coeficientes dk , k = 0, 1, . . . , n son llamados de diferencias divididas de orden k


entre los puntos (xj , f (xj )), j = 0, 1, . . . k.

4.1 Operador de diferencias divididas


Sea f (x) una función tabulada en n + 1 puntos distintos: x0 , x1 , . . . , xn .
Definimos el operador de diferencias divididas por

f [x0 ] = f (x0 ) Orden 0


 f [x0 , x1 ] = f [x1 ] − f [x0 ] = f (x1 ) − f (x0 )

Orden 1

 x1 − x0 x1 − x0

f [x1 , x2 ] − f [x0 , x1 ]


 f [x0 , x1 , x2 ] = Orden 2

 x2 − x0

f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ]

 f [x0 , x1 , x2 , x3 ] = Orden 3


 x3 − x0

 .. .. ..

 . . .
 f [x1 , x2 , . . . , xn ] − f [x0 , x1 , x2 , . . . , xn−1 ]
f [x0 , x1 , x2 , . . . , xn ] = Orden n
xn − x0

Decimos que f [x0 , x1 , x2 , . . . , xk ] es la diferencia dividida de orden k de la función f (x)


sobre los k + 1 puntos: x0 , x1 , . . . , xk .
Propiedad f [x0 , x1 , x2 , . . . , xk ] es simétrica, es decir f [x0 , x1 , x2 , . . . , xk ]=f [xj0 , xj1 , xj2 , . . . , xjk ],
donde j0 , j1 , . . . , jk es cualquier permutación de 0, 1, 2, . . . , k.
Por ejemplo:
f [x1 ] − f [x0 ] f [x0 ] − f [x1 ]
f [x0 , x1 ] = = = f [x1 , x0 ]
x1 − x0 x0 − x 1
4 Forma de Newton 6

Para k = 2 se tiene

f [x0 , x1 , x2 ] = f [x0 , x2 , x1 ] = f [x1 , x0 , x2 ] = f [x1 , x2 , x0 ] = f [x2 , x0 , x1 ] = f [x2 , x1 , x0 ].

Dada una función f (x) y conocidos los valores que f (x) asume en los puntos distintos
x0 , x1 , x2 , . . . , xn , podemos construir la tabla.

x orden 0 orden 1 Orden 2 Orden 3 ··· Orden n

x0 f [x0 ]
f [x0 , x1 ]
x1 f [x1 ] f [x0 , x1 , x2 ]
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
x2 f [x2 ] f [x1 , x2 , x3 ]
..
f [x2 , x3 ] f [x1 , x2 , x3 , x4 ] .
..
x3 f [x3 ] f [x2 , x3 , x4 ] . f [x0 , x1 , . . . , xn ]
.. ..
f [x3 , x4 ] . .
.. ..
x4 f [x4 ] . .
.. .. ..
. . . f [xn−3 , xn−2 , xn−1 , xn ]
.. ..
. . f [xn−2 , xn−1 , xn ]
f [xn−1 , xn ]
xn f [xn ]

Ejemplo: Sea f (x) dada por:

x -1 0 1 2 3
f (x) 1 1 0 -1 -2

Su tabla de diferencias divididas es


x orden 0 orden 1 Orden 2 Orden 3 Orden 4
-1 1
0
0 1 -1/2
-1 1/6
1 0 0 -1/24
-1 0
2 -1 0
-1
3 -2

4.2 Forma de Newton para el polinomio interpolante


Sea f (x) continua e con tantas derivadas continuas sean necesarias en el intervalo [a, b].
Sean a = x0 < x1 < x2 < · · · < xn = b, n + 1 puntos.
Sea p0 (x) el polinmio de grado 0 que interpola f (x) en x = x0 .
Entonces, p0 (x) = f (x0 ) = f [x0 ].
Tenemos que, ∀x ∈ [a, b], con x 6= x0

f [x] − f [x0 ] f [x0 ] − f [x]


f [x0 , x] = =
x − x0 x0 − x
4 Forma de Newton 7

Entonces
f (x) = f (x0 ) + (x − x0 )f [x0 , x]
| {z } | {z }
p0 (x) E0 (x)

donde Eo (x) = f (x) − p0 (x) = (x − x0 )f [x0 , x] es el error cometido por truncamiento al


aproximar f (x) por p0 (x).
Sea ahora p1 (x), el polinomio de grado ≤ 1 que interpola en x0 y x1 . Tenemos para x ∈ [a, b]
x 6= x0 y x 6= x1

f [x0 , x] − f [x1 , x0 ] f (x) − f (x0 ) − (x − x0 )f [x1 , x0 ]


f [x0 , x1 , x] = =
x − x1 (x − x1 )(x − x0 )

Entonces
f (x) = f (x0 ) + (x − x0 )f [x1 , xo ] + (x − x0 )(x − x1 )f [x0 , x1 , x]
| {z } | {z }
p1 (x) E1 (x)

donde E1 (x) = f (x) − p1 (x) = (x − x0 )(x − x − 1)f [x0 , x1 , x] es el error cometido por
truncamiento al aproximar f (x) por p1 (x).
Generalizando, la forma de Newton para el polinomio de grado menor o igual que n que
interpola f (x) en x0 , x1 , . . . , xn es

pn (x) = f (x0 ) + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ] + . . .


+(x − x0 )(x − x1 ) . . . (x − xn−1 )f [x0 , x1 , , . . . , xn ]

y el error es dado por

E(x) = (x − x0 )(x − x1 ) . . . (x − xn )f [x0 , x1 , x2 , . . . , xn , x]

Ejemplo: Calcular el polinomio interpolante de f

x -1 0 2
f(x) 4 1 -1

La forma de Newton del polinomio de segundo grado es

p2 (x) = f (x0 ) + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ]

x orden 0 orden 1 Orden 2


-1 4
-3
0 1 2/3
-1
2 -1
2
Luego: p2 (x) = 4 + (x + 1)(−3) + (x + 1)(x − 0)
3
Agrupando obtenemos
7 2
p2 (x) = 1 − x + x2
3 3
Observe que es convenienete dejar el polinomio en la forma de Newton, sin agrupar los
terminos semejantes.
5 Estudio del error en la interpolación 8

5 Estudio del error en la interpolación


Al aproximar una función f (x) por un polinomio interpolador de grado ≤ n, se comete un
error. Es decir
En (x) = f (x) − pn (x) ∀x ∈ [x0 , xn ]
El estudio del error es importante para saber la proximidad de pn (x) a f (x).

Teorema 2 Sean x0 < x1 < x2 < . . . < xn , (n+1) puntos. Sea f (x) con derivadas hasta
el orden (n + 1) para todo x en el intervalo [x0 , xn ]. Sea pn (x) el polinomio interpolador
de f (x) en los puntos x0 , x1 , x2 , . . . , xn . Entonces en cualquier punto x perteneciente al
intervalo [x0 , xn ], el error es dado por
f n+1 (ξx )
En (x) = f (x) − pn (x) = (x − x0 )(x − x1 )(x − x2 ) . . . (x − xn )
(n + 1)!
donde ξx ∈ (x0 , xn ).
Podemos escribir
f (x) = pn (x) + En (x)
El término En (x) es llamado el término de error o error de truncamiento. El error que
se comete en el punto x cuando se usa el polinomio calculado en el punto x en vez de la
función.
Observamos que, al aproximar f (x) por un polinomio de interpolación de grado menor
o igual que n, el error que se comete está relacionada con la derivada de orden n+1 de f (x).

Teorema 3
f n+1 (ξx )
f [x0 , x1 , . . . , xn , x] = x ∈ (x0 , xn ) ξx ∈ (x0 , xn )
(n + 1)!
donde ξ ∈ (x0 , xn ).
Este teorema muestra la relación entre la diferencia dividida de orden n+1 y la derivada
de orden n + 1 de la función f (x).

5.1 Limitante (cota) para el error


En la práctica la fórmula para el error tiene un uso limitado dado que en raras situaciones
se conoce f n+1 (x) y el punto ξx .
Los siguientes corolarios nos dan un limitante para el error.

Corolario 1 Sobre las hipótesis del Teorema 2, si f n+1 (x) es continua en I = [x0 , xn ],
podemos escribir la siguiente relación
Mn+1
|En (x)| = |f (x) − pn (x) |≤ |(x − x0 )(x − x1 )(x − x2 ) . . . (x − xn )|
(n + 1)!
donde Mn+1 = max |f n+1 (x)|.
x∈I

Corolario 2 Si además de las hipótesis anteriores los puntos están igualmente espaci-
ados, es decir
x1 − x0 = x2 − x1 = . . . = xn − xn−1 = h
entonces
hn+1 Mn+1
|En (x)| = |f (x) − pn (x)| <
4(n + 1)
5 Estudio del error en la interpolación 9

con x ∈ [x0 , xn ].
Ejemplo
Dada la tabla de f (x) = ex + x + 1, obtener f (0.7) y analizar el error
x 0.0 0.5 1.0 1.5 2.0
f(x) 0.0 1.1487 2.7183 4.9811 8.3890
Tenemos que: p1 (x) = f (xo ) + (x − x0 )f [xo , x1 ]
como x0 ∈ (0.5, 1), entonces x0 = 0.5 y x1 = 1
p1 (x) = 1.1487 + (x − 0.5)3.1392 → p1 (0.7) = 1.7765
En este caso tenemos condiciones de calcular el verdadero error
|E1 (0.7)| = |f (0.7) − p1 (0.7)| = |1.7137 − 1.7765| = 0.0628
Usando los Corolarios calculamos las cotas para el error
a) Corolario 1 (en x = 0.7)
M2
|E1 (0.7)| ≤ |(0.7 − 0.5)(0.7 − 1)
2
0 1
donde M2 = maxx∈[0.5,1] |f (x)| = e = 2.7183 Entonces |E1 (0.7)| ≤ 0.0815
b) Corolario 2 (∀x ∈ (0.5, 1))
h2 (0.5)2
|E1 (x)| ≤ M2 = (2.7183) = 0.0850.
8 8
5.2 Estimativa para el error
Si la función f (x) es dado solo en la forma de tabla, el valor del error |En (x)| solamente
puede ser estimado, pues no es posible calcular Mn+1 , pero si construimos la tabla de
diferencias divididas hasta el orden n + 1, podemos usar el mayor valor (en módulo) de
Mn+1
estas diferencias como una aproximación para .
(n + 1)!
En este caso decimos que
|En (x) ≤ |(x − x0 )(x − x1 ) . . . (x − xn )| (max |diferencias divididas de orden n + 1|)
Ejemplo Sea f (x) dado por
x 0.2 0.34 0.4 0.52 0.6 0.72
f(x) 0.16 0.22 0.27 0.29 0.32 0.37
• Obtener f (0.47)
• Dar una estimativa para el error
Su tabla de diferencias divididas es
x orden 0 orden 1 Orden 2 Orden 3
0.2 0.16
0.4286
0.34 0.22 2.035
0.8333 -17.8963
0.4 0.27 -3.7033
0.1667 18.2494
0.52 0.29 1.0415
0.375 -2.6031
0.6 0.32 0.2085
0.4167
0.72 0.37
6 El grado del polinomio interpolante 10

Como 0.47 ∈ (0.4, 0.52), escogemos los puntos x0 = 0.4, x1 = 0.52 y x2 = 0.6.
Luego
p2 (x) = f (x0 ) + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ]
p2 (x) = 0.27 + (x − 0.4)0.1667 + (x − 0.4)(x − 0.52)(1.0415)

• f (0.47) ≈ p2 (x) = 0.2780

• |E2 (0.47)| ≤ |(0.47 − 0.4)(0.47 − 0.52)(0.47 − 0.6)||18.2492| = 8.303 × 10−3

6 El grado del polinomio interpolante


La tabla de diferencias divididas junto con la relación entre diferencias divididas de orden
k pueden auxiliarnos para escoger el grado del polinomio que usaremos para interpolar una
función f (x) dada.
En primer lugar debemos construir una tabla de diferencias divididas. Luego examinar
las diferencias divididas en una vecindad del punto que nos interesa. Si en esta vecindad
las diferencias divididas de orden k son prácticamente constantes (es decir las diferencias
de orden k + 1 sean casi cero). Se puede concluir que un polinomio interpolador de grado
k será el que mejor aproxime a la función
√ en la región considerada en la tabla.
Por ejemplo consideremos f (x) = x dada en la tabla, con 4 dı́gitos decimales.

x 1 1.01 1.02 1.03 1.04 1.05


f(x) 1 1.005 1.01 1.0149 1.0198 1.0247

x orden 0 orden 1 Orden 2


1 1
0.5
1.01 1.005 0
0.5
1.02 1.01 -0.5
0.49
1.03 1.0149 0
0.49
1.04 1.0198 0
0.49
1.05 1.0247
En el intervalo
p [1, 1.05] decimos que un polinomio de grado 1 es una buena aproximación
para f (x) = (x).

También podría gustarte