Métodos Numéricos: Interpolación Eduardo P. Serrano Versión previa abr 2012 1. Interpolación. Dado un conjunto finito de datos (x k,y k ), k =0, 1,...,n una función interpolante odeinterpolación, es una función continua g(x) tal que: g(x k )=y k, para k =0, 1,...,n Los datos pueden ser experimentales o de muestreo, esto es, los valores particulares f(x k ) de una función en una red de puntos x k. La función interpolante modela o aproxima la función en un intervalo, con cierta finalidad. Ej: Se desea calcular la integral: π/2 sin(x) I = dx 0 x Para ello, tomamos tres datos datos: ( (0, 1), π/4, sin(π/4) ) 1, (π/2, π/4 π/2 ) e interpolamos por la parábola de segundo grado p(x) que pasa por dichos puntos. Entonces aproximamos con una intergral sencilla para calcular: I = π/2 0 p(x) dx Las funciones intepolantes deben ser funciones elementales sencillas, fáciles de calcular y operar ariméticamente. Por ejemplo, polinomios, funciones trigonométicas, funciones lineales a trozos, etc. 2. Interpolación polinomial. Es una de las técnicas más sencillas y usuales de interpolación. Un polinomio, expresado en forma normal o canónica, es de la forma: p(x) =a n x n + a n 1 x n 1 + + a 0 Si a n 0, es de grado n. En particular, si n = 0 el polinomio es constante, no nulo: p(x) =a 0. El polinomio p = 0, se dice idénticamente nulo. Convenimos que no tiene grado. Un polinomio centrado en x 0 es de la forma: p x0 (x) =p(x x 0 )=a n (x x 0 ) n + a n 1 (x x 0 ) n 1 + + a 0 Es la expresión usual para el polinomio de Taylor. Teoremas fundamentales:
Si la función p(x) =a n x n + a n 1 x n 1 + + a 0 =0 se anula en más de n puntos distintos, entonces p =0, polinomio identicamente nulo Dados n+1 datos (x k,y k ), k =0, 1,...,n, tal que x k x j existe un único polinomio de grado r n que interpola los puntos, esto es: p(x k )=y k para k =0, 1,...,n Dados (x k,y k ), k =0, 1,...,n con x k x j, la forma o polinomio de Lagrange se construye como sigue: Para cada punto o nodo x k se define el polinomio elemental: n (x x j ) L k (x) = (x k x j ) j=0;j =k = (x x 0) (x k x 0 ) (x x 1) (x k x 1 )... (x x n) (x k x n ) que es de grado n y verifica: L k (x j )= { 1 si k = j 0 si k j A partir de los mismos, se forma el polinomio: p(x) = que interpola los datos. -Ej: Tomamos los datos: y k L k (x) (x 0,y 0 )=(1, 6); (x 1,y 1 )=(2, 12); (x 2,y 2 )=(4, 30) y se forman los polinomios elementales: k=0 L 0 (x) = L 1 (x) = L 3 (x) = (x 2) (x 4) (1 2) (1 4) = 1 (x 2)(x 4) 3 (x 1) (x 4) (2 1) (2 4) = 1 (x 1)(x 4) 2 (x 1) (x 2) (4 1) (4 2) = 1 (x 1)(x 2) 6 Luego: p(x) = y 0 L 0 (x)+y 1 L 1 (x)+y 2 L 2 (x) = 6L 0 (x)+12l 1 (x)+30l 2 (x) = 2(x 2)(x 4) 6(x 1)(x 4) + 5(x 1)(x 2) La forma de Lagrange demuestra explícitamente la existencia del polinomio interpolante. No es una forma práctica ni eficiente para el cálculo. En particular, si se agregan o modifican los nodos de interpolación x k, hay que construir nuevamente todos los polinomios elementales. Para más detalles y ejemplos, ver Anexos Interpolación polinómica de Lagrangeτ Interpolación Polinomial, tomado de http://es.wikipedia.org
Dados los datos (x k,y k ), k =0, 1,...,n con x k x j, la forma o polinomio de Newton es más eficiente y útil y construye a partir de un esquema de diferencia divididas. Suponemos los datos ordenados, según su índice. Denotamos: y (0) [k] =y k para k =0, 1,...,n Para cada par de índices contiguos k, k +1,k =0, 1,...,n 1 se define la diferencia dividida de primer orden; y (1) [k] = y k+1 y k = y(0) [k +1] y (0) [k] x k+1 x k x k+1 x k Así procedemos para los sucesivos órdenes, se definiendo las diferencias divididas de orden m; y (m) [k]= y(m 1) [k +1] y (m 1) [k] x k+m x k para cada par de índices k, k + m, k =0, 1,...,n m, para m =1,...,n. La última diferencia es única: y (n) [0] = y(n 1) [1] y (n 1) [0] x n x 0 el polinomio de Newton se define: p(x) = y (n) [0](x x n 1 )...(x x 0 )+ y (n 1) [0](x x n 2 )...(x x 0 )+... + y (m) [0](x x m 1 )...(x x 0 )+ + y (0) [0] Puede comprobarse que este polinomio interpola los datos. -Ej: Tomamos nuevamante los datos: Se tienen las diferencias de orden cero: las de primer orden: (x 0,y 0 )=(1, 6); (x 1,y 1 )=(2, 12); (x 2,y 2 )=(4, 30) y (0) [0] = 6 y (0) [1] = 12 y (0) [2] = 30 y (1) [0] = y(0) [1] y (0) [0] = 12 6 =6 x 1 x 0 1 y la de segundo orden: El polinomio es: y (1) [1] = y(0) [2] y (0) [1] 30 12 = =9 x 2 x 1 2 y (2) [0] = y(1) [1] y (1) [0] = 9 6 =1 x 2 x 0 3 p(x) = y (2) [0](x x 2 )(x x 1 )+ y (1) [0](x x 1 )+ y (0) [0] = (x 2)(x 1) + 6(x 1)+6
El esquema de diferencias divididas, definido anteriormente puede organizarse para el cálculo: x 0 y (0) [0] y (1) [0] y (2) [0]... y (n 1) [0] y (n) [0] x 1 y (0) [1] y (1) [1] y (2) [1]... y (n 1) [1]... x n 1 y (n 1) [0] y ((n 1)) [1] xn y (n) [0] -Ej: en el ejemplo anterior es: 1 6 6 1 2 12 9 4 30 Las sub-esquemas, permiten calcular polinomios que interpolan la parte de los datos. -Ej: El sub-esquema 1 6 6 2 12 define el polinomio: p 1,2 (x) =6(x 1) + 6 que interpola los dos primeros datos. Por otra parte, el otro sub-esquema 2 12 9 4 30 define el polinomio: que interpola los dos últimos datos. p 2,3 (x) =9(x 2) + 12 Cuando los datos provienen de una función n veces diferenciable: y k = f(x k ) denotamos f (m) [k] a las diferencias y puede probarse la siguiente relación entre las mismas y las derivadas de f: f (1) [k] = f (α), x k α x k+1. = f (m) [k] = f (m) (α), x k α x k+m. = f (n) [0] = f (n) (α), x 0 α x n lo cual permite la estimación de las mismas o la diferenciación numérica, por medio de las diferencias. La ventaja del esquema de diferencias es su flexibilidad flexible, y eficiencia para el cálculo. La interpolación polinomial presenta grandes desventajas cuando se aplica a números relativamente grande de datos. En particular, p(x) puede oscilar excesivamente entre los puntos o nodos de interpolación. Esto hace poco eficiente las estimaciones de valores intermedios o de las derivadas. Para más detalles y ejemplos, ver Anexos Polinomio de Newtonτ Interpolación Polinomial, tomado de http://es.wikipedia.org
3. Interpolación trigonométrica Suponiendo que los datos (x k,y k ), k =0, 1,...,2n con x k x j, están definidos en al intervalo 0 x 0 < x n < 2π, pueden interpolarse mediante un polinomio trigonométrico o de Fourier,2π periódico. g(x) =a 0 + a m cos(mx)+ b m sin(mx) resolviendo el sistema de 2n + 1 de ecuaciones, necesario para calcular los coeficientes: y k = a 0 + a m cos(mx k )+ b m sin(mx k ), 0 k 2n suponiendo que es compatible. En particular, la interpolación es admisible, si se toman los puntos equi-espaciados: x k = kπ n, 0 k 2n y la condición de periodicidad: y 2n = y 0 Para más detalles y ejemplos, ver Anexo Interpolación Trigonométrica, tomado de http://es.wikipedia.org 4. Interpolación spline La desventajas de la interpolación polinomial reside en el hecho que los polinomios de grado elevado pueden presentar grandes oscilaciones. Una alternativa es la interpolación con polinomios a trozos, es decir definidos en cada intervalo x k,x k+1, de grado n y manteniendo al menos la continuidad de la interpolación. Este tipo de interpolación se denomina interpolación spline. Los puntos x k se denominan nodos. Si los polinomios locales son de grado n, es una spline de orden n. Si la spline es de orden n y en los nodos se preserva la continuidad de las derivadas hasta el orden r el número d = n r se denomina deficiencia. En particular, la interpolación lineal tiene orden n = 1 y deficiencia d = 1. Consiste en trazar simplemente un segmento de recta cada par de nodos. Estos polinomios se calculan, en cada intervalo x k,x k+1, usando el par de diferencias divididas y (0) [k] y y (1) [k] -Ej: en el ejemplo anterior en [1, 2] el polinomio es p 1,2 (x) =6(x 1) + 6 y en [2, 4] es: p 2,3 (x) =9(x 2) + 12 La interpolación mediante spline de orden n = 3 y deficencia d = 2 es llamada de spline de Hermite y preserva la continuidad y la primera derivada.
La interpolación mediante spline de orden n = 3 y deficencia d = 1 es llamada de spline de cúbica y preserva la continuidad, la primera y la segunda derivada. En general, este tipo de interpolación requiere esquemas de cálculo más complejos, usando medios computacionales. Para mayor extensión en estos temas ver Anexo Interpolación Polinomial, tomado de http://es.wikipedia.org y ver función Spline en Matlab.