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.
3) Es una manera mas eficiente de construir el polinomio de interpolación.
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
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 )
Lk ( x ) i = 0, 1, 2, …, n
i 0 ( xk xi ) k = 0, 1, 2, …, n
ik
n
El polinomio de interpolación de Lagrange p ( x ) f ( xk ) Lk ( x )
se obtiene como: k 0
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)
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 x 3 24 x 2 69.3333 x 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.3333 x 3 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
Interpolación Spline
Una opción mas recomendable en algunos problemas, es construir una función
de interpolación F, con la característica de ser polinomial en cada subintervalo ]
xi-1,Xi[ y cumplir con condiciones adicionales sobre los nodos xi en términos de
la primera y segunda derivada.
Un ejemplo de tal función F serian los
•trazadores o spline: Se ajustan polinomios localmente y se conectan los
puntos de la muestra.
• Conjunto de polinomios es de grado 1 se habla de : Linear spline
• Si son de grado 3 se habla de una Cubic spline.
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)
Regresión Lineal Simple
Se utiliza solo una variable predictora x, en caso de dos o más variables se
utiliza regresión lineal Múltiple.
Si los datos presentan una tendencia lineal se postula lo siguiente:
y = R(x) = mx+b
Si observamos la figura anterior, tenemos:
ei = mxi + b – yi → ei2 = (mxi + b– yi )2 .
Por tanto la suma de los cuadrados de los errores es:
Las condiciones de extremo se dan allí donde se anulan las derivadas parciales
primeras de f (x):
Condiciones de mínimo:
Regresión Cuadrática
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 = R(x) = 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 parciales
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.2 2 b.2 c 4).2 2 ( a.3 2 b.3 c 6).3 2 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.2 2 b.2 c 4).2 0 ( a.3 2 b.3 c 6).3 0 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)