Professional Documents
Culture Documents
INTERPOLACIN Y APROXIMACION
POLINOMIAL
En esta sesin
interpolacin:
x
y
xo
yo
x1
y1
. xn
. yn
funcin de interpolacin de los datos, cuando es usada para aproximar valores dentro del
intervalo [0 , ] y se le llama funcin de extrapolacin de los datos, cuando est definida
y es usada para aproximar valores fuera del intervalo.
Y
f(x)
(x1,y1)
(x2,y2)
(x0,y0)
X
Evidentemente pueden existir varios tipos de funciones que interpolen los mismos datos; por
ejemplo, funciones trigonomtricas, funciones exponenciales, funciones polinomiales,
combinaciones de stas, etc.
El tipo de interpolacin que uno elige, depende generalmente de la naturaleza de los datos que se
estn manejando, as como de los valores intermedios que se estn esperando.
Un tipo muy importante es la interpolacin por funciones polinomiales. Puesto que
evidentemente pueden existir una infinidad de funciones polinomiales de interpolacin para una
misma tabla de datos, se hace una peticin extra para que el polinomio de interpolacin, sea
nico.
Definicin. Un polinomio de interpolacin es una funcin polinomial que adems de interpolar
los datos, es el de menor grado posible.
Caso n=0
Tenemos los datos:
x
y
xo
yo
xo
x1
yo
y1
En este caso, el polinomio de interpolacin es la funcin lineal que une a los dos puntos dados.
Por lo tanto, tenemos que
( ) = +
1
( )
1
es el polinomio de interpolacin.
La siguiente grfica representa este caso:
(x1, y1)
y1
y0
(x0, y0)
x0
x1
Observacin.
Vemos que en el polinomio de interpolacin del caso = 1 se encuentra como primer trmino,
x
y
xo
yo
x1
y1
x2
y2
1
( ) +
1
y 2 , quedndonos el resultado:
(0 ) =
Como se debe cumplir que (0 ) =
, entonces:
* Si asignamos = 1 , el valor de 2
= 0
(1 ) = + 1 (1 )
Como se debe cumplir que (1 ) = 1 y ya sabemos que = 0 , entonces
2 = 0 +
1
( ) + 2 (2 )(2 1 )
1 2
1
( )
1 2
= 2 (2 0 )
(2 1 )
2 0
1
( )
1 2
= 2 (2 0 )
(2 1 )
2 1 + 1 0
2 1 1 0
1 2
+
[
] = 2 (2 0 )
2 1
2 1
1 2 1
2 1 1 0 2
+
[
1] = 2 (2 0 )
2 1
2 1 1 0
Evaluando en el corchete
2 1 1 0
= 2 (2 0 )
2 1
1 0
Y finalmente despejando a 2
vamos a obtener :
2 1 1 0
2 1
1 0
2 =
(2 0 )
Por lo tanto, el polinomio de interpolacin para este caso es:
2 1 1 0
1
2 1 1 0
( ) +
() = +
( )( 1 )
1
(2 0 )
Observacin.
El polinomio de interpolacin contiene al del caso anterior, ms un trmino extra que es de un
grado mayor, pero adems vemos que cada uno de los coeficientes del polinomio de
interpolacin, se forman a base de cocientes de diferencias de cocientes de diferencias, etc.
Esto da lugar a la definicin de diferencias divididas finitas de Newton.
[ , ] =
[ , , ] =
() ( )
[, ] [ , ]
.
.
.
[ , 1 , , 1 , 0 ] =
[ , 1 , , 1 ] [1 , , 1 , 0 ]
[ 3 , 2 , 1 , 0 ] =
[3 , 2 , 1 ] [2 , 1 , 0 ]
3 0
donde a su vez:
[ 3 , 2 , 1 ] =
[ 3 , 2 ] [ 2 , 1 ]
3 1
y
[ 2 , 1 , 0 ] =
[ 2 , 1 ] [ 1 , 0 ]
[3 , 2 ] =
2 0
( 3 ) ( 2 )
3 2
y donde a su vez:
.etc.
Se definir el primer tipo de polinomio de interpolacin.
x0 x1 x2 xn
Y y0 y1 y2 ..
yn
( ) = + 1 ( ) + 2 ( )( 1 )
+ . . + ( )( 1 )( 2 ) ( 1 )
donde :
= ( )
1 = [1 , 0 ]
2 = [2 , 1 , 0 ]
.
.
= [ , , 0 ]
x0
f(x0)
[1 , 0 ]
[2 , 1 , 0 ]
[3 , 2 , 1 , 0 ]
x1
f(x1)
)
[2 , 1 ]
[3 , 2 , 1 ]
[4 , 3 , 2 , 1 ]
x2
f(x2)
[ 3 , 2 ]
[ 4 , 3 , 2 ]
x3
f(x3)
[ 4 , 3 ]
x4
[4 , 3 , 2 , 1 , 0 ]
f(x4)
Ejemplo 1. Calcular la tabla de diferencias divididas finitas con los siguientes datos:
x -2 -1 2 3
y 4 6 9 3
y utilizar la informacin de dicha tabla, para construir el polinomio de interpolacin de Newton.
Solucin.
9
3
-2
-1.5
-1
-0.5
0.5
1.5
2.5
-2
64
=2
1 (2)
12
= 0.25
2 (2)
-1
96
=1
2 (1)
6 1
= 1.75
3 (1)
39
= 6
32
1.75 (0.25)
= 0.3
3 (2)
11
10
9
8
7
6
5
4
3
-2
-1.5
-1
-0.5
0.5
1.5
2.5
Ejemplo 2. Calcular la tabla de diferencias divididas finitas con los siguientes datos:
x -3 -2 0 4
y 5 8 4 2
y usar la informacin en la tabla, para construir el polinomio de interpolacin de Newton.
Solucin. Procedemos como sigue:
-3
85
=
2 (3)
2 3
= .
0 (3)
-2
48
=
0 (2)
0.5 (2)
= .
4 (2)
24
= .
40
. (. )
= .
()
imponer la restriccin del grado mnimo, implica la unicidad del polinomio de interpolacin.
8
10
0
7
-10
-20
-30
-40
-50
-60
-70
3
-80
2
-3
-2
TEOREMA .
-1
-90
-3
Si , 1 , 2 , . ,
-2
-1
DEMOSTRACIN.
No se prueba formalmente la existencia de un polinomio de interpolacin, aunque informalmente
se acepta que dada cualquier tabla de datos, el polinomio de Newton siempre existe.
Prueba de la unicidad del polinomio de interpolacin.
Supongamos que () es otro polinomio de interpolacin de a lo ms grado ,
Sea
() = () ()
( ) = () () = = 0
() = ()
Sin embargo, aunque el polinomio de interpolacin es nico, pueden existir diversas formas de
encontrarlo. Una, es mediante el polinomio de Newton, otra mediante el polinomio de
Lagrange.
yn
( ) = ()
=0
y ( ) = 0
para
toda 0
Como se debe satisfacer que (1 ) = 1, esto se cumple si 1 (1 ) = 1 y (1 ) = 0
para
toda 1 .
Y as sucesivamente, veremos finalmente que la condicin ( ) = se cumple si ( ) = 1
y ( ) = 0 para toda .
Esto nos sugiere como plantear los polinomios de Lagrange. Para ser ms claros, analicemos
detenidamente el polinomio 0 () . De acuerdo al anlisis anterior vemos que deben cumplirse
las siguientes condiciones para 0 () :
0 ( 0 ) = 1 y 0 ( ) = 0
para toda 0
() = ( )( )( ) ( )
() = ( )
=
Con esto se cumple la segunda condicin sobre 0 ( ) . La constante c se determinar para hacer
que se cumpla la primera condicin:
0 ( ) = 1 1 = (0 1 )(0 2 )(0 3 ) (0 )
=
1
(0 1 )(0 2 )(0 3 ) (0 )
() =
( )( )( ) ( )
( )( )( ) ( )
1 (1 ) = 1 y 1 ( ) = 0
para toda 1
() =
( )( )( ) ( )
( )( )( ) ( )
() =
para toda
( )( )( ) ( )( + ) ( )
( )( )( ) ( )( + ) ( )
De manera general
=( )
() =
=( )
= 1, ,
() = 0 0 () + 1 1 () + + ()
Ejemplo 1
x 1 3 5 7
y -2 1 2 -3
Solucin. Tenemos que:
( ) = 0 0 ( ) + 1 1( ) + 2 2 ( ) + 3 3 ( )
( ) = 20 ( ) + 1 ( ) + 22 ( ) 33 ( )
donde:
0 ( ) =
( 3)( 5)( 7)
( 3)( 5)( 7)
=
(2)(4)(6)
48
1 ( ) =
( 1)( 5)( 7)
( 1)( 5)( 7)
=
(2)(2)(4)
16
2 ( ) =
( 1)( 3)( 7)
( 1)( 3)( 7)
=
(4)(2)(2)
16
3 ( ) =
( 1)( 3)( 5)
( 1)( 3)( 5)
=
(6)(4)(2)
48
-1
-2
-3
-4
0
Ejemplo 2.
Calcular el polinomio de Lagrange usando los siguientes datos:
x -2 0 2 4
y 1 -1 3 -2
Solucin. Tenemos que:
() = 0 0 () + 1 1 () + 2 2 () + 3 3 ()
() = 0 () 1 () + 32 () 23 ()
donde:
0 ( ) =
( 0)( 2)( 4)
( 2)( 4)
=
(2)(4)(6)
48
1 ( ) =
( + 2)( 2)( 4)
( + 2)( 2)( 4)
=
(2)(2)(4)
16
2 ( ) =
( + 2)( 0)( 4)
( + 2)( 4)
=
(4)(2)(2)
16
3 ( ) =
( + 2)( 0)( 2)
( + 2)( 2)
=
(6)(4)(2)
48
() = [
( + 2)( 2)( 4)
( 2)( 4)
( + 2)( 4)
( + 2)( 2)
][
] + 3[
][
]
48
16
16
24
-1
-2
-3
-3
-2
-1
Este algoritmo se acondiciona para calcular una sola prediccin de n-simo orden, donde + 1
es el nmero de datos
FUNCTION Lagrng(x,y,n,x)
sum=0
DO i=0,n
product=y1
DO j=0,n
IF ij THEN
product = product*( x-xj )/( xi-xj )
END IF
END DO
sum = sum + product
END DO
Lagrng = sum
END Lagrng
PROGRAMA EN MATLAB
PROPUESTA 1
function fi = Lagran_(x,y,xi)
fi=zeros(size(xi));
np1=length(fi);
for i=1:np1
z=ones(size(xi));
for j=1:np1
if i~=j, z=z.*(xi-x(j))/(x(i)-x(j));
end
end
fi=fi+z.*x(i);
end
return
PROPUESTA 2
function y=lagrangep(x0,y0,x);
x0=x0(:).'; y0=y0(:).'; x=x(:).'; % todos vectores filas
n=length(x0);
if (length(y0)~=n)
disp('ERROR. Long de x0 debe ser igual a Long de y0')
return
end
y=zeros(size(x)); % y es un vector nulo
de igual dimension que x
for j=1:n
p=ones(size(x));
for i=[1:j-1 j+1:n]
p=p.*(x-x0(i))./(x0(j)-x0(i));
end
y=y+p*y0(j);
end
return
1
( ) ( ) =
(+1) ( ) ( )
( + 1)!
=0
Ejemplo
Si se aproxima la funcin ( ) = mediante un polinomio de grado nueve que interpola a
en diez puntos del intervalo [0,1] qu tan grande es el error en este intervalo?
Solucin
Por la frmula anterior, tenemos
(+1) ( ) 1 y 9i=0 (x xi ) 1 , de esta manera, para toda x en [0,1], se tiene
| ( )
1
10!
Converja a 0 conforme .
TEOREMA (Faber, 1914) Para cualquier sistema de nodos dados
0 0 0 . 0 =
Existe una funcin continua sobre [, ], de manera que los polinomios de interpolacin para
utilizan estos nodos que convergen uniformemente a f.
Como resultado de este teorema, se tiene el siguiente resultado:
TEOREMA Si es una funcin continua sobre [, ], entonces existe un sistema de nodos
como el de la inecuacin del teorema anterior, tal que los polinomios de interpolacin para
en dichos nodos satisfacen la expresin = = 0.
INTERPOLACIN DE SPLINES
Terminamos este captulo, estudiando un tipo de interpolacin que ha demostrado poseer una
gran finura, y que inclusive es usado para el diseo por computadora, por ejemplo, de tipos de
letra.
Esta interpolacin se llama interpolacin segmentaria o interpolacin 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 interpolacin.
Cabe mencionar que entre todas, las splines cbicas han resultado ser las ms 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.
Definicin. (Splines de grado k)
ii)
iii )
xi 1, xi .
x0 , xn .
yn
Una funcin spline de grado 1 que interpole los datos es simplemente unir cada uno de los
puntos mediante segmentos de recta, como sigue:
Claramente esta funcin cumple con las condiciones de la spline de grado 1. As, tenemos que
para ested caso:
s1 x si
s x s
s ( x) 2
sn x si
x x0 , x1
x x1 , x2
x xn 1 , xn
donde:
i)
s j x
ii)
s x
iii)
sx j y j
, para j 0,1,, n .
si
y0 f x1 , x0 x x0
y f x , x x x
si
1
2 1
1
s x
yn 1 f xn , xn 1 x xn 1 si
x x0 , x1
x x1 , x2
x xn 1 , xn
3,4.5
4.5,7
7,9
En cada uno de estos intervalos, debemos definir una funcin polinomial de grado 2, como
sigue:
a1 x 2 b1 x c1
s x a2 x 2 b2 x c2
a x2 b x c
3
3
3
si
si
si
x 3,4.5
x 4.5,7
x 7,9
primero, hacemos que la spline pase por los puntos de la tabla de datos. Es decir, se debe cumplir
que:
s(3) 2.5,
s(4.5) 1,
s(7) 2.5,
s(9) 0.5
2a1 x b1
s x 2a2 x b2
2a x b
3
3
si x 3,4.5
si x 4.5,7
si x 7,9
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 x 4.5
y x 7 . Por lo tanto para que s x sea contnua, se debe cumplir que:
9a1 b1 9a2 b2
Tambin debe cumplirse que:
2a2 7 b2 2a3 7 b3
o lo que es lo mismo,
14a2 b2 14a3 b3
As, tenemos un total de 8 ecuaciones vs. 9 incognitas; esto nos da un grado de libertad para
elegir alguna de las incgnitas. Elegimos por simple conveniencia a1 0 .
De esta forma, tenemos un total de 8 ecuaciones vs. 8 incgnitas. Estas son las siguientes:
3b1 c1 2.5
4.5b1 c1 1
20.25a2 4.5b2 c2 1
49a2 7b2 c2 2.5
49a3 7b3 c3 2.5
81a3 9b3 c3 0.5
b1 9a2 b2
14a2 b2 14a3 b3
Este sistema de ecuaciones tiene la siguiente forma matricial:
3
4.5
0
0
0
1
1
0
0 0 0
0
1
0
0 0 0
0
0 20.25 4.5 1 0
0
0
49
7 1 0
0
0
0
0 0 49
7
0
0
0 0 81
9
0 9
1 0 0
0
0 14
1 0 14 1
0 b1 2.5
0 c1 1
0 a2 1
0 b2 2.5
1 c2 2.5
1 a3 0.5
0 b3 0
0 c3 0
b1
c1
a2
b2
c2
a3
b3
c3
5 .5
0.64
6.76
18.46
1 .6
24.6
91.3
Sustituyendo estos valores (junto con a1 0 ), obtenemos la funcin spline cuadrtica que
interpola la tabla de datos dada:
x 5.5
si x 3,4.5
La grfica que se muestra a continuacin, contiene tanto los puntos iniciales de la tabla de
datos, as como la spline cuadrtica. Esta grfica se gener usando Mathematica.
5
4
3
2
1
3
-1
4.5
El siguiente caso, que es el ms importante en las aplicaciones, sigue exactamente los mismos
pasos del ejemplo que acabamos de resolver, solamente que en vez de trabajar con polinomios
cuadrticos, lo hace con polinomios cbicos.
yn
Una spline cbica que interpola estos datos, es una funcin s(x) definida como sigue :
s0 x si
s x si
s x 1
sn 1 x si
x x0 , x1
x x1 , x2
x xn 1 , xn
x0 , xn .
Ejemplo 1.
Interpolar los siguientes datos mediante una spline cbica :
Solucin.
Definimos un polinomio cbico en cada uno de los intervalos que se forman:
a x3 b x 2 c x d1
s x 1 3 1 2 1
a2 x b2 x c2 x d 2
si
si
x 2,3
x 3,5
A continuacin, hacemos que se cumpla la condicin de que la spline debe pasar por los
puntos dados en la tabla. As, tenemos que:
3a1 x 2 2b1 x c1
s x
2
3a 2 x 2b2 x c2
si
si
x 2,3
x 3,5
Al igual que en el caso de las splines cuadrticas, 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 x 3 . Para evitar esta discontinuidad,
evaluamos x 3 en los dos polinomios e igualamos:
3a1 3 2b1 3 c1 3a2 3 2b2 3 c2
2
o lo que es lo mismo:
6a x 2b1
s x 1
6a 2 x 2b2
si
si
x 2,3
x 3,5
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:
s x 0 0
s x n 0
s2 0 6a1 2 2b1 0
12a1 2b1 0
s5 0 6a2 5 2b2 0
30a2 2b2 0
0
27
18
12
4
9
0
0
6
2
2
0
2
3
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
27
125
27
18
0
30
0
0
9
25
6
2
0
2
0
0
3
5
1
0
0
0
0 a1 1
0 b1 2
1 c1 2
1 d1 7
0 a2 0
0 b2 0
0 c2 0
0 d 2 0
a1
b1
c1
d1
a2
b2
c2
d2
1.25
7.5
10.75
0.5
0.625
9.375
39.875
50.125
Sustituyendo estos valores en nuestra funcin inicial, vemos que la spline cbica para la tabla de
datos dada, queda definida como sigue:
x 2,3
x 3,5
Obsrvese la finura con la que se unen los polinomios cbicos que conforman a la spline.
Prcticamente ni se nota que se trata de dos polinomios diferentes!. Esto es debido a las
condiciones que se impusieron sobre las derivadas de la funcin. Esta finura casi artstica, es la
que permite aplicar las splines cbicas, para cuestiones como el diseo de letras por
computadoras, o bien a problemas de aplicacin donde la interpolacin que se necesita es de un
caracter bastante delicado, como podra tratarse de datos mdicos sobre algn tipo de
enfermedad.
Ejemplo 2.
Interpolar los siguientes datos utilizando splines cbicas:
Solucin.
Nuevamente, definimos un polinomio cbico en cada uno de los intervalos:
a1 x 3 b1 x 2 c1 x d1
s ( x) a2 x 3 b2 x 2 c2 x d 2
a x3 b x 2 c d
3
3
3
3
si
si
si
x 1,1
x 1,2
x 2,4
Despues, hacemos que la spline pase por los puntos dados en la tabla. As, tenemos que:
s(1) 1 implica que,
a1 b1 c1 d1 1
s( x) 3a2 x 2 2b2 x c2
3a x 2 2b x c
3
3
3
si1
si
si
x 1,1
x 1,2
x 2,4
Vemos entonces, que las posibles discontinuidades de s(x) son x 1 y x 2 . Por lo tanto,
para hacer que s(x) sea contnua, igualamos las ecuaciones correspondientes en ambos valores
:
6a1 x 2b1
s( x) 6a2 x 2b2
6a x 2b
3
3
si x 1,1
si x 1,2
si x 2,4
Nuevamente, las posibles discontinuidades son x 1 y x 2 . Por lo tanto, para que s(x)
sea contnua , se igualan las ecuaciones en ambos valores :
Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos inicial y
final de la tabla. En este caso,
a1 b1 c1 d1 1
a1 b1 c1 d1 1
a2 b2 c2 d 2 1
8a2 4b2 2c2 d 2 5
6a2 b2 6a3 b3
3a1 b1 0
12a3 b3 0
1
1
0
0
0
3
0
3
3
0
1 1
1 1
0 0
0 0
0 0
0 0
2 1
0 0
1 0
0 0
1 0
0 0
1 0
0
0
1 0
0
0
0 1
1
1
0 8
4
2
0 0
0
0
0 0
0
0
0 3 2 1
0 12 4
1
0 3 1 0
0 6
1
0
0 0
0
0
0 0
0
0
0 0
0
0
0 0
0
0
1
0
0
0
1
0
0
0
0 8
4
2
0 64 16 4
0 0
0
0
0 12 4 1
0 0
0
0
0 6 1 0
0 0
0
0
0 12
1
0
0 a1 1
0 b1 1
0 c1 1
0 d1 5
1 a2 5
1 b2 2
0 c2 0
0 d 2 0
0 a3 0
0 b3 0
0 c3 0
0 d3 0
obtenemos la solucin :
a1
51
140 ,
a2
21
10 ,
b1
153
140 ,
a3
24
35
b2
297
35 ,
b3
288
35
c1
89
140 ,
d1
153
40 ,
c2
473
70 ,
d2
48
35 ,
c3
1867
70
d3
732
35
8
6
4
2
-1
1
-2
EJERCICIOS
NOTA: CUANDO SEA NECESARIO, REDONDEA A CINCO DECIMALES.
i)
ii)
Soluciones:
i) f ( x) 0.5 0.875( x 2) 0.925( x 2)(x 2) 0.4625( x 2)(x 2)(x 1)
ii) f ( x) 3 10( x 0.3) 50( x 0.3)(x 0.6) 185.18519( x 0.3)(x 0.6)(x 0.9)
447.53088( x 0.3)(x 0.6)(x 0.9)(x 1.2)
i)
x
1
2
3
5
y 1.56 3.54 2.57 8.9
ii)
x 1.5 0.5 1 2 4
y
9
2 5 33 0
Soluciones:
( x 2)(x 3)(x 5)
( x 1)(x 3)(x 5)
( x 1)(x 2)(x 5)
i) p( x) 1.56
3.54
2.57
36
45
80
( x 1)(x 2)(x 3)
8.9
144
3.125
7.875
56.25
4.5
i)
x 2 1
3
y 40 5 20
ii)
x 5 2 3
7
y 20 4 6 40
Soluciones:
i)
ii )
x 2,1
x 1,3
5
75 2
5860
526
x 3 526
x 4703
si x 5,2
789 x 789
3
2257 2
15619
8012
s ( x) 1241
si x 2,3
7890 x 2630 x 3945 x 1315
299 x 3 2093 x 2 10511 x 860 si
x 3,7
526
789
263
1578