Está en la página 1de 60

Mg.

Elizabeth Ramos Saira


INTRODUCCION
El problema de la interpolación consiste en estimar
el valor de una función en un punto a partir de valores
conocidos en puntos cercanos. Para obtener esta
estimación se aproxima la función con polinomios ya
que son fáciles de evaluar y por el hecho fundamental de
que dados n+1 puntos de abscisa distinta, (x0, y0), (x1,
y1),..., (xn, yn), existe exactamente un polinomio Pn(x) de
grado no superior a n, que pasa por dichos puntos, es
decir
Pn(xi) = yi para i = 0, …, n .
Así, el problema de interpolación consiste en la
obtención de un polinomio, llamado polinomio de
interpolación, de grado menor o igual que n que pasa
por n+1 puntos (xi,yi), i=0,1,...,n, también llamados
nodos de interpolación. Plantearemos tres
formulaciones diferentes para este problema que nos
llevan al mismo polinomio interpolador:
1) Planteando directamente las condiciones
anteriores se obtiene un sistema de ecuaciones lineales
con solución única, pero generalmente mal
condicionado o de difícil solución si el número de
puntos es elevado
2) Los polinomios de Lagrange permiten obtener
una expresión explícita del polinomio de interpolación
cuyo interés es más bien teórico, pues es difícil de
evaluar en puntos concretos.
3) Numéricamente es mucho más útil la forma de
Newton del polinomio de interpolación. Aunque no tiene
expresión explícita, su obtención es más estable que
por los métodos anteriores, su evaluación no presenta
los inconvenientes de los polinomios de Lagrange, y
sobre todo, se puede actualizar fácilmente si se añaden
nuevos nodos de interpolación.
Teorema (Teorema de la aproximación de Weierstrass)
Si f está definida y es continua en [a, b], dado ∈> 0 ,
existe un polinomio P definido en [a, b], con la
propiedad de que
/f (x) − P(x)/ <∈, para toda x ∈[a,b].
Interpolación Polinómica

Un problema de interpolación


Interpolación lineal y cuadrática
Forma normal del polinomio de interpolación
( Método de serie de potencias).
Forma de Lagrange.
Forma de Newton.
Tabla de diferencias divididas
Evaluación y error del polinomio de interpolación
Conclusiones y alternativas
Método de Serie de Potencias
Ejemplo
Midiendo la temperatura ambiente a distintas horas del día
hemos obtenido la siguiente tabla

Hora 6 8 10 12 14 16 18 20
. Grados 7 9 12 18 21 19 15 10

Sea T=f(t) la función (desconocida) que da la temperatura


ambiente en cada instante t. Para estimar la temperatura en
un instante t que no aparece en la tabla, aproximaremos la
función f mediante polinomios de interpolación.
Estos polinomios se determinan exigiendo que
coincidan con f en alguno de los valores tabulados. Si
exigimos que pase por dos puntos, obtenemos una
recta, o sea un polinomio de grado 1. Si hacemos que
pase por tres puntos, queda un polinomio de grado 2, y
así sucesivamente podemos ir añadiendo puntos e
incrementando el grado.
 Evoluió de la temperatura diurna

Hora 6 8 10 12 14 16 18 20
Grados 7 9 12 18 21 19 15 10

22
20
18
Grados

16
14
12
10
8
6
4 6 8 10 12 14 16 18 20 22
Hora
Interpolación lineal
El modo más simple de estimar la temperatura a las 13
horas es tomar la media entre las temperaturas de las
12h y las 14h, que es de 19.5º. Para otros instantes en el
mismo intervalo tomamos una media ponderada, o
geométricamente hablando, la ordenada de la recta que
pasa por (12,18) y por (14,21).
La ecuación general de la recta es P1(x) = a0 + a1x.
Exigiendo que pase por los puntos (x0, y0) y (x1, y1)
obtenemos un sistema de ecuaciones lineales
a0 + a1x0 = y0
a0 + a1x1 = y1
En nuestro ejemplo tenemos el sistema

a0 + 12a1 = 18
a0 + 14a1 = 21

cuya solución es a0 = 0 y a1 = 3/2.


Luego reemplazando en nuestro polinomio de grado
uno tenemos
P1(x) = 0 + 3/2 x
Gráfico de la temperatura
% Hora en Matlab
t = [6 8 10 12 14 16 18 20]'
% Temperatura
T = [7 9 12 18 21 19 15 10]'
plot(t,T,'*'), grid
xlabel('Horas'), ylabel('Grados')
axis([-1 22 -1 25])
D=polyfit(t,T,7)
D=

0.0000 -0.0006 0.0327 -0.8676 12.8448 -106.5194 461.0976 -801.0000


xx=linspace(5,21,1000);
yy=polyval(D,xx);
% %dibujo del polinomio calculado sobre el anterior
ya realizado de los puntos (x,y)
hold on
plot(xx,yy)
grid
Recta que pasa por los puntos (x0,y0) y (x1,y1)

P 1 (x) = a 0 + a 1 x 25

a0 + a1x0 = y0 20
a0 + a1x1 = y1
15

Grados
a 0 + 12a 1 = 18
10
a 0 + 14a 1 = 21
5
5 10 15 20
Hora
F=polyfit([12 14],[18 21],1)
xx=linspace(5,21,1000);
yy=polyval(F,xx);
F = 1.5000 0
Interpolación cuadrática

Tomando un polinomio de mayor grado, podemos imponer más


condiciones para tener en cuenta la evolución de la
temperatura alrededor del intervalo [12,14].
El polinomio de grado dos

P2(x) = a0 + a1x + a2x2

que pasa por (x0, y0), (x1, y1) y (x2, y2) se determina
análogamente resolviendo el sistema.
a0 + a1x0 + a2x02 = y0
a0 + a1x1 + a2x12 = y1
a0 + a1x2 + a2x22 = y2

En nuestro ejemplo, tomando los puntos (10,12), (12,18) y


(14,21) queda un sistema cuya expresión matricial es

1 10 100  a 0  12 
    
1 12 144  a 1   18 
1 14 196  a   21
  2   
A=[1 10 100; 1 12 144;1 14 196]

A= 1 10 100
1 12 144
1 14 196

>> det(A) ans = 16

>> b=[12 18 21]‘ b= 12


18
21

>> x=inv(A)*b x= -63


11.25
-0.375
P2(x) = -63 + 11.25 x – 0.375 x2
Polinomio de grado2
25

P2(x) = a0 + a1x + a2x2 20

a0 + a1x0 + a2x02 = y0 15

a0 + a1x1 + a2x12 = y1 Grados

a0 + a1x2 + a2x22 = y2 10

 1 10 100  a 0   12
5 10 15 20
Hora
    
 1 12 144  a 1    18 X=10:2:14
     Y=[12 18 21]'
polyval(p,X)
 1 14 196  a 2   21 A=vander(X)
x=5:0.1:22;
y=polyval(p,x);
cond(A) plot(x,y)
p=A\Y
E=polyfit([10 12 14],[12 18 21],2)
xx=linspace(5,21,1000);
yy=polyval(E,xx);
E = -0.3750 11.2500 -63.0000
Polyfit : Comando de Matlab que realiza la misma tarea de
interpolar una colección de n+1 puntos pares de datos en un
polinomio de grado n

x=[1 2 3 4]; y=[3 5 6 7];


>> n=length(x);
>> c=polyfit(x,y,n-1);
>>c = 0.166666666666669 -1.50000000000001
5.33333333333336 -1.00000000000002
Para nuestro ejemplo

x=[10 12 14]; y=[12 18 21];


>> n=length(x);
>> c=polyfit(x,y,n-1)

c= -0.375 11.25 -63.0000000000002


Forma normal del polinomio de
interpolación

Pn(x) = a0 + a1x + a2x2 + ··· + anxn

1 x 0 x 20  x 0n-1   a 0   y0 
 2

n-1    
1 x1 x1  x1   1  a  y1 
1 x 2 x 22  x 2n-1   a 2    y 2 
     
          
 n-1     
1 xn xn  xn   n 
2
a  yn 

 Dados n+1 puntos de abscisas distintas (x0,y0),..., (xn,yn),


existe un único polinomio de grado no superior a n tal que
P(xi) = yi, i=1,2,...,n
x=[2,3,4,5,6];
y=[2,6,5,5,6];
plot(x,y,'.','markersize',20)
axis([0 8 0 8])
grid
V=vander(x)

V=

16 8 4 2 1
81 27 9 3 1
256 64 16 4 1
625 125 25 5 1
1296 216 36 6 1

V=vander(x) ; m=inv(V) ;det(V); a=inv(V)*y'

a=
-0.2500
4.5000
-29.2500
81.0000
-75.0000
xx=linspace(min(x),max(x));
yy=polyval(a,xx); % polyval
% Entrada:
% aa -> los coeficientes del
polinomio
% de mayor a menor
% xx -> una serie de puntos
% Salida:
% yy -> valor del polinomio
en esos puntos
%
plot(x,y,'.','markersize',20) % dibujamos los puntos
hold on, plot(xx,yy) % dibujamos el polinomio
Forma de Lagrange del
polinomio de interpolación
Polinomios de Lagrange

( x  x 0 ) ( x  x i 1 )( x  x i 1 ) ( x  x n )
Lin ( x) 
( x i  x 0 ) ( x i  x i 1 )( x i  x i 1 ) ( x i  x n )

Existencia del polinomio de interpolación.

Pn(x) = y0 L0n(x) + y1 L1n(x) + y2 L2n(x) + ··· + yn Lnn(x)


Forma de Lagrange del
polinomio de interpolación

La obtención del polinomio de interpolación en forma


normal requiere la resolución de un sistema de ecuaciones
lineales, cuyo coste aritmético es alto y depende del el
número n de nodos. Para reducir el coste podemos tomar
una base del espacio de polinomios más adecuada, en la
que sea más cómodo imponer las condiciones de
interpolación.
La existencia de este polinomio se deriva del resultado
anterior, pero puede obtenerse directamente, sin necesidad
de resolver un sistema
Nuevamente tenemos los datos :

El polinomio de interpolación de Lagrange se plantea


como sigue:

P( x)  y0l0 ( x)  y1l1 ( x)    ynln ( x)


P( x)  y0l0 ( x)  y1l1 ( x)    ynln ( x)

Donde
Recordar que para generar una interpolación de orden n, es necesario
Contar con n+1 datos conocidos, por ejemplo
, Ejemplo 1

Calcular el polinomio de Lagrange usando


los siguientes datos:
Solución. Tenemos que:

f ( x)  y0l0 ( x)  y1l1 ( x)  y2l ( x)  y3l3 ( x)


f ( x)  2l0 ( x)  l1 ( x)  2l2 ( x)  3l3 ( x)
donde ( x  3)( x  5)( x  7) ( x  3)( x  5)( x  7)
l0 ( x)  
(2)( 4)( 6)  48
( x  1)( x  5)( x  7) ( x  1)( x  5)( x  7)
l1 ( x)  
( 2)( 2)( 4) 16
( x  1)( x  3)( x  7) ( x  1)( x  3)( x  7)
l2 ( x )  
(4)( 2)( 2)  16
( x  1)( x  3)( x  5) ( x  1)( x  3)( x  5)
l3 ( x)  
(6)( 4)( 2) 48
Sustituyendo arriba, el polinomio de Lagrange
queda definido como sigue:

 ( x  3)( x  5)( x  7)   ( x  1)( x  5)( x  7)   ( x  1)( x  3)( x  7)   ( x  1)( x  3)( x  5) 


f ( x)         
 24   16   8   16 
Ejemplo
Hallar el polinomio interpolador correspondiente a
los nodos:

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1
Ejemplo

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

( x  x 1 )( x  x 2 ) ( x  2,3)( x  3)
L 0 (x )  
( x 0  x 1 )( x 0  x 2 ) (1  2,3)(1  3)

= 0,3846 x2 – 2,0385 x + 2,6538


Ejemplo

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

( x  x 0 )( x  x 2 ) ( x  1)( x  3)
L 1 (x )  
( x 1  x 0 )( x 1  x 2 ) (2,3  1)(2,3  3)

= -1,0989 x2 + 4,3956 x – 3,2967


Ejemplo

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

( x  x 0 )( x  x 1 ) (x  1)( x  2,3)
L 2 (x )  
( x 2  x 0 )( x 2  x 1 ) (3  1)(3  2,3)

= 0.7143 x2 - 2.3571 x + 1.6429


Ejemplo

L0(x) L1(x) L2(x)


Ejemplo
p(x) = L0(x)y0 + L1(x)y1 + L2(x)y2 =

(0,3846 x2 – 2,0385 x + 2,6538)1,5 +

(-1,0989 x2 + 4,3956 x – 3,2967)3,6 +

(0.7143 x2 - 2.3571 x + 1.6429)4,1

= - 0,4505x2 + 3,1022x – 1,15165


Ejemplo

p(x)
Ejemplo
Dados los nodos:

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

Hallar el valor interpolado correspondiente


ax=2
Ejemplo

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

(2  x 1 )(2  x 2 ) (2  2,3)(2  3)
L 0 (2 )  
( x 0  x 1 )( x 0  x 2 ) (1  2,3)(1  3)
= 0,11538
Ejemplo

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

(2  x 0 )(2  x 2 ) (2  1)(2  3)
L 1 (2 )  
( x 1  x 0 )( x 1  x 2 ) (2,3  1)(2,3  3)
= 1,09890
Ejemplo

x0 = 1 y0 = f(1) = 1,5

x1 = 2,3 y1 = f(2,3) = 3,6

x2 = 3 y2 = f(3) = 4,1

(2  x 0 )(2  x 1 ) (2  1)(2  2,3)


L 2 (2 )  
( x 2  x 0 )( x 2  x 1 ) (3  1)(3  2,3)
= - 0,21429
Ejemplo
p(2) = L0(2)y0 + L1(2)y1 + L2(2)y2

= (0,11538 )1,5 + (1,09890)3,6 +


(- 0,21429)4,1

p(2) = 3.25055
ejercicios

Hallar el polinomio interpolador de lagrange :

a) La siguiente tabla resume los datos de alguna


observacion
Forma de Newton del
polinomio de interpolación

Pn(x) = c0 + c1(xx0) + c2(xx0)(xx1) +    +


   + cn(xx0)(xx1)    (xxn-1)

 Determinación algebraica

Pn(x0) = y0 = c0
Pn(x1) = y1 = c0+ c1(x1x0)
Pn(x2) = y2 = c0+ c1(x2x0) + c2(x2x0)(x2x1)
 Ventajas
 El sistema es triangular
 Permite añadir nuevos puntos sin rehacer todos los cálculos.
Tabla de diferencias divididas

c0 = f[x0] = y0
y1  c 0 f  x1   f  x 0 
c1 = f  x 0 , x1   
x1  x 0 x1  x 0
f  x1 , x 2   f  x 0 , x1 
f  x 0 ,x1 , x 2  
x2  x0
  
f x 1 , x 2 , x k  f x 0 , x 1 , x k 1 
 
f x 0 , x 1 , x k 
xk  x0
Tabla de diferencias divididas

y0  f[x0 ]
y1  f [ x1 ] f [ x 0 , x1 ]
y2  f[x2 ] f [ x1 , x 2 ] f [ x 0 , x1 , x 2 ]
y3  f[x3 ] f[x2 , x3 ] f [ x1 , x 2 , x 3 ] f [ x 0 , x1 , x 2 , x 3 ]
   

12 18
14 21 1.5000
10 12 2.2500 -0.3750
16 19 1.1667 -0.5417 -0.0417
Evaluación del polinomio de interpolación

Pn(x) = c0+ = (((cn(xx n-1)


c1(xx0) + + cn-1)(xx n-2)
c2(xx0)(xx1) + + cn-2)(xx n-3)
+ +
+ cn(xx0)(xx1)  (xxn-1) = + c1)(xx0)
+ c0
Ejemplo 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 :


Ejemplo 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


Ejemplo: Construir la tabla de dif.divididas. Para f(x)=cos(x).
xk f [ xk ]
0.0 1.0000000

1.0 0.5403023
-0.4596977
2.0 -0.4161468 -0.9564491 -0.2483757

3.0 -0.9899925 -0.5738457 0.1913017 0.1465592

4.0 -0.6536436 0.3363499 0.4550973 0.0879318 -0.0146568

P1(x)=1 -0.4596977(x-0)
P2(x)=1 -0.4596977(x-0) -0.2483757(x)(x-1)
P3(x)= 1 -0.4596977(x-0) -0.2483757(x)(x-1)+0.1465592x(x-1)(x-2)
P4(x)= 1 -0.4596977(x-0) -0.2483757(x)(x-1)+0.1465592x(x-1)(x-2) -
0.0146568x(x-1)(x-2)(x-3)
Error de interpolación

f (n1) ()
f(x)  Pn (x)  (x  x0 )(x  x1 )(x  x n )
(n  1)!

(n 1)
( )

f x0 , x1 , , x n , x n+1  
f
(n  1)!
Conclusiones

 El polinomio de interpolación suele usarse para estimar


valores de una función tabulada, en las abscisas que no
aparecen en la tabla.
 El aumento de grado no siempre mejora la aproximación.
 El polinomio es muy sensible a los errores de los datos.
Alternativas

 Método de Mínimos Cuadrados


 Interpolación polinómica segmentaria. Splines