Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Interpolación
c M. Valenzuela 2007–2008
(26 de febrero de 2008)
2. Interpolación directa
En el caso más usual, se desea pasar un polinomio por los datos. En el ejemplo mostrado
en la figura 1, debemos pasar un polinomio de orden 4 por estos puntos. Este polinomio es
de la siguiente forma:
P4 (x) = c1 x4 + c2 x3 + c3 x2 + c4 x + c5 . (1)
El problema de interpolación es encontrar los valores de las constantes ci que hagan que el
polinomio pase por los datos, es decir, que P4 (xi ) = fi . Sustituyendo los cinco valores de xi
se genera el siguiente sistema de 5 ecuaciones con 5 incógnitas:
⎡ ⎤⎡ ⎤ ⎡ ⎤
(0.4)4 (0.4)3 (0.4)2 0.4 1 c1 1.00
⎢ (2.5)4 (2.5)3 (2.5)2 2.5 1 ⎥⎢ c2 ⎥ ⎢ 0.50 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ (4.3)4 (4.3)3 (4.3)2 4.3 1 ⎥⎢ c3 ⎥=⎢ 2.00 ⎥ (2)
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ (5.0)4 (5.0)3 (5.0)2 5.0 1 ⎦⎣ c4 ⎦ ⎣ 2.55 ⎦
(6.0)4 (6.0)3 (6.0)2 6.0 1 c5 4.00
x f
x1 f1
x2 f2
.. ..
. .
xn+1 fn+1
Interpolación Métodos Numéricos (SC–854)
f (x)
xi fi
f (x0 )
0.4 1.00
2.5 0.50
4.3 2.00
5.0 2.55
6.0 4.00
x
x0
Figura 1: Dado un conjunto de datos (xi , fi ), se desea encontrar para cualquiera x0 el valor
correspondiente f (xo )
3. Polinomio de Lagrange
El polinomio de Lagrange de orden n tiene la siguiente forma general:
n+1
n+1
x − xj
Pn (x) = fi . (5)
i=1 j=1
xi − xj
j=i
Es fácil demostrar que los polinomios de Lagrange pasan por todos lo puntos evaluándolos
para valores xi n = 1, 2, . . .. Para n = 1, es decir, para dos datos, el polinomio tiene la
siguiente forma:
x − x2 x − x1
P1 (x) = f1 + f2 (6)
x1 − x2 x2 − x1
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 2
Interpolación Métodos Numéricos (SC–854)
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 3
Interpolación Métodos Numéricos (SC–854)
Pn (x) = a1 + a2 (x − x1 ) + a3 (x − x1 )(x − x2 ) +
· · · + an+1 (x − x1 )(x − x2 ) · · · (x − xn ) (14)
n+1
i−1
= ai (x − xj ) (15)
i=1 j=1
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 4
Interpolación Métodos Numéricos (SC–854)
i f [xi ] f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ] f [xi , . . . , xi+4 ] f [xi , . . . , xi+5 ]
1 f1 f [x1 , x2 ] f [x1 , x2 , x3 ] f [x1 , x2 , x3 , x4 ] f [x1 , x2 , x3 , x4 , x5 ] f [x1 , . . . , x6 ]
2 f2 f [x2 , x3 ] f [x2 , x3 , x4 ] f [x2 , x3 , x4 , x5 ] f [x2 , x3 , x4 , x5 , x6 ]
3 f3 f [x3 , x4 ] f [x3 , x4 , x5 ] f [x3 , x4 , x5 , x6 ]
4 f4 f [x4 , x5 ] f [xx , x5 , x6 ]
5 f5 f [x5 , x6 ]
6 f6
donde
ai = f [x1 , x2 , . . . , xi ] (16)
Podemos probar que Pn (x) es un polinomio de interpolación. Primero, probamos que
Pn (x1 ) = f1 :
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 5
Interpolación Métodos Numéricos (SC–854)
i f [xi ] f [xi , xi+1 ] f [xi , xi+1 , xi+2 ] f [xi , . . . , xi+3 ] f [xi , . . . , xi+4 ]
1 1.0000 −0.2381 0.2747 −0.0639 0.0323
2 0.5000 0.8333 −0.0190 0.1171
3 2.0000 0.7857 0.3908
4 2.5500 1.4500
5 4.0000
P4 (x) = a1 + a2 (x − x1 ) + a3 (x − x1 )(x − x2 ) +
a4 (x − x1 )(x − x2 )(x − x3 ) +
a5 (x − x1 )(x − x2 )(x − x3 )(x − x4 ) (31)
P4 (5.2) = 1.0000 + (−0.2381)(5.2 − 0.4) + 0.2747(5.2 − 0.4)(5.2 − 2.5) +
(−0.0639)(5.2 − 0.4)(5.2 − 2.5)(5.2 − 4.3) +
0.0323(5.2 − 0.4)(5.2 − 2.5)(5.2 − 4.3)(5.2 − 5.0) (32)
P4 (5.2) = 2.7481 (33)
Diferencia de orden 0:
Δ0 f i = f i (34)
Diferencia de orden 1:
Δ1 fi = fi+1 − fi (35)
Diferencia de orden 2:
Diferencia de orden 3:
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 6
Interpolación Métodos Numéricos (SC–854)
Diferencia de orden k:
k(k − 1) k(k − 1)(k − 2)
Δk fi = fi+k − kfi+k−1 + fi+k−2 − fi+k−3 + · · · (38)
2! 3!
para k = 1, 2, . . . , n.
Se puede demostrar que el polinomio de Newton-Gregory es el polinomio de interpolación
evaluándolo para los valores xi :
Pn (x1 ) = f1 (40)
Pn (x2 ) = f1 + Δf1 = f1 + f2 − f1 = f2 (41)
2 2
Pn (x3 ) = f1 + Δf1 + Δ2 f 1 (42)
1 2
= f1 + 2(f2 − f1 ) + (f3 − 2f2 + f1 ) = f3 (43)
..
.
Pn (xk+1 ) = fk+1 (44)
x − x1
s= (45)
Δx
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 7
Interpolación Métodos Numéricos (SC–854)
xi fi
0.4 0.423
0.6 0.684
0.8 1.030
1.0 1.557
i xi fi
1 0.4 1.00 S4 (x)
2 2.5 0.50
3 4.3 2.00
4 5.0 2.55
5 6.0 4.00 S3 (x)
n=4 S1 (x)
S2 (x)
x
x1 x2 x3 x4 x5
8. Splines cúbicos
Splines cúbicos sigue una idea diferente al polinomio de interpolación visto en las sec-
ciones anteriores; en lugar de pasar un polinomio único por todos los puntos, pasa un
polinomio cúbico, llamado spline cúbico, por cada dos datos. Este spline cúbico tiene la
siguiente forma:
Si (x) = ai (x − xi )3 + bi (x − xi )2 + ci (x − xi ) + di . (51)
Debido que cada spline cúbico tiene 4 coeficientes, y que se utilizan dos puntos para
generarlo, se tienen que definir otras restricciones para encontrar los demás coeficientes. Se
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 8
Interpolación Métodos Numéricos (SC–854)
impone la restricción de que en los puntos de unión, llamados knots, la primera y la segunda
derivada de los splines que se unen sean iguales. Dado que por el primer punto y por el
último solamente pasa un spline es necesario definir condiciones frontera para encontrar los
restantes dos coeficientes. En seguida se describen todas las restricciones, y la forma en que
estas restricciones generan ecuaciones de las cuales es posible encontrar los coeficientes de
los splines.
1. La curva debe pasar por todos los puntos
Si (xi ) = fi (52)
Si (xi+1 ) = fi+1 (53)
para i = 1, 2, . . . n.
2. En los puntos de unión (knots), las primeras derivadas de los splines que se unen
deben ser iguales:
Si (xi+1 ) = Si+1
(xi+1 ) (54)
para i = 1, 2, . . . n.
3. En los puntos de unión (knots) de los segmentos cúbicos, las segundas derivadas de
los splines que se unen deben ser iguales:
Si (xi+1 ) = Si+1
(xi+1 ) (55)
para i = 1, 2, . . . n.
4. Se escoge una de las siguientes condiciones frontera:
Frontera libre o natural
S1 (x1 ) = Sn (xn+1 ) = 0 (56)
Esta es la más utilizada, y la que se empleará en este apunte.
Frontera sujeta
S1 (x1 ) = f (x1 ) (57)
Sn (xn+1 )
= f (xn+1 ) (58)
En este caso el usuario define el valor de la segunda derivada en el primer y el
último punto.
A continuación se derivan las ecuaciones para encontrar los valores de los coeficientes de
todos los splines. Antes de empezar, encontramos expresiones para la primera y la segunda
derivada de Si (x):
Si (x) = ai (x − xi )3 + bi (x − xi )2 + ci (x − xi ) + di (59)
Si (x) 2
= 3ai (x − xi ) + 2bi (x − xi ) + ci (60)
Si (x) = 6ai (x − xi ) + 2bi (61)
Sustituyendo el valor de xi encontramos las siguientes expresiones:
Si (xi ) = di (62)
Si (xi ) = ci (63)
Si (xi ) = 2bi (64)
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 9
Interpolación Métodos Numéricos (SC–854)
Para cumplir la condición 1, es decir, que la curva pase por todos los puntos, se requiere
que Si (xi ) = fi , es decir que
di = fi (65)
Para cumplir que Si (xi+1 ) = fi+1 se tiene que
Para cumplir la condición 2, es decir, que la primera derivada igual en los puntos de
unión, se require que Si (xi+1 ) = Si+1
(x
i+1 ), esto es
Para cumplir la condición 3, es decir, que la primera derivada igual en los puntos de
unión, se require que Si (xi+1 ) = Si+1
(x
i+1 ), esto es
1
ai = (bi+1 − bi ) (70)
3hi
h2i
(bi+1 − bi ) + bi h2i + ci hi + di = di+1 (71)
3
1 hi−1
ci−1 = (di − di−1 ) − (bi + 2bi−1 ) (74)
hi−1 3
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 10
Interpolación Métodos Numéricos (SC–854)
1 hi−1 1 hi
hi−1 (bi + bi−1 ) + (di − di−1 ) − (bi + 2bi−1 ) = (di+1 − di ) − (bi+1 + 2bi ) (78)
hi−1 3 hi 3
para i = 2, 3, . . . , n. Lo anterior define un sistema de n−1 ecuaciones con n+1 incógnitas que
son las bi . Recuérdase que di = fi . Las dos ecuaciones faltantes se obtiene de la condición 4.
En este apunte se toma la condición de frontera natural, S1 (x1 ) = b1 = 0, y Sn+1
(x
n+1 )/2 =
bn+1 = 0 que es equivalente a Sn (xn+1 ) = 0. Escribiendo las ecuaciones en forma matricial
se llega a lo siguiente:
⎡ ⎤
1 0 0 0 ··· ··· 0 ⎡ ⎤
⎢ h1 ⎥ b1
⎢ 2(h1 + h2 ) h2 0 ··· 0
⎥ ⎢ b2 ⎥
⎢ ⎥⎢
.. ⎥
⎢ 0 h2 2(h2 + h3 ) h3 0 ⎥ ⎢ b3
. ⎥
⎢ ⎥⎢ ⎥
⎢ .. .. .. .. ⎥ ⎢ ..
.. ⎥
⎢ . . . . ⎥⎢ .
. ⎥
⎢ ⎥⎢ ⎥=
⎢ ⎥⎢ ⎥
⎢ ⎥⎢ ⎥
⎢ . ⎥ ⎢ bn−1 ⎥
⎢ .. 0 ⎥ ⎢ ⎥
⎢ 0 hn−2 2(hn−2 + hn−1 ) hn−1 ⎥ ⎣ bn ⎦
⎣ 0 ··· 0 hn−1 2(hn−1 + hn ) hn ⎦
bn+1
0 ··· ··· 0 0 0 1
⎡ ⎤
0
⎢ 3 3 ⎥
⎢ (f3 − f2 ) − (f2 − f1 ) ⎥
⎢ ⎥
⎢ h 2 h 1 ⎥
⎢ ⎥
⎢ 3 3
(f − f3 ) − (f3 − f2 ) ⎥
⎢ ⎥
⎢ h3 4 h2 ⎥
⎢ ⎥
⎢ .
.. ⎥
⎢ ⎥ (80)
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ 3 3 ⎥
⎢ (f − fn−1 ) − (fn−1 − fn−2 ) ⎥
⎢ hn−1 n hn−2 ⎥
⎢ ⎥
⎢ 3 3 ⎥
⎢ (fn+1 − fn ) − (fn − fn−1 ) ⎥
⎣ hn hn−1 ⎦
0
Este sistema de ecuaciones se resuelve para encontrar los coeficientes bi . Los coeficientes ci
se obtienen de la ecuación 73 que aquı́ repetimos:
1 hi
ci = (di+1 − di ) − (bi+1 + 2bi ) (81)
hi 3
1
ai = (bi+1 − bi ) (82)
3hi
Y sabemos que di = fi .
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 11
Interpolación Métodos Numéricos (SC–854)
xi 0 1 2 3 4
fi 0.2231 0.6065 1.0000 0.6065 0.2231
y sabemos que di = fi : ⎡ ⎤
0.2231
⎢ ⎥
⎢ 0.6065 ⎥
d=⎢ ⎥ (86)
⎣ 1.0000 ⎦
0.6065
Para realizar la interpolación, encontramos en cuál intervalo cae el valor x = 1.5: cae en
entre x2 y x3 , por lo tanto, se aplica el spline S2 :
S2 (x) = a2 (x − x2 )3 + b2 (x − x2 )2 + c2 (x − x2 ) + d2 (87)
c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 12