INTERPOLACIÓN
En este capítulo estudiaremos el importantísimo tema de la interpolación de datos. Veremos dos tipos de interpolación: la interpolación polinomial y la interpolación segmentaria (splines).Comencemos dando la definición general.
Definición. Dados 1n puntos que corresponden a los datos:
y los cuales se representan gráficamente como puntos en el plano cartesiano,
Si existe una función )(xf definida en el intervalo nxx ,0 (donde suponemos
que nxxx 10 ), tal que ii yxf )( para ni ,,2,1,0 , entonces a )(xf se le llama una función de interpolación de los datos, cuando es usada para
aproximar valores dentro del intervalo nxx ,0 , y se le llama función de extrapolación de los datos, cuando está definida y es usada para aproximar valores fuera del intervalo.
Evidentemente pueden existir varios tipos de funciones que interpolen los mismos datos; por ejemplo, funciones trigonométricas, funciones exponenciales, funciones polinomiales, combinaciones de éstas, etc.
El tipo de interpolación que uno elige, depende generalmente de la naturaleza de los datos que se están manejando, así como de los valores intermedios que se están esperando.
Un tipo muy importante es la interpolación por funciones polinomiales. Puesto que evidentemente pueden existir una infinidad de funciones polinomiales de interpolación para una misma tabla de datos, se hace una petición extra para que el polinomio de interpolación , sea único.
Definición. Un polinomio de interpolación es una función polinomial que además de interpolar los datos, es el de menor grado posible.
Caso n=0
Tenemos los datos:
En este caso, tenemos que 0)( yxf (polinomio constante) es el
polinomio de menor grado tal que 00 )( yxf , por lo tanto, es el polinomio de interpolación.
Caso n=1 Tenemos los datos:
En este caso, el polinomio de interpolación es la función lineal que une a los dos puntos dados. Por lo tanto, tenemos que
)()( 001
010 xx
xxyyyxf
es el polinomio de interpolación.
La siguiente gráfica representa este caso:
Observación.
Vemos que en el polinomio de interpolación del caso n=1 se encuentra como primer término, 0y , que es el polinomio de interpolación del caso n=0.
Continuemos:
Caso n=2
Tenemos los datos:
Para este caso, el polinomio de interpolación va a ser un polinomio de grado 2. Tomando en cuenta la observación anterior, intuímos que el polinomio de interpolación será como sigue:
término cuadrático
Por lo tanto, planteamos el polinomio de interpolación como sigue:
))(()()( 102010 xxxxbxxbbxf
Si asignamos 0xx , se anulan los valores de 1b y 2b , quedándonos el resultado:
00 )( bxf
Como se debe cumplir que 00 )( yxf , entonces:
00 by
Si asignamos 1xx , el valor de 2b queda anulado, resultando lo siguiente:
)()( 01101 xxbbxf
Como se debe cumplir que 11)( yxf y ya sabemos que 00 by ,
entonces )( 01101 xxbby , de lo cual obtenemos el valor para 1b :
101
01 bxxyy
Asignando 2xx , vamos a obtener :
))(()()( 1202202102 xxxxbxxbbxf
Como se debe cumplir que 22 )( yxf , y ya sabemos que 00 by y
101
01 bxxyy
, sustituímos estos datos para después despejar el valor de 2b :
))(()( 120220201
0102 xxxxbxx
xxyyyy
De lo cual podemos hacer un despeje parcial para lograr la siguiente igualdad :
)()(
02212
0201
0102
xxbxx
xxxxyy
yy
Ahora en el numerador del miembro izquierdo de la igualdad, le
sumamos un cero 11 yy , de tal manera que no se altere la igualdad:
A continuación, aplicamos un poco de álgebra para así obtener los siguientes resultados:
Y finalmente despejando a 2b vamos a obtener :
02
01
01
12
12
2 xxxxyy
xxyy
b
Por lo tanto, el polinomio de interpolación para este caso es:
Observación.
Vemos que efectivamente el polinomio de interpolación contiene al del caso anterior, más un término extra que es de un grado mayor, pero además vemos que cada uno de los coeficientes del polinomio de interpolación, se forman a base de cocientes de diferencias de cocientes de diferencias, etc. Esto da lugar a la definición de diferencias divididas finitas de Newton, como sigue:
DIFERENCIAS DIVIDIDAS FINITAS DE NEWTON
Las diferencias divididas finitas de Newton, se define de la siguiente manera:
ji
jiji xx
xfxfxxf
)()(
],[
ki
kjjikji xx
xxfxxfxxxf
],[],[
],,[
0
011011
],,[],,[],,,,[xx
xxfxxfxxxxfn
nnnn
A manera de ejemplo citemos el siguiente caso específico :
03
0121230123
],,[],,[],,,[xx
xxxfxxxfxxxxf
donde a su vez:
13
1223123
],[],[],,[xx
xxfxxfxxxf
y
012
0112012
],[],[],,[xx
xxfxxfxxxf
Y donde a su vez:
23
2323
)()(],[xx
xfxfxxf
etc.
Podemos ahora definir nuestro primer tipo de polinomio de interpolación.
POLINOMIO DE INTERPOLACIÓN DE NEWTON CON DIFERENCIAS DIVIDIDAS
Dados 1n datos:
- El polinomio de interpolación de Newton se define de la siguiente manera:
110102010 nn xxxxxxbxxxxbxxbbxf
donde :
00 xfb
],[ 011 xxfb
0122 ,, xxxfb
0,, xxfb nn
Para calcular los coeficientes nbbb ,,, 10 , es conveniente construir una tabla de diferencias divididas como la siguiente :
Obsérvese que los coeficientes del polinomio de interpolación de Newton, se encuentran en la parte superior de la tabla de diferencias divididas.
Ejemplo 1. Calcular la tabla de diferencias divididas finitas con los siguientes datos :
Y utilizar la información de dicha tabla, para construir el polinomio de interpolación de Newton.
Solución. Procedemos como sigue:
Por lo tanto el polinomio de interpolación de Newton es :
)2)(1)(2(3.0)1)(2(25.0)2(24)( xxxxxxxf
Ejemplo 2. Calcular la tabla de diferencias divididas finitas con los siguientes datos :
Y usar la información en la tabla, para construir el polinomio de interpolación de Newton.
Solución. Procedemos como sigue:
Por lo tanto el polinomio de interpolación de Newton nos queda :
))(2)(3(20238.0)2)(3(66667.1)3(35)( xxxxxxxf
Antes de ver el siguiente tipo de polinomio de interpolación, veamos como el imponer la restricción del grado mínimo, implica la unicidad del polinomio de interpolación.
TEOREMA .
Si nxxx ,,, 10 son números reales distintos, entonces para valores
arbitrarios nyyy ,,, 10 existe un polinomio único xfn , de a lo más grado n, y tal que:
iin yxf para toda ni ,,2,1,0
DEMOSTRACIÓN.
En realidad, no probaremos formalmente la existencia de un polinomio de interpolación, aunque informalmente aceptamos que dada cualquier tabla de datos, el polinomio de Newton siempre existe.
Probemos la unicidad del polinomio de interpolación.
Supongamos que xgn es otro polinomio de interpolación de a lo más grado n,
Sea xgxfxh nnn
0 iiininin yyxgxfxh para todo ni ,2,1,0
Por lo tanto, xhn tiene 1n raíces distintas, y es un polinomio de grado a lo más n, esto solamente es posible si 0xhn .
xgxf nn
Que es lo que queríamos probar.
Sin embargo, aunque el polinomio de interpolación es único, pueden existir diversas formas de encontrarlo. Una, es mediante el polinomio de Newton, otra mediante el polinomio de Lagrange.
POLINOMIO DE INTERPOLACIÓN DE LAGRANGE Nuevamente tenemos los datos :
El polinomio de interpolación de Lagrange se plantea como sigue:
)()()()( 1100 xlyxlyxlyxP nn Donde los polinomios )(xli se llaman los polinomios de Lagrange, correspondientes a la tabla de datos. Como se debe satisfacer que 00 )( yxP , esto se cumple si 1)( 00 xl y
0)( 0 xli para toda 0i .
Como se debe satisfacer que 11)( yxP , esto se cumple si 1)( 11 xl y 0)( 1 xli para toda 1i .
Y así sucesivamente, veremos finalmente que la condición nnn yxP se cumple si 1nn xl y 0ni xl para toda ni .Esto nos sugiere como plantear los polinomios de Lagrange. Para ser más claros, analicemos detenidamente el polinomio )(0 xl . De acuerdo al análisis anterior vemos que deben cumplirse las siguientes condiciones para )(0 xl :
1)( 00 xl y 0)(0 jxl , para toda 0j
Por lo tanto, planteamos )(0 xl como sigue: no xxxxxxcxl 21
Con esto se cumple la segunda condición sobre )(0 xl . La constante c se determinará para hacer que se cumpla la primera condición:
nxxxxxxcxl 0201000 11
nxxxxxxc
02010
1
Por lo tanto el polinomio )(0 xl queda definido como:
n
n
xxxxxxxxxxxxxl
02010
210
Análogamente se puede deducir que:
jiij
jii
j xx
xxxl
)(
)(
, para nj ,,1
Ejemplo 1 Calcular el polinomio de Lagrange usando los siguientes datos:
Solución. Tenemos que:
)()()()()( 3321100 xlyxlyxlyxlyxf
)(3)(2)()(2)( 3210 xlxlxlxlxf
donde:
48)7)(5)(3(
)6)(4)(2()7)(5)(3()(0
xxxxxxxl
16)7)(5)(1(
)4)(2)(2()7)(5)(1()(1
xxxxxxxl
16)7)(3)(1(
)2)(2)(4()7)(3)(1()(2
xxxxxxxl
48)5)(3)(1(
)2)(4)(6()5)(3)(1()(3
xxxxxxxl
Sustituyendo arriba, el polinomio de Lagrange queda definido como sigue:
16
)5)(3)(1(8
)7)(3)(1(16
)7)(5)(1(24
)7)(5)(3()( xxxxxxxxxxxxxf
Ejemplo 2. Calcular el polinomio de Lagrange usando los siguientes datos:
Solución. Tenemos que:
)()()()()( 3321100 xlyxlyxlyxlyxf
)(2)(3)()()( 3210 xlxlxlxlxf donde:
48)4)(2(
)6)(4)(2()4)(2)(0()(0
xxxxxxxl
16)4)(2)(2(
)4)(2)(2()4)(2)(2()(1
xxxxxxxl
16)4)(2(
)2)(2)(4()4)(0)(2()(2
xxxxxxxl
48)2)(2(
)2)(4)(6()2)(0)(2()(3
xxxxxxxl
Sustituyendo arriba, el polinomio de Lagrange queda como sigue:
24
)2)(2(16
)4)(2(316
)4)(2)(2(48
)4)(2()( xxxxxxxxxxxxxf
En el capítulo de integración numérica, usaremos nuevamente a los polinomios de Lagrange.
INTERPOLACIÓN DE SPLINES
Terminamos este capítulo, estudiando un tipo de interpolación que ha demostrado poseer una gran finura, y que inclusive es usado para el diseño por computadora, por ejemplo, de tipos de letra. Esta interpolación se llama interpolación segmentaria o interpolación por splines. La idea central es que en vez de usar un solo polinomio para interpolar los datos, podemos usar segmentos de polinomios y unirlos adecuadamente para formar nuestra interpolación.Cabe mencionar que entre todas, las splines cúbicas han resultado ser las más adecuadas para aplicaciones como la mencionada anteriormente.
Así pues, podemos decir de manera informal, que una funcion spline está formada por varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones de continuidad.
Definición. (Splines de grado k) Dada nuestra tabla de datos,
donde suponemos que nxxx 10 , y dado k un número entero positivo, una función de interpolación spline de grado k, para la tabla de datos, es una función )(xs tal que :i) ii yxs )( , para toda ni ,,1,0 .ii) xs es un polinomio de grado k en cada subintervalo ii xx ,1 .iii ) xs tiene derivada contínua hasta de orden 1k en nxx ,0 . FUNCIONES SPLINES DE GRADO 1 Dados los 1n puntos
Una función spline de grado 1 que interpole los datos es simplemente unir cada uno de los puntos mediante segmentos de recta, como sigue:
Claramente esta función cumple con las condiciones de la spline de grado 1. Así, tenemos que para ested caso:
nnn xxxsixs
xxxsxsxxxsixs
xs
,
,,
)(
1
212
101
donde: i) xs j es un polinomio de grado menor o igual que 1 ii) xs tiene derivada continua de orden k-1=0. iii) jj yxs , para nj ,,1,0 .Por lo tanto, la spline de grado 1 queda definida como :
nnnnnn xxxsixxxxfy
xxxsixxxxfyxxxsixxxxfy
xs
,,
,,,,
1111
211121
100010
donde ],[ ji xxf es la diferencia dividida de Newton. FUNCIONES SPLINES DE GRADO 2 Para aclarar bien la idea, veamos un ejemplo concreto, consideremos los siguientes datos :
Y procedamos a calcular la interpolación por splines de grado 2.Primero que nada, vemos que se forman tres intervalos :
9,7
7,5.45.4,3
En cada uno de estos intervalos, debemos definir una función polinomial de grado 2, como sigue:
9,77,5.45.4,3
332
3
222
2
112
1
xsicxbxaxsicxbxaxsicxbxa
xs
Primero, hacemos que la spline pase por los puntos de la tabla de datos. Es decir, se debe cumplir que:
5.0)9(,5.2)7(,1)5.4(,5.2)3( ssss
Así, se forman las siguientes ecuaciones:
5.2395.2)3( 111 cbas
15.4)5.4(15.4)5.4(
1)5.4(222
2111
2
cbacba
s
5.27495.2749
5.2)7(333
222
cbacba
s
5.09815.0)9( 333 cbas Hasta aquí, tenemos un total de 6 ecuaciones vs. 9 incógnitas.El siguiente paso es manejar la existencia de las derivadas contínuas. En el caso de las splines de grado 2, necesitamos que la spline tenga derivada contínua de orden k-1=1, es decir, primera derivada continua.Calculamos primero la primera derivada:
9,727,5.425.4,32
33
22
11
xsibxaxsibxaxsibxa
xs
Vemos que esta derivada está formada por segmentos de rectas, que pudieran presentar discontinuidad en los cambios de intervalo. Es decir, las posibles discontinuidades son 5.4x y 7x . Por lo tanto para que xs sea contínua, se debe cumplir que:
2211 5.425.42 baba o lo que es lo mismo, 2211 99 baba También debe cumplirse que:
3322 7272 baba o lo que es lo mismo, 3322 1414 baba Así, tenemos un total de 8 ecuaciones vs. 9 incognitas; esto nos da un grado de libertad para elegir alguna de las incógnitas. Elegimos por simple conveniencia 01 a . De esta forma, tenemos un total de 8 ecuaciones vs. 8 incógnitas. Estas son las siguientes:
3322
221
333
333
222
222
11
11
14149
5.09815.27495.2749
15.425.2015.45.23
bababab
cbacbacba
cbacb
cb
Este sistema de ecuaciones tiene la siguiente forma matricial:
005.05.25.2
115.2
01140114000000190119810000017490000000017490000015.425.200000000015.400000013
3
3
3
2
2
2
1
1
cbacbacb
Usando Mathematica se obtiene la siguiente solución:
3.916.246.1
46.1876.6
64.05.51
3
3
3
2
2
2
1
1
cbacbacb
Sustituyendo estos valores (junto con 01 a ), obtenemos la función spline cuadrática que interpola la tabla de datos dada:
9,73.916.246.17,5.446.1876.664.05.4,35.5
2
2
xsixxxsixxxsix
xs
La gráfica que se muestra a continuación, contiene tanto los puntos iniciales de la tabla de datos, así como la spline cuadrática. Esta gráfica se generó usando Mathematica. El siguiente caso, que es el más importante en las aplicaciones, sigue exactamente los mismos pasos del ejemplo que acabamos de resolver, solamente que en vez de trabajar con polinomios cuadráticos, lo hace con polinomios cúbicos. FUNCIONES SPLINES CUBICAS Para hacer más firme el entendimiento, escribimos la definición correspondiente a este caso (k=3).
3 4.5 7 9
-1
1
2
3
4
5
Dados los 1n datos:
Una spline cúbica que interpola estos datos, es una función )(xs definida como sigue :
nnn xxxsixs
xxxsixsxxxsixs
xs
,
,,
11
211
100
donde cada xsi es un polinomio cúbico; iii yxs , para toda
ni ,,1,0 y tal que xs tiene primera y segunda derivadas contínuas en nxx ,0 . Ejemplo 1.Interpolar los siguientes datos mediante una spline cúbica :
Solución.Definimos un polinomio cúbico en cada uno de los intervalos que se forman:
5,33,2
222
23
2
112
13
1
xsidxcxbxaxsidxcxbxa
xs
A continuación, hacemos que se cumpla la condición de que la spline debe pasar por los puntos dados en la tabla. Así, tenemos que:
124812 1111 dcbas
2392723 1111 dcbas
752512575 2222 dcbas
Ahora calculamos la primera derivada de xs :
5,3233,223
222
2
112
1
xsicxbxaxsicxbxa
xs
Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que pueden presentar discontinuidad en los cambios de intervalo; las posibles discontinuidades son los puntos donde se cambia de intervalo, en este caso 3x . Para evitar esta discontinuidad, evaluamos 3x en los dos polinomios e igualamos:
222
2112
1 32333233 cbacba o lo que es lo mismo:
222111 627627 cbacba Análogamenete procedemos con la segunda derivada :
5,3263,226
22
11
xsibxaxsibxa
xs
Para lograr que xs sea continua :
2211 236236 baba
2211 218218 baba En este punto contamos con 6 ecuaciones y 8 incognitas, por lo tanto tenemos 2 grados de libertad; en general, se agregan las siguientes 2 condiciones:
0
00
nxsxs
De lo cual vamos a obtener :
022602 11 bas
0212 11 ba 025605 22 bas
0230 22 ba Con lo cual, hemos completado un juego de 8 ecuaciones vs. 8 incógnitas, el cual es el siguiente:
02300212
218218627627
752512523927
239271248
22
11
2211
222111
2222
2222
1111
1111
baba
babacbacba
dcbadcba
dcbadcba
Cuya forma matricial es la siguiente :
00007
221
002300000000000212002180021801627016271525125000013927000000001392700001248
2
2
2
2
1
1
1
1
dcbadcba
Usando Mathematica, obtenemos la siguiente solución:
125.50875.39375.9
625.05.075.10
5.725.1
2
2
2
2
1
1
1
1
dcbadcba
Sustituyendo estos valores en nuestra función inicial, vemos que la spline cúbica para la tabla de datos dada, queda definida como sigue:
5,3125.50875.39375.9625.03,25.075.105.725.1
23
23
xsixxxxsixxx
xs
Mostramos la gráfica correspondiente a este ejercicio, creada tambien en Mathematica.
Obsérvese la finura con la que se unen los polinomios cúbicos que conforman a la spline. Prácticamente ni se nota que se trata de dos polinomios diferentes!. Esto es debido a las condiciones que se impusieron sobre las derivadas de la función. Esta finura casi artística, es la que permite aplicar las splines cúbicas, para cuestiones como el diseño de letras por computadoras, o bien a problemas de aplicación donde la interpolación que se necesita es de un caracter bastante delicado, como podría tratarse de datos médicos sobre algún tipo de enfermedad.
Ejemplo 2.Interpolar los siguientes datos utilizando splines cúbicas:
Solución.Nuevamente, definimos un polinomio cúbico en cada uno de los intervalos:
4,22,11,1
)(
332
33
3
222
23
2
112
13
1
xsidcxbxaxsidxcxbxa
xsidxcxbxaxs
Despues, hacemos que la spline pase por los puntos dados en la tabla. Así, tenemos que:
1)1( s implica que,11111 dcba
1)1( s implica que, 11111 dcba12222 dcba
5)2( s implica que,
5248 2222 dcba5248 3333 dcba
Y finalmente 2)4( s implica que,
241664 3333 dcba Enseguida, calculamos la primera derivada:
4,2232,1231,123
)(
332
3
222
2
1112
1
xsicxbxaxsicxbxa
xsicxbxaxs
Vemos entonces, que las posibles discontinuidades de )(xs son
1x y 2x . Por lo tanto, para hacer que )(xs sea contínua, igualamos las ecuaciones correspondientes en ambos valores :
222111 2323 cbacba
333222 412412 cbacba Ahora procedemos a calcular la segunda derivada:
4,2262,1261,126
)(
33
22
11
xsibxaxsibxa
xsibxaxs
Nuevamente, las posibles discontinuidades son 1x y 2x . Por lo tanto, para que )(xs sea contínua , se igualan las ecuaciones en ambos valores :
22112211 332626 babababa
33223322 66212212 babababa
Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos inicial y final de la tabla. En este caso,
030260)1( 1111 babas01202240)4( 3333 babas
Con esto tenemos un juego de doce ecuaciones vs. doce incógnitas:
11111 dcba11111 dcba12222 dcba
5248 2222 dcba
5248 3333 dcba241664 3333 dcba
222111 2323 cbacba
333222 412412 cbacba
2211 33 baba
3322 66 baba 03 11 ba012 33 ba
Este sistema tiene la siguiente forma matricial:
0000002
55111
00112000000000000000000130016001600000000001300130141201412000000000123012314166400000000124800000000000012480000000011110000000000001111000000001111
3
3
3
3
2
2
2
2
1
1
1
1
dcbadcbadcba
Usando Mathematica, obtenemos la solución :
14051
1 a, 10
212 a
, 3524
3 a
140153
1 b, 35
2972 b
, 35288
3 b
14089
1 c, 70
4732 c
, 701867
3 c
40153
1 d, 35
482 d
, 35732
3 d
Por lo tanto, la spline cúbica es:
4,22,11,1
)(
35732
7018672
352883
3524
3548
704732
352973
1021
40153
140892
1401533
14051
xsixxxxsixxx
xsixxxxs
Finalmente, mostramos la gráfica correspondiente (creada en Mathematica):
EJERCICIOS
NOTA: CUANDO SEA NECESARIO, REDONDEA A CINCO DECIMALES.
1. 1. Calcula el polinomio de interpolación de Newton para los siguientes datos:
i) i) 8.74.235.0
4122
yx
ii) 1296035.12.19.06.03.0
yx
Soluciones:
)1)(2)(2(4625.0)2)(2(925.0)2(875.05.0)() xxxxxxxfi)9.0)(6.0)(3.0(18519.185)6.0)(3.0(50)3.0(103)() xxxxxxxfii
)2.1)(9.0)(6.0)(3.0(53088.447 xxxx
2. Calcula el polinomio de Lagrange para los siguientes datos:
-1 1 2 4
-2
2
4
6
8
i) 9.857.254.356.15321
yx
ii) ii) 0335294215.05.1
yx
Soluciones:
80
)5)(2)(1(57.245
)5)(3)(1(54.336
)5)(3)(2(56.1)() xxxxxxxxxxpi
144
)3)(2)(1(9.8 xxx
875.7
)4)(2)(1)(5.1(2125.3
)4)(2)(1)(5.0(9)() xxxxxxxxxpii
5.4
)4)(1)(5.0)(5.1(3325.56
)4)(2)(5.0)(5.1(5 xxxxxxxx
2. 3. Calcula las splines cúbicas para los siguientes datos:
i) i) 20540312
yx
ii) ii) 4064207325
yx
Soluciones:
3,1125.8125.16375.3375.01,25.725.145.125.0
)()23
23
xsixxxxsixxx
xsi
7,33,22,5
)()
263860
789105112
52620933
1578299
13158012
3945156192
263022573
78901241
7895860
78947032
526753
5265
xsixxxxsixxx
xsixxxxsii