Interpolación Javier Segura February 12, 2012 Javier Segura Interpolación Interpolación Interpolación polinómica Para cualquier conjunto de n + 1 (n ≥ 0) números distintos x0 , x1 , ..., xn y cualquier conjunto de números arbitrarios y0 , y1 , ..., yn , existe un único polinomio Pn (x) de grado menor o igual que n tal que Pn (xk ) = yk para i = 0, 1, 2, ..., n. Al polinomio Pn (x) mencionado se le llamará polinomio de interpolación, que interpola n + 1 puntos (xi , yi ), i = 0, 1, 2, ..., n. Nuestro problema será encontrar tal polinomio, para lo cual estudiaremos dos métodos: Fórmula de Lagrange y diferencias divididas de Newton. Javier Segura Interpolación Interpolación Forma de Lagrange Forma de Lagrange Dados n + 1 puntos (xi , yi ), i = 0, 1, ..., n (xi 6= xj ⇐⇒ i 6= j), el único polinomio Pn (x) de grado menor o igual n que pasa por estos n + 1 puntos, es decir, tal que Pn (xi ) = yi , i = 0, 1, 2, ..., n. es Pn (x) = y0 L0 (x) + y1 L1 (x) + ... + yn Ln (x), donde n Y Li (x) = (x − xj ) j=0,j6=i n Y (xi − xj ) ≡ (x − x0 )...(x − xi−1 )(x − xi+1 )...(x − xn ) (xi − x0 )...(xi − xi−1 )(xi − xi+1 )...(xi − xn ) j=0,j6=i Javier Segura Interpolación Interpolación Teorema del resto Sea f (x) una función continua en [a, b] y derivable n + 1 veces en (a, b). Si Pn (x) es el polinomio de grado menor o igual que n que interpola f (x) entre los n + 1 nodos distintos x0 ...xn ∈ [a, b] entonces ∀x ∈ [a, b] ∃ζx ∈ (a, b), dependiente de x, tal que n f (x) = Pn (x) + f (n+1) (ζx ) Y (x − xj ) ≡ Pn (x) + Rn (x) (n + 1)! j=0 donde se dice que Rn (x) es el resto y denotamos n Y (x − xj ) = (x − x0 )...(x − xn ). j=0 Javier Segura Interpolación Interpolación Forma de Newton Forma de Newton Si x0 , x1 , ..., xn son puntos distintos y f (x) está definida en [a, b], xi ∈ [a, b] i = 0, 1, ..., n, entonces el polinomio interpolador de f (x) entre estos puntos se puede escribir como Pn (x) = f (x0 ) + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ] + ... +(x − x0 )(x − x1 )...(x − xn−1 )f [x0 , x1 , ..., xn ] = n i−1 X Y = f [x0 ...xi ] (x − xj ) i=0 j=0 Javier Segura Interpolación Interpolación Forma de Newton La interpolación con las diferencias divididas de Newton es, en general, más fácil de computar que la utilización de la fórmula de Lagrange, y puede ser evaluada de forma recursiva. Por ejemplo, en el caso de interpolar una función f (x) en tres puntos distintos x0 , ..., x2 , , se puede plantear la siguiente tabla de diferencias divididas: xi f [] x0 f [x0 ] = f (x0 ) f [, ] f [x0 , x1 ] = x1 f [x1 ] − f [x0 ] x1 − x0 f [x1 ] = f (x1 ) f [x0 , x1 , x2 ] = f [x1 , x2 ] = x2 f [, , ] f [x2 ] − f [x1 ] x2 − x1 f [x1 , x2 ] − f [x0 , x1 ] x2 − x0 f [x2 ] = f (x2 ) Observemos que cada diferencia dividida se forma tomando la diferencia de las diferencias divididas vecinas (a la derecha) y dividiendo por la diferencia de abscisas; los valores de las abscisas se encuentran trazando las diagonales desde la posición que se está evaluando hasta la columna de las diferencias divididas de orden 0. Javier Segura Interpolación Interpolación Forma de Newton Datos igualmente espaciados: forma de Newton P(x0 + sh) ∆2 f (x0 ) = f (x0 ) + s∆f (x0 ) + s(s − 1) + ... 2! n ∆ f (x0 ) . +s(s − 1)...(s − n + 1) n! donde ∆0 fi = fi , ∆fi = fi+1 −fi , ∆n fi = ∆∆n−1 fi = ∆n−1 ∆fi = ∆n−1 fi+1 −∆n−1 fi y utilizamos la notación fi = f (xi ) = f (x0 + ih). Javier Segura Interpolación Interpolación Interpolación de Hermite El problema de interpolación (n ) . . . Pn 0 (x0 ) = f (n0 ) (x0 ) ... (n ) Pn (xk ) = f (xk ), . . . Pn k (xk ) = f (nk ) (xk ) Pn (x0 ) = f (x0 ), mediante un polinomio de grado ≤ n = n0 + .. + nk + k , siendo f (x) n + 1 veces derivable en [a, b], tiene solución única, que se puede construir mediante el esquema de diferencias divididas. Denotando (x̃0 x̃1 ...x̃n ) = ([x0 ]n0 +1 , ..., [xk ]nk +1 ), tenemos: Pn (x) = n X f [x̃0 ...x̃i ] i=0 i−1 Y (x − x̃j ) . j=0 n Además f (x) − Pn (x) = f (n+1) (ζx ) Y (x − x̃j ) para algún ζx ∈ (a, b). (n + 1)! j=0 Javier Segura Interpolación Comportamiento del error Volvamos a la interpolación de Lagrange (todos los nodos distintos). Definamos S(x) ≡ n Y (x − xj ) j=0 y, por comodidad, consideraremos x0 < x1 < ... < xn−1 < xn . Para xi igualmente espaciados, los mayores valores de |S(x)| se encuentran para los mayores o menores valores de x en el intervalo [x0 , xn ] (sin coincidir con los xi ) mientras que |S(x)| alcanza menores valores para valores intermedios de x. Javier Segura Interpolación Comportamiento del error Ejemplo: interpolación de una función para los valores de xi = i − 4, i = 0..8. S(x) = x(x 2 − 1)(x 2 − 4)(x 2 − 9)(x 2 − 16): 6000 4000 2000 S(X) 0 −2000 −4000 −6000 −5 −3 −1 1 X Javier Segura Interpolación 3 5 Comportamiento del error Ejemplo: comparación la interpolación en 9 puntos xi = 4 − i, √ i = 0, .., 8 de la función f (x) = x 2 / x 2 + 1 (línea continua) con la propia función (línea discontinua). 4 3 2 1 0 −4 −3 −2 −1 Javier Segura 0 X 1 2 Interpolación 3 4 Interpolación de Chebyshev Dada una función f (x) definida en un intervalo [a, b], la mejor aproximación polinómica de grado n será aquella que minimice E[q(x)] ≡ max |f (x) − q(x)|, x∈[a,b] Si un determinado polinomio Qn (X ) hace que E[Qn (x)] sea el de valor mínimo entre todos los polinomios de grado n entonces se dice Qn (x) es la aproximación minimax de grado n de la función f (x) en [a, b] . Javier Segura Interpolación Interpolación Chebyshev Polinomios de Chebyshev: definición El polinomio de Chebyshev de orden n-ésimo se define como h i Tn (x) = cos n cos−1 (x) , x ∈ [−1, 1] , n = 0, 1, 2, 3, ... Javier Segura Interpolación Polinomios de Chebyshev: propiedades 1 Relación de recurrencia de tres términos para los polinomios de Chebyshev: Tn+1 (x) = 2xTn (x) − Tn−1 (x) , n = 1, 2, 3, ... siendo los valores iniciales de la recurrencia T0 (x) = 1, T1 (x) = x. 2 El coeficiente del término x n en Tn (x) es 2n−1 y se cumple que Tn (−x) = (−1)n Tn (x). 3 Los n ceros de Tn (x) están en el intervalo [−1, 1] y están dados por 2k + 1 xk = cos π , k = 0, 1, ..., n − 1. 2n Tn (x) tiene n + 1 extremos en el intervalo [−1, 1] que vienen dados por xk0 = cos knπ , k = 0, ..., n, donde los polinomios valen: T (xk0 ) = (−1)k Javier Segura Interpolación Interpolación de Chebyshev Teorema Para cualquier n ≥ 1, entre todos los polinomios mónicos (es decir, con coeficiente 1 en el término de mayor grado) el 1 T (x) es el polinomio de Chebyshev modificado T̃n (x) ≡ n−1 n 2 de mínimo máximo valor absoluto en [-1,1], siendo este valor 1/2n−1 . Es decir, que 1 n−1 2 = max |T̃n (x)| ≤ max |Pn (x)| x∈[−1,1] x∈[−1,1] para cualquier polinomio Pn (x) de tipo mónico: Pn (x) = x n + an−1 x n−1 + an−2 x n−2 + ... + a1 x + a0 , Javier Segura Interpolación Interpolación de Chebyshev Teorema Sea f (x) n + 1 veces diferenciable con continuidad en [a, b] Sea Pn (x) el polinomio de interpolación de Lagrange grado n basado en los n + 1 nodos (de Chebyshev) b+a b−a 2k + 1 xk = + cos π , k = 0, ..., n 2 2 2n + 2 entonces el error viene acotado por: max |f (x) − Pn (x)| ≤ a≤x≤b b−a 2 n+1 1 max |f (n+1) (x)| (n + 1)!2n a≤x≤b donde hemos considerado el cambio de variable b+a b−a + t 2 2 que transforma el intervalo [−1, 1] en [a, b]. x(t) = Javier Segura Interpolación Interpolación de Chebyshev √ Ejemplo: f (x) = x 2 / x 2 + 1. Se representa f (x) − P(x) con P(x) el polinomio de interpolación que interpola en 9 nodos distintos. La línea continua corresponde a los nodos equiespaciados y la línea discontinua corresponde a la aproximación cuasi-minimax para 9 nodos en el intervalo [−4, 4] 0.45 0.35 0.25 0.15 0.05 −0.05 −0.15 −4 −2 Javier Segura 0 X 2 Interpolación 4 Interpolación de Chebyshev Propiedad de ortogonalidad discreta n X n+1 1, i = j la Ti (xk )Tj (xk ) = (1 + δi0 ) δij , siendo δij = 0 , i 6= j 2 k =0 delta de Kronecker. Las xk son los n + 1 ceros del polinomio Tn+1 (x). Javier Segura Interpolación Interpolación de Chebyshev Evaluación de la interpolación Chebyshev El polinomio interpolador de grado n basado en los nodos de Chebyshev (ceros de Tn+1 (x)), que interpola f (x) en estos n + 1 puntos de [−1, 1], se puede escribir como: Pn (x) = n X cj Tj (x) j=0 donde cj = n 2 − δj0 X f (xk )Tj (xk ) n+1 k =0 y xk = cos 2k + 1 π , k = 0, ..., n. 2n + 2 Javier Segura Interpolación Construcción de splines Sean n + 1 puntos (xi , yi ), i = 0, 1, ..., n verificando a = x0 < x1 < x2 < ... < xn = b , una spline cúbica de estos puntos es una función s(x) en [a, b] que satisface: 1 Polinomio de tercer grado. s(x) es un polinomio , Pi (x), de grado tres sobre cada intervalo [xi−1 , xi ] para i = 1, 2, ..., n. 2 Condiciones de interpolación. s(xi ) = yi para i = 0, 1, ..., n. 3 Suavidad. s00 (x) es continua en [a, b] (≡ [x0 , xn ]), luego también lo son s(x) y s0 (x). Javier Segura Interpolación