En todo caso, se trata, a partir de n puntos distintos xk llamados nodos de obtener una
función f que verifique
Fotografía [editar]
En el campo de la fotografía y mundo de la imagen digital, la interpolación aplica este
mismo patrón para conseguir un tamaño mayor de la imagen inicial, rellenando la
información que falta con datos «inventados» a partir de un algoritmo específico.
• Interpolación por aproximación: Es uno de los métodos más antiguos que se basa en
obtener el promedio de valores de los 2 pixeles más próximos. La interpolación
bilineal es una mejora de la anterior, promediando en este caso 4 pixeles
adyacentes.
• Interpolación bicúbica: Usada por programas como Adobe Photoshop o Paint Shop
Pro es el método de interpolación considerado estándar (promedia 16 pixeles
adyacentes). Photoshop además usa algunas variaciones como Interpolación
bicúbica enfocada o Interpolación bicúbica suavizada que se basa en aplicar algunos
cambios a la imagen final.
• Interpolación en escalera (Stair Interpolation): Se basa en la interpolación bicúbica
con la diferencia que se va interpolando en incrementos de un 10% en cada paso
con respecto al anterior.
• Interpolación S-Spline: Este método de interpolación determina el color de un pixel
«desconocido» basándose en la totalidad de colores de la imagen, a diferencia que
los métodos anteriores.
• Interpolación Lanczos: Disponible de forma gratuita en el excelente visualizador-
editor IrfanView, y GIMP 2.3 y posteriores versiones, se basa en la calidad de la
imagen y ofrece resultados muy similares al método Mitchell.
• Interpolación Genuine Fractals: Por último, el sistema de interpolación de Genuine
Fractals que parece tener también unos resultados bastante aceptables.
Enlaces externos
• Algoritmo de interpolación por aproximación
• Algoritmo de interpolación bilineal
• Algoritmo de interpolación bicúbica
• Ejemplos de interpolación en escalera (Stair Interpolation)
• Algoritmo de interpolación S-Spline usada por programas como PhotoZoom o S-
Spline.
• Algoritmo de interpolación de Lanczos usada por programas como IrfanView
• Ejemplos de interpolación por GF con Genuine Fractals
• Interpolación de imágenes, en inglés
Teorema: Sea x 0 , x1 ,..., x m una lista de puntos en la cual ningún elemento se repite mas
de k veces. Se f una función cuyos valores están dados en estos números sobre un intervalo
que contiene estos puntos. Existe entonces un polinomio único de grado a lo mas n, con la
propiedad de que Pn ( xi ) = y i ...( 0 ≤ i ≤ n) (Ver demostración libro 6 pag. 286)
1.1. Propiedades
1.1.1. ∆(cF k ) = cF k +1 − cF k
= c( Fk +1 − Fk ) = c∆Fk
1.1.2. ∆( Fk + G k ) = Fk +1 + G k +1 − ( Fk + G k ) = Fk +1 + G k +1 − Fk − G k
= Fk +1 − Fk + G k +1 − G k = ∆Fk + ∆G k
1.1.3. ∆n (∆m Fk ) = ∆n +m Fk
EJEMPLO:
∆2 Fk = ∆(∆Fk ) = ∆( Fk +1 − Fk ) = ∆( Fk +1 ) − ∆( Fk )
= Fk +2 − Fk +1 − Fk +1 + Fk
= Fk +2 − 2 Fk +1 + Fk
EJEMPLO
X F ∆1
Fi ∆2 Fi ∆3 Fi ∆4 Fi
K 1 1
7
K+1 2 8 12
19 6
K+2 3 27 18 0
37 6
K+3 4 64 24
61
K+4 5 125
EJERCICIOS PROPUESTOS
1) Verificar si dados los puntos (1,1), (1.4, 1.1832), (2.2, 1.4832), (2.6, 1.6125), (3,
1.7321). ¿Es una tabla perfecta? De lo contrario explicar porque no lo es.
2) Verificar si ∆ FK = FK -2 FK+1, cumple la propiedad 2.
3) Verificar si ∆ FK = F2K - F2K+1, cumple la propiedad 2. ¿Qué condición se debe cumplir
para que se de la igualdad.
Una vez vistas las diferencias finitas ordinarias abordaremos lo que es la columna vertebral
del algoritmo de Newton:
F ( x 0 , x1 ) − F ( x1 , x 2 ) F ( x1 , x 2 ) − F ( x 0 , x1 )
F ( x 0 , x1 , x 2 ) = =
x0 − x 2 x2 − x0
F ( x 0 , x1 ....... x n −1 ) − F ( x1 , x 2 ....... x n )
F ( x 0 , x1 ,....... x n ) =
x0 − xn
Hallar F ( x3 , x2 , x1 ); F ( x2 , x3 ); F ( x5 , x4 , x3 ); F ( x1 , x5 )
EJERCICIO PROPUESTO
1) Para F ( x) = 25 x 3 − 6 x 2 + 7 x − 88 hallar hasta el 4° grado con x = 1, 1.3, 1.6, 1.9, 2.2
Observamos que tanto las diferencias finitas ordinarias como en las divididas se cumple
que dichas diferencias son constantes, en el orden n correspondiente a una función
polinómica de grado n. Esta propiedad es muy importante para la producción del
polinomio que ajusta la tabla.
La siguiente propiedad relaciona las diferencias finitas divididas con las ordinarias.
TEOREMA
Sea f una función definida sobre X0, X1,…Xn; tal que h = XK – XK-1; entonces se cumple:
∆n f 0
f ( X 0 , X 1 ,..., X n ) =
n!h n
EJERCICIOS PROPUESTOS
1. Demostrar
f0 f1 f2
f ( X 0 , X 1 ,..., X n ) = + +
( X 0 − X1 ) ( X 0 − X 2 ) ( X1 − X 0 ) ( X1 − X 2 ) ( X 2 − X 0 ) ( X 2 − X1 )
2. Ejercicios 1, 2, 6, 10, 13; página 131.
Para hallar dicho polinomio, tendremos en cuenta cada una de las constantes
obtenidas en cada columna de dicha tabla.
I. Lineal
P1 ( x ) = F ( x 0 ) + F ( x 0 , x1 )( x − x 0 ); donde F( x 0 , x1 ) es la primer diferencia finita dividida
II. Cuadrático
P2 ( x) = P1 ( x) + F ( x 0 , x1 , x 2 )( x − x 0 )( x − x1 )
P2 ( x ) = F ( x 0 ) + F ( x 0 , x1 )( x − x 0 ) + F ( x 0 , x1 , x 2 )( x − x 0 )( x − x1 )
Observamos que el an se vuelve cero a partir del momento en que las diferencias finitas
son constantes, esta es una aplicación del teorema.
n
III. Pn ( x) = f ( x0 ) + ∑ f [ x0 ,..., x k ]( x − x0 )( x − x1 )...( x − x k −1 ) donde
k =1
f [ xi +1 ,..., xi +k ] − f [ xi ,..., xi +k +1 ]
f [ x 0 ,... x k ] = se obtiene en la tabla de
xi +k − xi
diferencias divididas.
3. Demostración Lineal [ P1 ( x )]
x1 − x 0 = F ( x1 ) − F ( x 0 )
x − x 0 = P1 ( x ) − F ( x 0 )
P1 ( x ) − F ( x 0 ) =
[ F ( x1 ) − F ( x 0 )]( x − x 0 )
x1 − x 0
P1 ( x ) = F ( x 0 , x1 )( x − x 0 ) + F ( x 0 )
Ejemplo 1:
Solucion:
Donde las iniciales, PDD= Primera Diferencia Dividida, SDD= Segunda Diferencia
Dividida y TDD= Tercera Diferencia Dividida, respectivamente.
Nota: Vemos que la última diferencia dividida de la tabla es cero, por lo tanto la
tabla es llamada Tabla Perfecta. Ahora, como observamos que la columna de
SDD (segunda diferencia dividida), tiene valores iguales; el polinomio interpolante
es de grado 2.
P2 ( x ) = F ( x 0 ) + F [ x 0 , x1 ]( x − x 0 ) + F [ x 0 , x1 , x 2 ]( x − x 0 )( x − x1 ) = 21 −11( x + 2) + 8( x + 2)( x − 0)
.......... = 21 −11 x − 22 + 8 x 2 +16 x
luego .. P2 ( x ) = 8 x 2 + 5 x −1
c) El polinomio de grado tres de Newton es: No existe.
Nota: Notemos que el polinomio de grado 2 de Newton tiene la forma
P2 ( x ) = F ( x 0 ) + F [ x 0 , x1 ]( x − x 0 ) + F [ x 0 , x1 , x 2 ]( x − x 0 )( x − x1 )
Pn ( x) = Pn −1 ( x ) + F [ x 0 , x1 ,... x n ]( x − x 0 )( x − x1 )...( x − x n −1 )
Ejemplo 2:
F ( X 2 , X1, X 0 ) =
=1/3
1 X1=4 F(x1)=2 F ( X 2 , X 1 )
-1/60 F ( X 3 , X 2 , X1, X 0 )
F ( X 3, X 2 , X1 ) =
=1/5
=1/1260
2 X2=9 F(x2)=3 F ( X 3 , X 2 )
-1/210
=1/7
3 X3=16 F(x3)=4
f n +1(ε )
Rn = ( x − x 0 )( x − x1 )...( x − x n )
( n +1)!
Donde x0 < ξ < x y f ∈C n +1 (Ver demostración ene. Libro 3)
Ejemplo 3:
∞
Tomemos la función del ejemplo anterior, f ( x) = x , donde claramente f ∈C .
Supongamos que queremos calcular 1,5 y consideramos los nodos 1; 2; 3; 4.
Solucion:
f n +1(ε ) −15 / 16 x −7 / 2
Rn = ( x − x 0 )( x − x1 )...( x − x n ) = ( x −1)( x − 2)( x − 3)( x − 4)
( n +1)! 24
x 0 + x 1 + 1,5
ξ= = = 1,25
2 2
Es decir trabajamos con el punto medio entre el valor inicial de los datos
y el valor a aproximar; por lo tanto
−15 / 16 (1,25 ) −7 / 2
R4 = (1,25 −1)(1,25 − 2)(1,25 − 3)(1,25 − 4) = 0,016141615
24
Presentamos ahora una forma alternativa del polinomio de interpolación P(x) asociado con
una tabla de datos (xi , yi) con 0≤ i ≤ n. Es importante entender que existe uno y solo un
polinomio de interpolación de grado ≤ n asociado con los datos (suponiendo, claro esta, que
las n+1 abscisas xi son distintas). Sin embargo, existe ciertamente la posibilidad de expresar
este polinomio de maneras distintas y de llegar a el a través de distintos algoritmos.
n x − xj
Donde Li (x) = Π ; Π es productoria y Rn es el error.
j= 0
i≠ i
x −i x j
Para obtener el polinomio de grado uno (lineal) reemplazamos n=1
1
F1 ( x ) = ∑ Li ( x) F ( x i )
i =0
= L0 ( x) F ( x 0 ) + L1 ( x) F ( x1 )
n =1 x − xj x − x1
L0 ( x ) = ∏ =
j =0 xi − x j x 0 − x1
i≠ j
x − x0
L1 ( x) =
x1 − x 0
x − x1 x − x0
F1 ( x ) = f ( x0 ) + f ( x1 )
x 0 − x1 x1 − x 0
= L0 ( x) F ( x 0 ) + L1 ( x) F ( x1 ) + L2 ( x) F ( x 2 )
x − x1 x − x 2 x − x0 x − x2 x − x 0 x − x1
F2 ( x ) = f ( x0 ) + f ( x1 ) + f ( x2 )
x 0 − x1 x 0 − x 2 x1 − x 0 x1 − x 2 x 2 − x 0 x 2 − x1
= L0 ( x) F ( x 0 ) + L1 ( x) F ( x1 ) + L2 ( x) F ( x 2 ) + L3 ( x) F ( x 3 )
x − x1 x − x 2 x − x3 x − x 0 x − x 2 x − x3
F3 ( x) = f ( x0 ) + f ( x1 )
x 0 − x1 x 0 − x 2 x 0 − x3 x1 − x 0 x1 − x 2 x1 − x3
x − x 0 x − x1 x − x 3 x − x 0 x − x1 x − x 2
+ f ( x2 ) + f ( x3 )
x 2 − x 0 x 2 − x1 x 2 − x3 x 3 − x 0 x 3 − x1 x 3 − x 2
GRAFICA
Descripción visual del razonamiento detrás del polinomio de Lagrange. Esta figura
muestra un caso de segundo grado. Cada uno de los tres términos de la ecuación (3.3.2)
pasa a través de uno de los puntos que se tienen como datos y es cero en los otros dos.
La suma de los tres términos, por lo tanto, debe ser el único polinomio de segundo grado
f2(x) que pasa exactamente a través de os tres puntos.
EJEMPLO
Con un polinomio de interpolación de Lagrange de primero, segundo y tercer grado
evalué 1,5 ; basándose en los datos dados a continuación:
x0 = 1 f(x0)= 1
x1 = 2 f(x1)= 1,414213
x2 = 3 f(x2)= 1,732050
x3 = 4 f(x3)= 2
Solución:
Primero hallamos el polinomio lineal:
x −2 x −1
F1 ( x ) = (1) + (1,414213 ) = 0.414213 x + 0.585787 ⇒ F1 (1.5) = 1.2071065
1−2 2 −1
Ahora hallamos el polinomio cuadrático:
x − 2 x −3 x −1 x − 3 x −1 x − 2
F2 ( x ) = (1) + (1.414213 ) + (1.732050 ) ⇒ F2 (1.5) = 1.219153825
1 − 2 1 −3 2 −1 2 − 3 3 −1 3 − 2
Finalmente el polinomio cúbico es:
x −2 x −3 x −4 x −1 x − 3 x − 4 x −1 x − 2 x − 4 x −1 x − 2 x − 3
F3 ( x) = (1) + (1.414213 ) + (1.732050 ) +
1−2 1−3 1− 4 2 −1 2 − 3 2 − 4 3 −1 3 − 2 3 − 4 4 −1 4 − 2 4 − 3
F3 ( x) = 1.22205934
Como se esperaba, ambos resultados concuerdan con los que se obtuvieron antes al usar
el polinomio de interpolación de Newton.
EJERCICIO PROPUESTO
El polinomio de interpolación de Aitken nos permite generar los polinomios de grados más
altos partiendo de polinomios de grados más bajos.
Se genera un dispositivo triangulas de polinomios Pk,d mediante un determinante de orden
2. Aquí Pk,d es cierto polinomio de grado d que se interpola sobre un conjunto de d+1
puntos que dependen de k.
1 Pd , d xd − x
Pk , d +1 ( x ) = ; k = d + 1, d + 2, ........., n
xk − xd Pk , d xk − x
X0 P0,0 X0 – X
X1 P1,0 P1,1 X1 – X
X2 P2,0 P2,1 P2,2 X2 – X
. . . . . . .
. . . . . . .
. . . . . . .
• EJEMPLO
Hallar una aproximación de 1,5 utilizando el polinomio de interpolación de Aitken
de grado 3; para los siguientes valores:
x0 = 1 f(x0)= 1
x1 = 2 f(x1)= 1,414213
x2 = 3 f(x2)= 1,732050
x3 = 4 f(x3)= 2
Solución:
Utilizando las formulas descritas anteriormente; tenemos:
1 P0, 0 x0 − x 1 1 1 − 1.5
P1,1 ( x) = = = 1.20710678
x1 − x 0 P1, 0 x1 − x 2 −1 1.414213 2 −1.5
k =1
d =0
1 P0, 0 x0 − x 1 1 1 − 1.5
P2 ,1 ( x) = = = 1.1830127
x 2 − x 0 P2 , 0 x2 − x 3 + 1 1.73205081 3 − 1.5
k =2
d =0
1 P0,0 x0 − x 1 1 1 − 1.5
P3,1 ( x ) = = = 1.1666667
x3 − x 0 P3, 0 x3 − x 4 −1 2 4 − 1.5
k =3
d =0
1 P1,1 x1 − x 1 1.20710678 2 − 1.5
P2, 2 ( x) = = = 1.22205934
x 2 − x1 P2,1 x2 − x 3 − 2 1.1830127 3 −1.5
k =2
d =1
1 P1,1 x1 − x 1 1,20719678 − 2 −3
P3, 2 ( x ) = = = 1.21721681
x3 − x1 P3,1 x3 − x 4 − 2 1.16666667 4 −1.5
k =3
d =1
1 P2, 2 x2 − x 1 3 − 1.5 0 −3
P3,3 ( x ) = = = −24
x3 − x 2 P3, 2 x3 − x 4 − 3 1.21721681 4 − 1.5
k =3
d =2
Ejercicios propuestos
1. Dado el ejemplo anterior; realizar la aproximación de 1,5 utilizando:
a. f ( x) = 2 b. g ( x) = x c. h( x) = 4
x 3 x
Realizar una tabla con los polinomios de grado uno, dos y tres, donde se relacione l error
relativo. Hallar los puntos de tabulación de forma tal que el máximo intervalo que los
contenga sea de longitud 2
EJERCICIOS PROPUESTOS
1. El número de turistas que visitaron España en el periodo 1975-1990 está reflejado
en la siguiente tabla:
1975 1980 1985 1990
Años
Millones de turistas 24,1 30,1 38,1 43,2
Calcular, utilizando un polinomio de interpolación adecuado (cuadrático, al menos),
el número de turistas que visitarán España en 1995.
2. En la tabla siguiente se indica el tiempo (en días) y el peso (en gramos) de tres
embriones de cierta especie animal:
3 5 8
Tiempo
Peso 8 22 73
a) Obtener el polinomio de interpolación de 2º grado correspondiente.
b) Determinar, a partir de dicho polinomio, el peso que correspondería a un embrión
de 6,5 días.
(Sol. 0,7514)
4. De una función f(x) se conocen los valores f(1)=0, f(2)=4, f(5)=52. Hallar el
correspondiente polinomio cuadrático de interpolación. Estimar el valor de la función en
x=3 y en x=6. (Sol. P(x) = 3x2 –5x +2, P(3)=14 y P(6)=80)
5. Obtener la ecuación de la interpolación cuadrática que pasa por los puntos A(0,4),
B(1,3) y C(-1, 9). (Sol. P(x)= 2x2 – 3x + 4)
6. El aumento de líneas telefónicas instaladas en España durante los tres últimos
años fue:
1995 1996 1997
Años
Millones de líneas 8,457 8,882 9,640
a) ¿Es lineal el aumento producido?
b) Calcular el valor esperado en 1998 mediante una extrapolación cuadrática. (Sol.
10,731)
7. Dada la tabla de la función y = f(x)
x 1 2 3 4
f(x) 2 -1 6 0
Calcular el error cometido cuando se calcula f(4) mediante la interpolación
cuadrática, obtenida usando los otros valores de la tabla. (Sol. 23)
Polinomios de Hermite
Los polinomios osculadores son una generalización de los polinomios de Taylor y de
Lagrange. Estos interpolan la función dada, coincidiendo con ella en n+1 puntos y en sus m
derivadas.
Un caso particular son los polinomios de Hermite, que interpola la función dada, y
coincide con ella en n+1, y en n puntos de la derivada primera. El polinomio de Hermite
está dado por
donde
Hn,j(x) = [1 - 2(x-xj)L'n,j(xj)]L2n,j(x)
HHn,j(x) = (x-xj)L2n,j(x)
Si bien la descripción anterior es completa, el hecho de tener que evaluar los polinomios de
Lagrange y sus derivadas, lo hace un poco tedioso.
Una forma simple de encontrar los coeficientes es utilizando diferencias finitas, pero
definiendo nuevos puntos zi en la forma:
z1 = z2 = x1
z3 = z4 = x2
y en general:
z2i = z2i-1 = xi
Ejercicios:
Modificar el programa divideddiff.for para calcular los polinomios de Hermite.
Plotear la función y su derivada para nuestro viejo conocido caso de J0
Splines
Las interpolaciones con polinomios sufren de un problema básico, y es la aparición de
grandes oscilaciones espúreas, especialmente si el grado del polinomio es alto.
Una forma alternativa de obtener funciones interpoladoras, es dividiendo el intervalo en
sucesivos intervalos, y generar polinomios de bajo grado en cada uno de estos intervalos.
Esto se llama aproximación polinomial por piezas.
Para que el resultado quede "bien", estos polinomios deben mantener continuidad en la
función, la derivada primera y la derivada segunda, en cada uno de estos puntos límites.
Dada una función f definida en [a,b], y un grupo de nodos a = x0 < x1 < ... < x n = b , se
llama cubic spline interpolant S, a la función que satisface las siguientes condiciones para
j<(n+1):
(a) S es un polinomio cúbico, que en cada subintervalo [xj,xj+1] se
denomina Sj
(b) S(xj) = f(xj) (para todo j)
(c) Sj+1(xj+1) = Sj(xj+1)
(d) S'j+1(xj+1) = S'j(xj+1)
(e) S''j+1(xj+1) = S''j(xj+1)
(f) S''(x0) = S''(xn) = 0 ("free boundary")
o
S'(x0) = f'(x0) y S'(xn) = f'(xn) ("Clamped boundary")
y aplicamos las condiciones pedidas anteriormente. Por ejemplo, para que se cumpla (b):
Sj(xj) = fj(xj) = aj
donde j=2,3, ... ,n-2. En las filas j=0 y j=n, se escriben las condiciones de contorno en la
diagonal.
Ejercicios:
Utilizar el programa splines.for para interpolar la siguiente figura.
Debido a que las derivadas no son contínuas en algunos puntos, se interpolan 3 funciones
diferentes, cuyos valores estan dados en curva1.dat, curva2.dat y curva3.dat.
Darío Mitnik