Вы находитесь на странице: 1из 8

Interpolaci on polinomial

Interpolacion es el proceso de denir una funcion que toma valores especcos en


puntos especcos. Si pensamos en el plano R
2
estamos interesados en una funcion
f, que dados los pares (a
0
, b
0
), (a
1
, b
1
),...,(a
n
, b
n
), f cumpla
f(a
0
) = b
0
f(a
1
) = b
1
.
.
.
f(a
n
) = b
n
Esta f puede ser una funcion de tipo polinomio.
Ejercicio 1 Para los siguientes puntos, traza una curva que cumpla con la deni-
cion dada de interpolacion
0 0.2 0.4 0.6 0.8 1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Se puede demostrar que dados n +1 puntos en el plano, (x
k
, y
k
), k = 0, 1, , n
con x

k
s distintos, existe un unico polinomio en x de grado a lo mas n cuya gr aca
pasa a traves de los puntos dados.
Este polinomio es llamado interpolante polinomial pues reproduce los datos dados
P(x
k
) = y
k
, k = 0, 1, , n.
Este tipo de interpolacion sera nuestro primer tema.
Representacion de Lagrange
C omo construir un polinomio de interpolacion?
Veamos el caso de dos puntos (x
0
, y
0
) y (x
1
, y
1
). El polinomio en este caso sera de
grado 1. Consideremos entonces el polinomio lineal
P(x) =
(x x
1
)
(x
0
x
1
)
y
0
+
(x x
0
)
(x
1
x
0
)
y
1
.
1
cuando x = x
0
,
P(x
0
) =
cuando x = x
1
P(x
1
) =
as, P(x) interpola los dos puntos dados?
Para generalizar el concepto de interpolacion lineal, consideremos la construc-
cion de un polinomio de grado a lo m as n, que pasa por n + 1 puntos
(x
0
, y
0
), (x
1
, y
1
), , (x
n
, y
n
)
para el caso de dos puntos si denimos
L
0
(x) =
(x x
1
)
(x
0
x
1
)
y L
1
(x) =
(x x
0
)
(x
1
x
0
)
cuando x = x
0
L
0
(x
0
) = 1 y L
1
(x
0
) = 0
cuando x = x
1
L
0
(x
1
) = 0 y L
1
(x
1
) = 1
Entonces para el caso general, se necesita construir para cada k = 0, 1, , n un
cociente L
n,k
(x) con la propiedad de que cuando hagamos las evaluaciones
L
n,k
(x
i
) = 0 para i = k
L
n,k
(x
k
) = 1 para i = k
Ejercicio 2 Construir L
n,k
(x) = tal como se describe arriba. Para ello hay que
denir primero un numerador,
(x x
0
)(x x
1
) (x x
k1
)(x x
k+1
) (x x
n
)
Entonces para que se tenga L
n,k
(x
k
) = 1, como debe ser el denominador de
L
n,k
?
L
n,k
(x) =
(x x
0
)(x x
1
) (x x
k1
)(x x
k+1
) (x x
n
)
Una representaci on compacta de la interpolacion polinomial es la forma de Lagrange
P(x) =
donde
L
n,k
= para cada k = 0, 1, . . . , n.
Veriquemos las condiciones de interpolacion con el siguiente
2
Ejercicio 3 Cual es el grado del polinomio si tenemos n + 1 datos?
Cuanto vale P en x = x
k
?
Ejemplo 1 Consideremos el siguiente conjunto de datos:
x = 0:3;
y = [-5 -6 -1 16];
El comando
disp([x;y])
despliega
0 1 2 3
-5 -6 -1 16
Cual es la forma de Lagrange del polinomio interpolante?
P(x) =
(x 1)(x 2)(x 3)
(0 1)(0 2)(0 3)
(5) +
(x 0)(x 2)(x 3)
(1 0)(1 2)(1 3)
(6) +

(x 0)(x 1)(x 3)
(2 0)(2 1)(2 3)
(1) +
(x 0)(x 1)(x 2)
(3 0)(3 1)(3 2)
(16)
o
P(x) =
(x 1)(x 2)(x 3)
(6)
(5) +
x(x 2)(x 3)
(2)
(6) +

x(x 1)(x 3)
(2)
(1) +
x(x 1)(x 2)
(6)
(16)
Es un hecho que la forma de Lagrange es poco atractiva, y es mucho m as apro-
piado algo como
x
3
2x 5
Veamos esta manera. Como para n + 1 datos el polinomio de interpolaci on ha
de ser a lo m as de grado n, una forma de este polinomio es
P(x) = c
0
x
n
+ c
1
x
n1
+ c
2
x
n2
+ + c
n1
x + c
n
3
Si queremos que P pase por los puntos dados, debemos resolver el siguiente
sistema de ecuaciones lineales

x
n
0
x
n1
0
x
0
1
x
n
1
x
n1
1
x
1
1
.
.
.
.
.
.
.
.
. 1
x
n
n
x
n1
n
x
n
1

c
0
c
1
.
.
.
c
n

y
0
y
1
.
.
.
y
n

La matriz de coecientes de este sistema es conocido como la matriz de Vander-


monde. Sus elementos son v
k,j
= x
nj+1
k
Matlab incluye la funcion vander la cual genera la matriz de Vandermonde. Para
nuestro ejemplo
V = vander(x)
entonces
c = V\y
Calcula la solucion del sistema, es decir, los coecientes de P. La salida debe ser
c =
1.0000
0.0000
-2.0000
-5.0000
entonces el polinomio de interpolacion es P(x) = x
3
2x 5.
Nota importante. La matriz de Vandermonde desafortunadamente es mal condi-
cionada (su n umero de condici on crece cuando n lo hace). Si se usa para problemas
que tienen pocos datos, bien espaciados y bien escalados, es satisfactoria la tecnica.
En relaci on a MATLAB, usaremos la estructura
v = interp(x,y,u)
Siendo los dos primeros vectores de entrada x y y de la misma dimension que denen
los puntos a interpolar. El tercer argumento de entrada u es un vector de puntos
donde la funcion es evaluada. La salida, v, es de la misma dimension de u y tiene
por elementos v(k)=interp(x,y,u(k)).
Para interpolar usamos el mle polyinterp.m, el cual interpola los datos (x, y)
mediante la forma de Lagrange
function v = polyinterp(x,y,u)
n = length(x);
v = zeros(size(u));
4
for k = 1:n
w = ones(size(u));
for j = [1:k-1 k+1:n]
w = (u-x(j))./(x(k)-x(j)).*w;
end
v = v + w*y(k);
end
Para ejemplicar polyinterp.m, creamos un vector de puntos densamente espa-
ciados.
u = -0.25:0.01:3.25;
Este vector, va de -0.25 a 3.25 de .01 en .01
Entonces
v = polyinterp(x,y,u);
plot(x,y,o,u,v,-)
debiendose generar la gr aca
Versi on simb olica de polyinterp
La funcion polyinterp puede manejar la variables simbolicamente.
Hacemos la asignaci on
symx = sym(x)
Entonces para poder evaluar y mostrar la forma simbolica del polinomio interpolante
utilizamos
P = polyinterp(x,y,symx)
pretty(P);
La forma obtenida
5
-5 (-1/3 x + 1)(-1/2 x + 1)(-x + 1)
- 6 (-1/2 x + 3/2)(-x + 2)x
-1/2 (-x + 3)(x - 1)x
+ 16/3 (x - 2)(1/2 x - 1/2)x
es una expresion equivalente a la forma de Lagrange.
Es posible simplicar esta forma de salida simplemente con
P = simplify(P)
para que la salida sea
P =
x^3-2*x-5
Ejemplo 2 Podemos usar polyinterp para otro conjunto de datos. Por ejemplo
x = 1:6;
y = [16 18 21 17 15 12];
disp([x; y])
u = 0.75:0.05:6.25;
v = polyinterp(x,y,u);
plot(x,y,o,u,v,-);
nos muestra los datos
1 2 3 4 5 6
16 18 21 17 15 12
y la imagen
0 1 2 3 4 5 6 7
6
8
10
12
14
16
18
20
22
Una limitacion. La interpolacion polinomial de grado m aximo casi nunca se utiliza
para ajuste de curvas. Las variaciones para el ejemplo anterior en el primero y
ultimo intervalo son la clave de tal limitacion. Es decir, si tuvieramos muchos datos
y queremos un polinomio de grado 15 es posible que las variaciones sean mucho
mayores y los datos pese a que s interpolan, en la pr actica no ajustan al problema
real.
6
Caso general
En el problema anterior se us o la forma de Lagrange para un conjunto discreto
de puntos. Ahora veremos como utilizar esta forma si queremos interpolar puntos
pertenecientes a una funcion f cualquiera.
3 2 1 0 1 2 3 4 5
40
20
0
20
40
60
80
100
Aproximacin Funcional
x


f(x)
Datos
P(x)
El siguiente teorema nos garantiza la existencia y unicidad de la aproximacion
funcional P(x).
Teorema 1 Si x
0
, x
1
, . . . , x
n
son (n + 1) puntos, y f es una funcion que pasa por
esos puntos, entonces existe un unico polinomio P de grado a lo mas n, con la
propiedad de que
f(x
k
) = P(x
k
) para cada k = 0, 1, . . . , n
Este polinomio esta dado por
P(x) = f(x
0
)L
n,0
(x) + + f(x
n
)L
n,n
(x) =
n

k=0
f(x
k
)L
n,k
(x),
donde
L
n,k
(x) =
(x x
0
)(x x
1
) (x x
k1
)(x x
k+1
) (x x
n
)
(x
k
x
0
)(x
k
x
1
) (x
k
x
k1
)(x
k
x
k+1
) (x
k
x
n
)
=
n

i=0
i=k
x x
i
x
k
x
i
para cada k = 0, 1, . . . , n.
Termino Resto
Como estamos aproximando una funcion conocida f, existir a un error en tal
aproximacion. El siguiente teorema nos da el termino resto.
7
Teorema 2 Si x
0
, x
1
, , x
n
son puntos distintos en el intervalo [a, b], y f
C
n+1
[a, b], entonces para cada x en [a, b] existe un n umero (x) en (a, b) tal que
f(x) = P(x) +
f
(n+1)
((x))
(n + 1)!
(x x
0
)(x x
1
) (x x
n
),
donde P(x) es el polinomio de interpolacion expresado en la forma de Lagrange.
Cotas para el error, nodos equispaciados
Teorema 3 Supongamos que f(x) esta denida en un intervalo [a, b], que contiene
los nodos equiespaciados x
k
= x
0
+hk. Supongamos ademas que f(x) y sus derivadas
hasta orden 4 son continuas en el subintervalo [x
0
, x
n
]; es decir

f
(n+1)
(x)

M
n+1
, para x
0
x x
n
para n = 1, 2, 3. Entonces los terminos del error correspondientes tienen las siguien-
tes cotas
1. |E
1
(x)|
h
2
M
2
8
para x [x
0
, x
1
]
2. |E
2
(x)|
h
3
M
3
9

3
para x [x
0
, x
2
]
3. |E
3
(x)|
h
4
M
4
24
para x [x
0
, x
3
]
Ejercicio 4 Sea y = cos(x) denida en [0, 1.2]. Determinar las cotas de error para
los polinomios de Lagrange de grado 1,2 y 3, la tabla de abajo especica en que valores
se toma la interpolacion. Trazar las gracas para cada caso.
P
1
x
0
= 0 P
2
x
0
= 0 P
3
x
0
= 0
x
1
= 1.2 x
1
= 0.6 x
1
= 0.4
x
2
= 1.2 x
2
= 0.8
x
3
= 1.2
8

Вам также может понравиться