You are on page 1of 24

METODOS DE

INTERPOLACIÓN
Introducción:
Se trata de obtener un polinomio (polinomio de interpolación) que
cumpla:

f(x )≈ p(x).
en una serie de n puntos x0, x1, …, xn .
Dos casos típicos:
1) Los datos x0, x1, … , xn , se han obtenido experimentalmente.
2) Una función complicada f(x) la aproximamos a un polinomio.

En ambos casos hallamos el polinomio de interpolación p(x) .

Métodos de hallar el polinomio de


interpolación p(x):

* Método de Lagrange
* Método de Newton
G1. Polinomio de interpolación de Lagrange
Sea una función f(x), de tal manera que conozcamos su valor en cada uno de
n+1 puntos: f(x0), f(x1), …, f(xn).

1º. Obtenemos los “multiplicadores o coeficientes de Lagrange”):


( x  x0 )  ( x  x1 )  ...  ( x  xk 1 )  ( x  xk 1 )  ...  ( x  xn )
Lk ( x) 
( xk  x0 )  ( xk  x1 )  ...  ( xk  xk 1 )  ( xk  xk 1 )  ...  ( xk  xn )

Son n+1 coeficientes: con k=0, 1, 2, …, n .

n
( x  xi ) i = 0, 1, 2, …, n
Lk ( x)  
i 0 ( xk  xi )
ik

k = 0, 1, 2, …, n
Propiedad de los coeficientes Lk(x):

El coeficiente Lk(x) se anula en cada punto xi, excepto en el xk que tiene el


valor 1 (valor máximo).

Ejemplo: Supongamos como soporte los seis puntos siguientes,


x0 = 1, x1 = 3, x2 = 4, x3 = 6, x4 = 8, x5 = 9.
( x  1)  ( x  3)  ( x  4)  ( x  8)  ( x  9)
L3 ( x) 
(6  1)  (6  3)  (6  4)  (6  8)  (6  9)
El polinomio de interpolación deLagrange se
obtiene:
n
p( x)   f ( xk ) Lk ( x)
k 0
EJEMPLO: Sea la función f(x)=ex. Supongamos conocido el
valor que toma esta función en los cuatro puntos:
x0=2, x1=2.5, x2=3, x3=4,
es decir:
f(x0) = 7.3890, f(x1) = 12.1825, f(x2) = 20.0855, f(x3) = 54.5980

Hallemos el polinomio de interpolación de Lagrange:

( x  2.5) ( x  3) ( x  4)
L0 ( x)    x 3  9.5 x 2  29.5 x  30
(2  2.5) (2  3) (2  4)
( x  2) ( x  3) ( x  4)
L1 ( x)   2.66667 x3  24 x 2  69.3333x  64
(2.5  2) (2.5  3) (2.5  4)
( x  2) ( x  2.5) ( x  4)
L2 ( x)   2 x 3  17 x 2  46 x  40
(3  2) (3  2.5) (3  4)
( x  2) ( x  2.5) ( x  3)
L3 ( x)   0.3333x3  3.5 x 2  6.16667 x  5
(4  2) (4  2.5) (4  3)
El polinomio de interpolación de Lagrange es:

p(x) = f(x0) L0(x) + f(x1) L1(x) + f(x2) L2(x) + f(x3) L3(x)

p(x) = 3.12601 x3 – 17.2259 x2 + 39.432 x – 27.5792


G2. Polinomio de interpolación de Newton.
La fórmula de interpolación de Newton viene dada por:
n i 1
p( x)   f x0 , x1 ,..., xi
i 0
 x  x 
j 0
j

Siendo f x0 , x1 ,..., xi las llamadas diferencias divididas de f para los


x0, x1, …, xn .

x0 f ( x0 )
f x0 , x1
x1 f ( x1 ) f x0 , x1 , x2
f x1 , x2 f x0 , x1 , x2 , x3
x2 f ( x2 ) f x1 , x2 , x3
f x2 , x3
x3 f ( x3 ) En el caso de 4 puntos
Algunos ejemplos: x0 f ( x0 )
f x0 , x1
x1 f ( x1 ) f x0 , x1 , x2
f x1 , x2 f x0 , x1 , x2 , x3
x2 f ( x2 ) f x1 , x2 , x3
f x2 , x3
x3 f ( x3 )

f x2 , x3  f x1 , x2
* f x1 , x2 , x3 
x3  x1

f x1 , x2 , x3  f x0 , x1 , x2
* f x0 , x1 , x2 , x3 
x3  x0
El polinomio de interpolación de Newton:

p( x)  f ( x0 )  f x0 , x1 ( x  x0 )  f x0 , x1 , x2 ( x  x0 )( x  x1 ) 
 f x0 , x1 , x2 , x3 ( x  x0 )( x  x1 )( x  x2 )
Ejemplo: Vamos a obtener el polinomio de interpolación para la
función f(x) = ex, en los puntos {2, 2.5, 3, 4}, pero en esta ocasión
por el método de Newton.
x0  2.0 7.38906
9.58688
x1  2.5 12.1825 6.21912
15.806 3.1260
x2  3.0 20.0855 12.471133
34.5127
x3  4.0 54.5982

p(x) = 7.38906 + 9.58688 (x – 2) + 6.21912 (x – 2) (x – 2.5) +


+ 3.1260 (x – 2) (x – 2.5) (x – 3)

p(x) = 3.126 x3 – 17.2259 x2 + 39.4318 x – 27.5791


G2. Método de los Mínimos Cuadrados (Cuadratura Gaussiana)
Supongamos que al realizar una serie de mediciones de dos variables (x, y) ,
se ha obtenido una distribución de pares de valores o puntos:
(x1, y1) , (x2, y2) , … , (xi, yi) , … , (xn, yn) .

y = axm + bxm-1+ …+ c

El método de los mínimos cuadrados busca una curva, como se indica en la


gráfica, de tal manera que se minimice la suma de los cuadrados de los
errores, ei , cometidos al sustituir los puntos por la ordenada y(xi).
Matemáticamente equivale a un problema de hallar un mínimo para una función
de m+1 variables:
f(a, b, …, c)

EJEMPLO: Apliquemos el método para el caso de un polinomio de


grado 2 (función polinómica), es decir, mediante una parábola:
y = ax2 + bx+ c

Si observamos la figura anterior, tenemos:

ei = axi2 + bxi+ c – yi → ei2 = (axi2 + bxi+ c – yi )2 .

Por tanto la suma de los cuadrados de los errores es:


n n

 e    ax  bxi  c  yi   f (a, b, c)
2 2 2
i i
i 1 i 1
Se trata, pues, de minimizar esta función de tres variables, f(a, b, c).

Las condiciones de extremo se dan allí donde se anulan las derivadas primeras de
f (x):
n
f a '   2  axi2  bxi  c  yi  . xi2  0
i 1
n
fb '   2  axi2  bxi  c  yi  . xi  0
i 1
n
f c '   2  axi2  bxi  c  yi  .1  0
i 1
n

  ax
i 1
2
i  bxi  c  yi  . xi2  0
n

Condiciones de mínimo:   ax
i 1
2
i  bxi  c  yi  . xi  0
n

  ax
i 1
2
i  bxi  c  yi  .1  0
Ejemplo: Hay que hallar un polinomio de interpolación (de grado 2)
para la tabla de datos: x1 = 1, x2 = 2, x3 = 3 .
y1 = 3, y2 = 4, y3 = 6 .

Solución:
(a.12  b.1  c  3).12  ( a.22  b.2  c  4).22  ( a.32  b.3  c  6).32  0

 (a.1  b.1  c  3).1  (a.2  b.2  c  4).2  (a.3  b.3  c  6).3  0
2 1 2 1 2 1

(a.12  b.1  c  3).10  (a.22  b.2  c  4).20  (a.32  b.3  c  6).30  0


O sea,
98 a  36 b  14 c  73  0

 36 a  14 b  6 c  29  0 Soluc.: a = 5, b= -18.5, c = 18
 14 a  6 b  3 c  13  0

Polinomio de intepolación: p(x) = 5 x2 – 18.5 x + 18


Spline (“Special Line”) cúbica

Si como polinomio interpolatorio tomamos un polinomio de grado 3:


P(x) = ax3 + bx2 + cx + d, recibe el nombre de “Spline”.
Interpolación de datos 1-D con MATLAB.

Sean conocidos una tabla de datos:


x = [1, 1.2, 1.3, 1.5, …]
y = [4.254, 3.097, 5.671, …]

>> yi = interp1(x, y, xi, método);


>> plot(x, y, 'o', xi, yi);

Métodos .
- ‘nearest’
- ‘linear’ (por defecto)
- ‘spline’ Cubic spline interpola.
- ‘cubic’
Ejemplo 1:

>> x = 0:10;
>> y = exp(x);
>> xi = 0:0.2:10;
>> yi = interp1(x, y, xi);
>> plot(x, y, 'o‘ , xi, yi);
Ejemplo 2:
Hay que interpolar mediante ‘spline’ los datos de la tabla siguiente:

x 2 2.1 2.6 3 3.2 3.7 4 4.3


y 5 5.3 5.6 5.4 4.9 4.5 3.8 3.3

>> tab = [2 2.1 2.6 3 3.2 3.7 4 4.3; 5 5.3 5.6 5.4 4.9 4.5 3.8 3.3]
>> x = tab(1, :); y = tab(2, :);
>> xi = 2:0.25:4.5;
>> yi = interp1(x, y, xi, 'spline');
>> plot(x, y, 'o', xi, yi)
Ejemplo 3:
Tenemos dos vectores con los censos (por decadas) en el siglo XX, en
millones de personas:
>> t = 1900:10:1990;
>> p = [75.995 91.972 105.711 123.203 131.669...
150.697 179.323 203.212 226.505 249.633];

Por interpolación podemos estimar la población en cualquier año:

>> t = 1900:10:1990;
>> p = [75.995 91.972 105.711 123.203 131.669...
150.697 179.323 203.212 226.505 249.633];
>> interp1(t, p, 1975)

ans =
214.8585
Podemos representar la población anual:

>> t = 1900:10:1990;
>> p = [75.995 91.972 105.711 123.203 131.669...
150.697 179.323 203.212 226.505 249.633];

>> x = 1900:1:2000;
>> y = interp1(t, p, x, 'spline'); plot(t,p,'o',x,y)

You might also like