Professional Documents
Culture Documents
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.
* 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).
n
( x xi ) i = 0, 1, 2, …, n
Lk ( x)
i 0 ( xk xi )
ik
k = 0, 1, 2, …, n
Propiedad de los coeficientes Lk(x):
( 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:
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
y = axm + bxm-1+ …+ c
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
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
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:
>> 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];
>> 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)