Está en la página 1de 33

Interpolación

Objetivo
Dados n + 1 pares de números reales o complejos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), buscamos
una función interpolante p de manera que

p(xj ) = yj , j = 0, . . . , n
Objetivo
Dados n + 1 pares de números reales o complejos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), buscamos
una función interpolante p de manera que

p(xj ) = yj , j = 0, . . . , n

Motivos
Reemplazar una función complicada por una más sencilla.
Obtener una función que refleje ciertas propiedades en los datos: monotonía,
periodicidad, convexidad, entre otros.
Estudiar el comportamiento de los datos, lo cual muchas veces requiere de una
función suficientemente suave (diferenciable y/o integrable).
Ejemplo: Cálculo de una integral definida
ˆ 1 ˆ 1
2
ex dx ≈ p(x) dx
0 0
Objetivo
Dados n + 1 pares de números reales o complejos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), buscamos
una función interpolante p de manera que

p(xj ) = yj , j = 0, . . . , n

Motivos
Reemplazar una función complicada por una más sencilla.
Obtener una función que refleje ciertas propiedades en los datos: monotonía,
periodicidad, convexidad, entre otros.
Estudiar el comportamiento de los datos, lo cual muchas veces requiere de una
función suficientemente suave (diferenciable y/o integrable).
Ejemplo: Cálculo de una integral definida
ˆ 1 ˆ 1
2
ex dx ≈ p(x) dx
0 0

Ejemplos de funciones
Polinomios,
Polinomios a trozos (splines),
Polinomios trigonométricos,
Funciones exponenciales,
Funciones racionales.
Espacio de polinomios

Espacio vectorial de polinomios


Denotamos por Pn el espacio de polinomios de grado menor o igual a n dado por
n n
( ) ( )
X X
k k

Pn = p : R → R p(x) =
ak x = p(x) = ak x a0 , a1 , . . . , an ∈ R
k=0 k=0

Denotamos por M la base monomial de Pn dada por

M = {1, x, x 2 , . . . , x n }

dim Pn = n + 1
En vista de los puntos anteriores, un polinomio p ∈ Pn se puede caracterizar de manera
única mediante los n + 1 coeficientes ak .
Interpolación polinomial

Teorema
Dados n + 1 pares de números (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), con xj 6= xk para j 6= k (distintos
entre sí), existe un único polinomio interpolante p, de grado menor o igual a n, de modo
que
p(xj ) = yj , j = 0, . . . , n
Interpolación polinomial

Teorema
Dados n + 1 pares de números (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), con xj 6= xk para j 6= k (distintos
entre sí), existe un único polinomio interpolante p, de grado menor o igual a n, de modo
que
p(xj ) = yj , j = 0, . . . , n

Dem: Buscamos los n + 1 coeficientes a0 , a1 , . . . , an tales que

a0 + a1 x0 . . . an x0n = y0 1 x0 ··· x0n a0 y0


     

 a0 + a1 x1 . . . an x1n = y1 1 x1 ··· n
x 1   a 1   y1 


.. ⇐⇒  . .. ..   ..  =  .. 
    
 .. ..


 . . . .  .   . 
a0 + a1 xn . . . an xnn = yn xnn

1 xn ··· an yn
| {z } | {z } | {z }
X a y
Interpolación polinomial

Teorema
Dados n + 1 pares de números (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), con xj 6= xk para j 6= k (distintos
entre sí), existe un único polinomio interpolante p, de grado menor o igual a n, de modo
que
p(xj ) = yj , j = 0, . . . , n

Dem: Buscamos los n + 1 coeficientes a0 , a1 , . . . , an tales que

a0 + a1 x0 . . . an x0n = y0 1 x0 ··· x0n a0 y0


     

 a0 + a1 x1 . . . an x1n = y1 1 x1 ··· n
x 1   a 1   y1 


.. ⇐⇒  . .. ..   ..  =  .. 
    
 .. ..


 . . . .  .   . 
a0 + a1 xn . . . an xnn = yn xnn

1 xn ··· an yn
| {z } | {z } | {z }
X a y

La matriz X constituye una matriz de Vandermonde, la cual satisface


Y
det(X) = (xk − xj ) 6= 0
0≤j<k≤n
Interpolación polinomial

Teorema
Dados n + 1 pares de números (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), con xj 6= xk para j 6= k (distintos
entre sí), existe un único polinomio interpolante p, de grado menor o igual a n, de modo
que
p(xj ) = yj , j = 0, . . . , n

Dem: Buscamos los n + 1 coeficientes a0 , a1 , . . . , an tales que

a0 + a1 x0 . . . an x0n = y0 1 x0 ··· x0n a0 y0


     

 a0 + a1 x1 . . . an x1n = y1 1 x1 ··· n
x 1   a 1   y1 


.. ⇐⇒  . .. ..   ..  =  .. 
    
 .. ..


 . . . .  .   . 
a0 + a1 xn . . . an xnn = yn xnn

1 xn ··· an yn
| {z } | {z } | {z }
X a y

La matriz X constituye una matriz de Vandermonde, la cual satisface


Y
det(X) = (xk − xj ) 6= 0
0≤j<k≤n

Con esto vemos que X es invertible, y por ende el sistema de ecuaciones admite una
única solución a.
Polinomios de Lagrange
Consideremos el problema de interpolación en el cual, para algún k ∈ {0, . . . , n} se tiene
yk = 1 ; yj = 0 (j 6= k)
Polinomios de Lagrange
Consideremos el problema de interpolación en el cual, para algún k ∈ {0, . . . , n} se tiene
yk = 1 ; yj = 0 (j 6= k)
Un polinomio interpolante Lk , de grado menor o igual a n y con raices en los puntos xj
(j 6= k) viene dado del siguiente modo
Lk (x) = c(x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
Polinomios de Lagrange
Consideremos el problema de interpolación en el cual, para algún k ∈ {0, . . . , n} se tiene
yk = 1 ; yj = 0 (j 6= k)
Un polinomio interpolante Lk , de grado menor o igual a n y con raices en los puntos xj
(j 6= k) viene dado del siguiente modo
Lk (x) = c(x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
Para satisfacer la condición p(xk ) = 1 se requiere que
c = [(xk − x0 ) · · · (xk − xi−1 )(xk − xi+1 ) · · · (xk − xn )]−1
Polinomios de Lagrange
Consideremos el problema de interpolación en el cual, para algún k ∈ {0, . . . , n} se tiene
yk = 1 ; yj = 0 (j 6= k)
Un polinomio interpolante Lk , de grado menor o igual a n y con raices en los puntos xj
(j 6= k) viene dado del siguiente modo
Lk (x) = c(x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
Para satisfacer la condición p(xk ) = 1 se requiere que
c = [(xk − x0 ) · · · (xk − xi−1 )(xk − xi+1 ) · · · (xk − xn )]−1
Definición
Sean x0 , x1 , . . . , xn distintos entre sí. Para cada k ∈ {0, 1, . . . , n}, se define el polinomio de
Lagrange como
n
!
Y x − xj
Lk (x) =
xk − xj
j=0
j6=k
Polinomios de Lagrange
Consideremos el problema de interpolación en el cual, para algún k ∈ {0, . . . , n} se tiene
yk = 1 ; yj = 0 (j 6= k)
Un polinomio interpolante Lk , de grado menor o igual a n y con raices en los puntos xj
(j 6= k) viene dado del siguiente modo
Lk (x) = c(x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
Para satisfacer la condición p(xk ) = 1 se requiere que
c = [(xk − x0 ) · · · (xk − xi−1 )(xk − xi+1 ) · · · (xk − xn )]−1
Definición
Sean x0 , x1 , . . . , xn distintos entre sí. Para cada k ∈ {0, 1, . . . , n}, se define el polinomio de
Lagrange como
n
!
Y x − xj
Lk (x) =
xk − xj
j=0
j6=k

Propiedades
Para cada j ∈ {0, . . . , n} 
1 j=k
Lk (xj ) = δjk =
0 j 6= k
L = {L0 , L1 , . . . , Ln } es una base de Pn y se denomina base de Lagrange.
Cálculo del polinomio interpolante
En general, para obtener el único polinomio interpolante p de los puntos
(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), en términos de una base {b0 , b1 , . . . , bn }, debemos hallar los
n + 1 coeficientes λ0 , λ1 , . . . , λn tales que
   Pn
y0 λk bk (x0 ) b0 (x0 ) b1 (x0 ) · · · bn (x0 ) λ0
   
Pk=0n
y1   k=0 λk bk (x1 ) b0 (x1 ) b1 (x1 ) · · · bn (x1 ) λ1 
 . = .. = . .. ..   .. 
      
 ..     .. ..
. . . .  . 
Pn
yn k=0 λk bk (xn ) b0 (xn ) b1 (xn ) · · · bn (xn ) λn
| {z } | {z } | {z }
y M λ
Cálculo del polinomio interpolante
En general, para obtener el único polinomio interpolante p de los puntos
(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), en términos de una base {b0 , b1 , . . . , bn }, debemos hallar los
n + 1 coeficientes λ0 , λ1 , . . . , λn tales que
   Pn
y0 λk bk (x0 ) b0 (x0 ) b1 (x0 ) · · · bn (x0 ) λ0
   
Pk=0n
y1   k=0 λk bk (x1 ) b0 (x1 ) b1 (x1 ) · · · bn (x1 ) λ1 
 . = .. = . .. ..   .. 
      
 ..     .. ..
. . . .  . 
Pn
yn k=0 λk bk (xn ) b0 (xn ) b1 (xn ) · · · bn (xn ) λn
| {z } | {z } | {z }
y M λ

Si consideramos la base monomial M tenemos que bk (xj ) = xjk , con


j, k ∈ {0, 1, . . . , n}.
Luego, para hallar los coeficientes debemos trabajar con la matriz de
Vandermonde, la cual es una matriz llena. Por lo tanto el número de operaciones
requieridas para determinar los coeficientes es asintóticamente n3 flops.
Cálculo del polinomio interpolante
En general, para obtener el único polinomio interpolante p de los puntos
(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), en términos de una base {b0 , b1 , . . . , bn }, debemos hallar los
n + 1 coeficientes λ0 , λ1 , . . . , λn tales que
   Pn
y0 λk bk (x0 ) b0 (x0 ) b1 (x0 ) · · · bn (x0 ) λ0
   
Pk=0n
y1   k=0 λk bk (x1 ) b0 (x1 ) b1 (x1 ) · · · bn (x1 ) λ1 
 . = .. = . .. ..   .. 
      
 ..     .. ..
. . . .  . 
Pn
yn k=0 λk bk (xn ) b0 (xn ) b1 (xn ) · · · bn (xn ) λn
| {z } | {z } | {z }
y M λ

Si consideramos la base monomial M tenemos que bk (xj ) = xjk , con


j, k ∈ {0, 1, . . . , n}.
Luego, para hallar los coeficientes debemos trabajar con la matriz de
Vandermonde, la cual es una matriz llena. Por lo tanto el número de operaciones
requieridas para determinar los coeficientes es asintóticamente n3 flops.
Si usamos la base de Lagrange L entonces bk (xj ) = Lk (xj ) = δjk , con
j, k ∈ {0, 1, . . . , n}.
Por lo tanto la matriz M corresponde justamente a la identidad In . Luego λ = y, con
lo cual
p(x) = y0 L0 (x) + y1 L1 (x) + . . . + yn Ln (x)
Es decir, el costo computacional para calcular λ es cero.
Evaluar el polinomio interpolante en un punto

Si ya determinamos el polinomio interpolante, es decir, ya obtuvimos los coeficientes


λ0 , . . . , λn , entonces podemos usar esta representación para evaluar el polinomio.
Evaluar el polinomio interpolante en un punto

Si ya determinamos el polinomio interpolante, es decir, ya obtuvimos los coeficientes


λ0 , . . . , λn , entonces podemos usar esta representación para evaluar el polinomio.
i) Base monomial: Si p(x) = nk=0 λk x k , entonces podemos escribir
P

n
X n
X
p(x) = λ0 + λk x k = λ0 + x λk x k−1
k=0 k=1
n
!
X
= λ0 + x λ1 + λk x k−1
k=1
= λ0 + x(λ1 + x(λ2 + x(. . . (λn−1 + λn x) . . .)))

La última expresión se calcula de adentro hacia afuera. A esto se le llama esquema


de Horner. Con este esquema, la evaluación de un polinomio de grado n requiere
asintóticamente de n flops.
Evaluar el polinomio interpolante en un punto

Si ya determinamos el polinomio interpolante, es decir, ya obtuvimos los coeficientes


λ0 , . . . , λn , entonces podemos usar esta representación para evaluar el polinomio.
i) Base monomial: Si p(x) = nk=0 λk x k , entonces podemos escribir
P

n
X n
X
p(x) = λ0 + λk x k = λ0 + x λk x k−1
k=0 k=1
n
!
X
= λ0 + x λ1 + λk x k−1
k=1
= λ0 + x(λ1 + x(λ2 + x(. . . (λn−1 + λn x) . . .)))

La última expresión se calcula de adentro hacia afuera. A esto se le llama esquema


de Horner. Con este esquema, la evaluación de un polinomio de grado n requiere
asintóticamente de n flops.
ii) Base de Lagrange: Si p(x) = nk=0 yk Lk , debemos evaluar cada polinomio Lk , lo cual
P
tiene un costo operacional de n flops asintóticamente. Dado que son n + 1
polinomios de Lagrange, el costo operacioanl de evaluar el polinomio p es
asintóticamente n2 .
Lema
Sean (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) distintos entre sí. Sea pl,k ∈ Pk−l , con 0 ≤ l ≤ k ≤ n, el
único polinomio que interpola los puntos (xj , yj ), para j = l, . . . , k. Entonces

x − xl x −x
pl,k (x) = pl+1,k (x) + k pl,k−1 (x)
xk − xl xk − xl
Lema
Sean (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) distintos entre sí. Sea pl,k ∈ Pk−l , con 0 ≤ l ≤ k ≤ n, el
único polinomio que interpola los puntos (xj , yj ), para j = l, . . . , k. Entonces

x − xl x −x
pl,k (x) = pl+1,k (x) + k pl,k−1 (x)
xk − xl xk − xl

Observación
Si p es el polinomio que interpola a los puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), entonces la
notación del lema establece que p = p0,n .
Luego, si quieremos evaluar p0,n (x̄), debemos evaluar p1,n (x̄) y p0,n−1 (x̄). A su vez, para
evaluar p1,n (x̄), debemos evaluar p2,n (x̄) y p1,n−1 (x̄), y para evaluar p0,n−1 (x̄), debemos
evaluar p1,n−1 (x̄) y p0,n−2 (x̄) ...
Toas estas sucesivas evaluaciones se resumen en el siguiente esquema.
Lema
Sean (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) distintos entre sí. Sea pl,k ∈ Pk−l , con 0 ≤ l ≤ k ≤ n, el
único polinomio que interpola los puntos (xj , yj ), para j = l, . . . , k. Entonces

x − xl x −x
pl,k (x) = pl+1,k (x) + k pl,k−1 (x)
xk − xl xk − xl

Observación
Si p es el polinomio que interpola a los puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), entonces la
notación del lema establece que p = p0,n .
Luego, si quieremos evaluar p0,n (x̄), debemos evaluar p1,n (x̄) y p0,n−1 (x̄). A su vez, para
evaluar p1,n (x̄), debemos evaluar p2,n (x̄) y p1,n−1 (x̄), y para evaluar p0,n−1 (x̄), debemos
evaluar p1,n−1 (x̄) y p0,n−2 (x̄) ...
Toas estas sucesivas evaluaciones se resumen en el siguiente esquema.
Esquema de Neville
x0 y0 = p0,0 (x̄)
&
x1 y1 = p1,1 (x̄) → p0,1 (x̄)
&
x2 y2 = p2,2 (x̄) → p1,2 (x̄)
. . .
. . ..
. .
xn−2 yn−2 = pn−2,n−2 (x̄) → pn−3,n−2 (x̄) ··· p0,n−2 (x̄)
& &
xn−1 yn−1 = pn−1,n−1 (x̄) → pn−2,n−1 (x̄) ··· p1,n−1 (x̄) → p0,n−1 (x̄)
& & &
xn yn = pn,n (x̄) → pn−1,n (x̄) ··· p2,n (x̄) → p1,n (x̄) → p0,n (x̄)
Ejemplo: Sea p el polinomio de grado 2 que interpola los puntos (0, 1), (1, 3) y (2, 2).
Evaluar p en el punto x̄ = 0.5 usando el esquema de Neville.
Ejemplo: Sea p el polinomio de grado 2 que interpola los puntos (0, 1), (1, 3) y (2, 2).
Evaluar p en el punto x̄ = 0.5 usando el esquema de Neville.

Sol: Esquema de Neville:


x0 = 0 y0 = 1 = p0,0 (0.5)
&
x1 = 1 y1 = 3 = p1,1 (0.5) → p0,1 (0.5)
& &
x2 = 2 y2 = 2 = p2,2 (0.5) → p1,2 (0.5) → p0,2 (0.5)
Ejemplo: Sea p el polinomio de grado 2 que interpola los puntos (0, 1), (1, 3) y (2, 2).
Evaluar p en el punto x̄ = 0.5 usando el esquema de Neville.

Sol: Esquema de Neville:


x0 = 0 y0 = 1 = p0,0 (0.5)
&
x1 = 1 y1 = 3 = p1,1 (0.5) → p0,1 (0.5)
& &
x2 = 2 y2 = 2 = p2,2 (0.5) → p1,2 (0.5) → p0,2 (0.5)

Primero calculamos
0.5 − x0 x − 0.5 0.5 − 0 1 − 0.5
p0,1 = p1,1 (0.5) + 1 p0,0 (0.5) = ·3+ ·1=2
x1 − x0 x1 − x0 1−0 1−0

0.5 − x1 x − 0.5 0.5 − 1 2 − 0.5 7


p1,2 = p2,2 (0.5) + 2 p1,1 (0.5) = ·2+ ·3=
x2 − x1 x2 − x1 2−1 2−1 2
Ejemplo: Sea p el polinomio de grado 2 que interpola los puntos (0, 1), (1, 3) y (2, 2).
Evaluar p en el punto x̄ = 0.5 usando el esquema de Neville.

Sol: Esquema de Neville:


x0 = 0 y0 = 1 = p0,0 (0.5)
&
x1 = 1 y1 = 3 = p1,1 (0.5) → p0,1 (0.5)
& &
x2 = 2 y2 = 2 = p2,2 (0.5) → p1,2 (0.5) → p0,2 (0.5)

Primero calculamos
0.5 − x0 x − 0.5 0.5 − 0 1 − 0.5
p0,1 = p1,1 (0.5) + 1 p0,0 (0.5) = ·3+ ·1=2
x1 − x0 x1 − x0 1−0 1−0

0.5 − x1 x − 0.5 0.5 − 1 2 − 0.5 7


p1,2 = p2,2 (0.5) + 2 p1,1 (0.5) = ·2+ ·3=
x2 − x1 x2 − x1 2−1 2−1 2

Después calculamos

0.5 − x0 x − 0.5 0.5 − 0 7 2 − 0.5 19


p0,2 (0.5) = p1,2 (0.5) + 2 p0,1 (0.5) = · + ·2=
x2 − x0 x2 − x0 2−0 2 2−0 8
Evaluar el polinomio interpolante en varios puntos

Sea p el polinomio interpolante para los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Digamos
que quieremos evaluarlo en n puntos x̄j , j = 1, . . . , n.
Evaluar el polinomio interpolante en varios puntos

Sea p el polinomio interpolante para los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Digamos
que quieremos evaluarlo en n puntos x̄j , j = 1, . . . , n.
Determinar el polinomio interpolante en la base monomial (n3 flops) y luego aplicar n
veces esquema de Horner (n · n = n2 flops) requiere en total n3 flops asintóticamente.
Evaluar el polinomio interpolante en varios puntos

Sea p el polinomio interpolante para los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Digamos
que quieremos evaluarlo en n puntos x̄j , j = 1, . . . , n.
Determinar el polinomio interpolante en la base monomial (n3 flops) y luego aplicar n
veces esquema de Horner (n · n = n2 flops) requiere en total n3 flops asintóticamente.
Determinar el polinomio interpolante en la base de Lagrange (0 flops) y luego
evaluarlo n veces (n · n2 = n3 flops) requiere en total n3 flops asintóticamente.
Evaluar el polinomio interpolante en varios puntos

Sea p el polinomio interpolante para los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Digamos
que quieremos evaluarlo en n puntos x̄j , j = 1, . . . , n.
Determinar el polinomio interpolante en la base monomial (n3 flops) y luego aplicar n
veces esquema de Horner (n · n = n2 flops) requiere en total n3 flops asintóticamente.
Determinar el polinomio interpolante en la base de Lagrange (0 flops) y luego
evaluarlo n veces (n · n2 = n3 flops) requiere en total n3 flops asintóticamente.
Usar esquema de Neville para cada punto x̄j requiere asintóticamente n · n2 = n3
flops.
Evaluar el polinomio interpolante en varios puntos

Sea p el polinomio interpolante para los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Digamos
que quieremos evaluarlo en n puntos x̄j , j = 1, . . . , n.
Determinar el polinomio interpolante en la base monomial (n3 flops) y luego aplicar n
veces esquema de Horner (n · n = n2 flops) requiere en total n3 flops asintóticamente.
Determinar el polinomio interpolante en la base de Lagrange (0 flops) y luego
evaluarlo n veces (n · n2 = n3 flops) requiere en total n3 flops asintóticamente.
Usar esquema de Neville para cada punto x̄j requiere asintóticamente n · n2 = n3
flops.
¿Existe alguna una opción más barata?
Evaluar el polinomio interpolante en varios puntos

Sea p el polinomio interpolante para los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Digamos
que quieremos evaluarlo en n puntos x̄j , j = 1, . . . , n.
Determinar el polinomio interpolante en la base monomial (n3 flops) y luego aplicar n
veces esquema de Horner (n · n = n2 flops) requiere en total n3 flops asintóticamente.
Determinar el polinomio interpolante en la base de Lagrange (0 flops) y luego
evaluarlo n veces (n · n2 = n3 flops) requiere en total n3 flops asintóticamente.
Usar esquema de Neville para cada punto x̄j requiere asintóticamente n · n2 = n3
flops.
¿Existe alguna una opción más barata?

R: SI

También podría gustarte