250 likes | 547 Views
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 x 0 , x 1 , …, x n. Dos casos típicos: 1) Los datos x 0 , x 1 , … , x n , se han obtenido experimentalmente.
E N D
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ónp(x) . Métodos de hallar el polinomio de interpolaciónp(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”): Son n+1 coeficientes: con k=0, 1, 2, …, n . i = 0, 1, 2, …, n k = 0, 1, 2, …, n
Propiedad de los coeficientesLk(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.
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:
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: Siendo las llamadas diferencias divididas de f para los x0, x1, …, xn . En el caso de 4 puntos
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. 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:
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): Condiciones de mínimo:
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: O sea, Soluc.: a = 5, b= -18.5, c = 18 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)