Está en la página 1de 12

Métodos Numéricos (SC–854)

Interpolación


c M. Valenzuela 2007–2008
(26 de febrero de 2008)

1. Definición del problema de interpolación


Dada una tabla de valores (xi , fi ) se desea estimar f (x) para valores de x que no se
encuentran en la tabla.

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

Resolviendo obtenemos los valores de los coeficientes ci :


⎡ ⎤
0.0323
⎢ −0.4581 ⎥
⎢ ⎥
⎢ ⎥
c=⎢ 2.3330 ⎥ (3)
⎢ ⎥
⎣ −4.2102 ⎦
2.3393

Una vez que se tiene el vector c se puede escribir el polinomio de interpolación,

P4 (x) = 0.0323x4 − 0.4581x3 + 2.3330x2 − 4.2102x + 2.3393, (4)

y se puede interpolar para cualquier valor de x.


En general, dados unos datos de la forma

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 )

El polinomio de orden n está dado por


Pn (x) = c1 xn + c2 xn−1 + · · · + cn x + cn+1
donde los coeficientes ci se obtienen de resolver el sistema de ecuaciones dado por
⎡ ⎤⎡ ⎤ ⎡ ⎤
xn1 xn−1
1 ··· x1 1 c1 f1
⎢ n−1 ⎥⎢ ⎥ ⎢ ⎥
⎢ xn2 x2 ··· x2 1 ⎥⎢ c2 ⎥ ⎢ f2 ⎥
⎢ ⎥⎢ ⎥=⎢ ⎥
⎢ .. .. .. .. ⎥⎢ .. ⎥ ⎢ .. ⎥
⎣ . . . . ⎦⎣ . ⎦ ⎣ . ⎦
xnn+1 xn−1
n+1 · · · xn+1 1 cn+1 fn+1
A la forma anterior de obtener directamente los coeficientes ci generando un sistema de n
ecuaciones con n incógnitas se le denomina interpolación directa. El método de interpolación
directa tiene el problema de que las ecuaciones que se generan están mal condicionadas en el
caso general a medida que se incrementa el orden del polinomio de interpolación debido a que
se tienen valores de xni . Debido a lo anterior, se han ideado otros métodos de interpolación.
El polinomio de interpolación es único, es decir, existe solamente un polinomio de orden
n que pase por n + 1 datos. Los demás métodos de interpolación escriben este polinomio de
formas que resultan más sencillas de evaluar.

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)

xi 0.4 2.5 4.3 5.0 6.0


fi 1.00 0.50 2.00 2.55 4.00

Figura 2: Datos para interpolar para x = 5.2 mediante el polinomio de Lagrange y el


polinomio de Newton.

Sustituyendo los valores de xi , es fácil demostrar que P1 (x1 ) = f1 , y que P1 (x2 ) = f2 .


Los polinomios de Lagrange de órdenes 2 y 3 se presentan a continuación:
(x − x2 )(x − x3 ) (x − x1 )(x − x3 ) (x − x1 )(x − x2 )
P2 (x) = f1 + f2 + f3 (7)
(x1 − x2 )(x1 − x3 ) (x2 − x1 )(x2 − x3 ) (x3 − x1 )(x3 − x2 )

(x − x2 )(x − x3 )(x − x4 ) (x − x1 )(x − x3 )(x − x4 )


P3 (x) = f1 + f2 + (8)
(x1 − x2 )(x1 − x3 )(x1 − x4 ) (x2 − x1 )(x2 − x3 )(x2 − x4 )
(x − x1 )(x − x2 )(x − x4 ) (x − x1 )(x − x2 )(x − x3 )
f3 + f4 (9)
(x3 − x1 )(x3 − x2 )(x3 − x4 ) (x4 − x1 )(x4 − x2 )(x4 − x3 )

De nuevo, es fácil demostrar que P3 (x1 ) = f1 , P3 (x2 ) = f2 , y P3 (x3 ) = f3 . En general


se puede demostrar que Pn (xi ) = fi para i = 1, 2, . . . , n + 1, es decir que el polinomio de
Lagrange es efectivamente igual al polinomio de interpolación.
Cuando se utiliza el polinomio de Lagrange para interpolación se debe evaluar la ecuación 5
para cada valor que se vaya a interpolar.

4. Ejemplo de interpolación mediante el polinomio de La-


grange
Dados los datos mostrados en la figura 2 se desea interpolar para el valor x = 5.2,

(x − x2 )(x − x3 )(x − x4 )(x − x5 )


P4 (x) = f1 +
(x1 − x2 )(x1 − x3 )(x1 − x4 )(x1 − x5 )
(x − x1 )(x − x3 )(x − x4 )(x − x5 )
f2 +
(x2 − x1 )(x2 − x3 )(x2 − x4 )(x2 − x5 )
(x − x1 )(x − x2 )(x − x4 )(x − x5 )
f3 +
(x3 − x1 )(x3 − x2 )(x3 − x4 )(x3 − x5 )
(x − x1 )(x − x2 )(x − x3 )(x − x5 )
f4 +
(x4 − x1 )(x4 − x2 )(x4 − x3 )(x4 − x5 )
(x − x1 )(x − x2 )(x − x3 )(x − x4 )
f5
(x5 − x1 )(x5 − x2 )(x5 − x3 )(x5 − x4 )
(5.2 − 2.5)(5.2 − 4.3)(5.2 − 5.0)(5.2 − 6.0)
P4 (5.2) = 1.00 +
(0.4 − 2.5)(0.4 − 4.3)(0.4 − 5.0)(0.4 − 6.0)
(5.2 − 0.4)(5.2 − 4.3)(5.2 − 5.0)(5.2 − 6.0)
0.50 +
(2.5 − 0.4)(2.5 − 4.3)(2.5 − 5.0)(2.5 − 6.0)


c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 3
Interpolación Métodos Numéricos (SC–854)

(5.2 − 0.4)(5.2 − 2.5)(5.2 − 5.0)(5.2 − 6.0)


2.00 +
(4.3 − 0.4)(4.3 − 2.5)(4.3 − 5.0)(4.3 − 6.0)
(5.2 − 0.4)(5.2 − 2.5)(5.2 − 4.3)(5.2 − 6.0)
2.55 +
(5.0 − 0.4)(5.0 − 2.5)(5.0 − 4.3)(5.0 − 6.0)
(5.2 − 0.4)(5.2 − 2.5)(5.2 − 4.3)(5.2 − 5.0)
4.00
(6.0 − 0.4)(6.0 − 2.5)(6.0 − 4.3)(6.0 − 5.0)
− 0.3888 − 0.6912
P4 (5.2) = 1.00 + 0.50 +
210.9744 − 33.0750
− 2.0736 − 9.3312 2.3328
2.00 + 2.55 + 4.00
8.3538 − 8.0500 33.3200
= 2.7481

5. Polinomio de Newton y diferencias divididas


El polinomio de Newton es una forma más eficiente de evaluar el polinomio de inter-
polación. En este método, se calcula una tabla de diferencias dividas una vez, y éstas son
utlizadas para cada dato que se vaya a interpolar.
Las diferencias divididas se definen de la siguiente manera:

Diferencia dividida de orden 0:


f [xi ] = fi (10)

Diferencia dividida de orden 1:


fj − fi
f [xi , xj ] = (11)
xj − xi

Diferencia dividida de orden 2:


f [xj , xk ] − f [xi , xj ]
f [xi , xj , xk ] = (12)
xk − xi

Diferencia dividida de orden más alto:


f [x2 , x3 , . . . , x ] − f [x1 , x2 , . . . , x−1 ]
f [x1 , x2 , . . . , x ] = (13)
x − x1

Las diferencias divididas se suelen calcular en forma tabular como se muestra en la


figura 3.
El polinomio de Newton tiene la siguiente forma general:

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

Figura 3: Forma tabular de las diferencias divididas

donde
ai = f [x1 , x2 , . . . , xi ] (16)
Podemos probar que Pn (x) es un polinomio de interpolación. Primero, probamos que
Pn (x1 ) = f1 :

Pn (x) = f [x1 ] = f1 (17)


Pn (x1 ) = f1 (18)

Ahora, probamos que Pn (x2 ) = f2 :

Pn (x) = f [x1 ] + f [x1 , x2 ](x − x1 ) (19)


Pn (x2 ) = f [x1 ] + f [x1 , x2 ](x2 − x1 ) (20)
f2 − f1
= f1 + (x2 − x1 ) (21)
x2 − x1
= f2 (22)

Finalmente, probamos que Pn (x3 ) = f3 :

Pn (x) = f [x1 ] + f [x1 , x2 ](x − x1 ) + f [x1 , x2 , x3 ](x − x1 )(x − x2 ) (23)


Pn (x3 ) = f [x1 ] + f [x1 , x2 ](x3 − x1 ) + f [x1 , x2 , x3 ](x3 − x1 )(x3 − x2 ) (24)
f2 − f1 f [x2 , x3 ] − f [x1 , x2 ]
= f1 + (x3 − x1 ) + (x3 − x1 )(x3 − x2 ) (25)
x2 − x1 x3 − x1


f2 − f1 f3 − f2 f2 − f1
= f1 + (x3 − x1 ) + − (x3 − x2 ) (26)
x2 − x1 x3 − x2 x2 − x1
f2 − f1 f2 − f1
= f1 + (x3 − x1 ) + (f3 − f2 ) − (x3 − x2 ) (27)
x2 − x1 x2 − x1
(f2 − f1 )(x3 − x1 ) − (f2 − f1 )(x3 − x2 )
= f1 + (f3 − f2 ) + (28)
x2 − x1
− f2 x1 + f1 x1 + f2 x2 − f1 x2
= f1 + (f3 − f2 ) + (29)
x2 − x1
f2 (x2 − x1 ) − f1 (x2 − x1 )
= f1 + (f3 − f2 ) + = f3 (30)
x2 − x1


c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 5
Interpolación Métodos Numéricos (SC–854)

De la misma forma se puede probar que Pn (xi ) = fi , por lo tanto, el polinomio de


Newton es efectivamente un polinomio de interpolación.

6. Ejemplo de interpolación mediante el polinomio de New-


ton
Se desea interpolar los datos de la figura 2 mediante el polinomio de Newton para
x = 5.2. Primero, calculamos la tabla de diferencias divididas:

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

Ahora evaluamos el polinomio de Newton:

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)

7. Polinomio de Newton-Gregory y diferencias


Se dice que los datos estén uniformemente espaciados si xi+1 − xi = Δx es constante
para i = 1, 2, 3, . . .. Para el caso particular de datos uniformemente espaciados, es posible
encontrar una forma más sencilla del polinomio de Newton. Esta forma más sencilla se basa
en diferencias que se definen de la siguiente manera:

Diferencia de orden 0:
Δ0 f i = f i (34)

Diferencia de orden 1:
Δ1 fi = fi+1 − fi (35)

Diferencia de orden 2:

Δ2 fi = Δ(Δfi ) = Δ(fi+1 − fi ) = Δfi+1 − Δfi = fi+2 − 2fi+1 + fi (36)

Diferencia de orden 3:

Δ3 fi = Δ(Δ2 fi ) = Δ2 fi+1 − Δ2 fi = fi+3 − 3fi+2 + 3fi+1 − fi (37)


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!

El polinomio de Newton-Gregory de orden n tiene la siguiente forma general:

k(k − 1) 2 k(k − 1)(k − 2) 3


Pn (xk+1 ) = f1 + kΔf1 + Δ f1 + Δ f1 + · · ·
2! 3!





k k k k
= Δ0 f 1 + Δ1 f 1 + Δ2 f 1 + Δ3 f 1 + · · ·
0 1 2 3
k


 k
= Δi f 1 (39)
i=0
i

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)

Para para interpolar mediante el polinomio de Newton-Gregory se calcula un ı́ndice no


entero s mediante la siguiente fórmula:

x − x1
s= (45)
Δx

El valor de s se sustituye en el polinomio:


n


 s
Pn (x) = Δi f 1 (46)
i=0
i

7.1. Ejemplo del polinomio de Newton-Gregory


Suponga que se desea interpolar para el valor de x = 0.73 mediante el polinomio de
Newton-Gregory para los valores mostrados en la figura 4. Como primer paso se calculan
todas las diferencias de orden 3 o menor:
i xi Δ0 f i Δ1 f i Δ2 f i Δ3 f i
1 0.4 0.423 0.261 0.085 0.096
2 0.6 0.684 0.346 0.181
3 0.8 1.030 0.527
4 1.0 1.557


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

Figura 4: Datos para interpolar mediante el polinomio de Newton-Gregory.


f (x)

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

Figura 5: Un ejemplo del uso de splines para interpolación.

Se calcula el valor de s mediante la fórmula 45:


x − x1 0.73 − 0.4
s= = = 1.65 (47)
Δx 0.2

Finalmente, se sustituye el valor de s en el polinomio de Newton-Gregory (ecuación 39):

s(s − 1) 2 s(s − 1)(s − 2) 3


f (0.73) = f1 + sΔf1 + Δ f1 + Δ f1 (48)
2! 3!
1.65(0.65) 1.65(0.65)(−0.35)
f (0.73) = 0.423 + 1.65(0.261) + 0.085 + 0.096 (49)
2 6
f (0.73) = 0.893 (50)

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

ai (xi+1 − xi )3 + bi (xi+1 − xi )2 + ci (xi+1 − xi ) − di = di+1 (66)

Para simplificar, definimos hi ≡ xi+1 − xi , y obtenemos que

ai h3i + bi h2i + ci hi + di = di+1 (67)

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

3ai h2i + 2bi hi + ci = ci+1 (68)

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

6ai hi + 2bi = 2bi+1 (69)

Dividiendo y despejando ai obtenemos que

1
ai = (bi+1 − bi ) (70)
3hi

Sustituyendo lo anterior en la ecuación 67 obtenemos

h2i
(bi+1 − bi ) + bi h2i + ci hi + di = di+1 (71)
3

que es lo mismo que


h2i
(bi+1 + 2bi ) + ci hi + di = di+1 (72)
3
Ahora despejamos ci
1 hi
ci = (di+1 − di ) − (bi+1 + 2bi ) (73)
hi 3
que es lo mismo que

1 hi−1
ci−1 = (di − di−1 ) − (bi + 2bi−1 ) (74)
hi−1 3

Sustituyendo la ecuación 70 en la ecuación 68:

hi (bi+1 − bi ) + 2bi hi + ci = ci+1 (75)

hi (bi+1 + bi ) + ci = ci+1 (76)


que es lo mismo que
hi−1 (bi + bi−1 ) + ci−1 = ci (77)


c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 10
Interpolación Métodos Numéricos (SC–854)

Sustituyendo las ecuaciones 73 y 74 en la ecuación 77 obtenemos lo siguiente

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

Simplificando lo anterior finalmente obtenemos la siguiente fórmula que define un sistema


de ecuaciones:
3 3
hi−1 bi−1 + 2(hi−1 + hi )bi + hi bi+1 = (di+1 − di ) − (di − di−1 ) (79)
hi hi−1

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

Los coeficientes bi se obtienen de la ecuación 70 que aquı́ se repite:

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)

9. Ejemplo de interpolación mediante splines cúbicos


Deseamos interpolar mediante splines cúbicos los siguientes datos:

xi 0 1 2 3 4
fi 0.2231 0.6065 1.0000 0.6065 0.2231

para x = 1.5. Se plantea el siguiente sistema de ecuaciones:


⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 0 0 b1 0.0000
⎢ 1 4 1 0 0 ⎥⎢ b2 ⎥ ⎢ 0.0303 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 0 1 4 1 0 ⎥⎢ b3 ⎥= ⎢ −2.3610 ⎥ (83)
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ 0 0 1 4 1 ⎦⎣ b4 ⎦ ⎣ 0.0303 ⎦
0 0 0 0 1 b5 0.0000

Resolviendo obtenemos los valores de bi para i = 1, 2, . . . , n + 1.


⎡ ⎤
0.0000
⎢ ⎥
⎢ 0.1773 ⎥
⎢ ⎥
b=⎢ −0.6789 ⎥ (84)
⎢ ⎥
⎣ 0.1773 ⎦
0.0000

Después de obtener las bi podemos obtener los demás coeficientes:


⎡ ⎤ ⎡ ⎤
0.0591 0.3243
⎢ −0.2854 ⎥ ⎢ ⎥
⎢ ⎥ ⎢ 0.5016 ⎥
a=⎢ ⎥ c=⎢ ⎥ (85)
⎣ 0.2854 ⎦ ⎣ 0.0000 ⎦
−0.0591 −0.5016

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)

Evaluando para x = 1.5, y tomando en cuenta que 1.5 − x2 = 0.5:

S2 (1.5) = (−0.2854)(0.5)3 + (0.1173)(0.5)2 + (0.5016)0.5 + 0.6065 = 0.8660 (88)

Se puede comprobar que S4 (x5 ) = 0, es decir, que Sn (xn+1 ) = 0.


c M. Valenzuela, 2007–2008 (26 de febrero de 2008) Página 12

También podría gustarte