Teoría Básica de Interpolación Curso PDI Interpolación n La interpolación consiste en generar a partir de un conjunto N de puntos, un polinomio P que represente el comportamiento de los puntos X Y x0 y0 x1 L xn y1 L yn P ( x) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 ) + L bn ( x − x0 ) L ( x − xn−1 ) 1 Interpolación n Condiciones para la interpolación P( xi ) = yi , ∀i = 0,..., n X Y x0 y0 P ( x0 ) = y 0 P ( x1 ) = y1 x1 L xn y1 L yn P ( xn ) = y n Interpolación Lineal n Cantidad de puntos requeridos: 2 X Y x0 y0 x1 y1 Estructura General Polinomio Lineal: P ( x) = b0 + b1 ( x − x0 ) Dado que P(x0) = y0, entonces: P ( x0 ) = b0 + b1 ( x0 − x0 ) = b0 = y0 P( x1 ) = y0 + b1 ( x1 − x0 ) = y1 y −y ∴ b1 = 1 0 x1 − x0 2 Interpolación Cuadrática X Y x0 y0 x1 x 2 y 1 y2 P( x ) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 ) P( x2 ) = b0 + b1 ( x2 − x 0 ) + b2 (x 2 − x0 )(x2 − x1 ) = y2 b0 = y0 y −y b1 = 1 0 x1 − x 0 y 2 − y1 y1 − y 0 − x − x x1 − x0 ∴b2 = 2 1 x2 − x 0 Diferencias Divididas de Newton n Con la finalidad de simplificar las operaciones, se utilizan las Diferencias Divididas de Newton f [ xi , x j ] = f [ xi ] − f [ x j ] xi − x j 3 Diferencias Divididas de Newton Caso Lineal b0 b1 x0 → f [ xo ] = yo f [ x1 , x0 ] = x1 → f [ x1 ] = y1 f [x1 ] − f [ x0 ] x1 − x0 f ( x) = b0 + b1 ( x − x0 ) = f [ x0 ] + f [ x1 , x0 ]( x − x0 ) Diferencias Divididas de Newton Caso Cuadrático b0 x0 → f [ xo ] = yo x1 → f [ x1 ] = y1 x2 → f [ x2 ] = y2 b1 f [ x1] − f [ x0 ] f [ x1, x0 ] = x1 − x0 f [ x2 ] − f [ x1 ] f [ x2 , x1 ] = x2 − x1 b2 f [ x2 , x1 ] − f [ x1 , x0 ] f [ x2 , x1 , x0 ] = x2 − x0 f ( x) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 ) = f [ x0 ] + f [ x1 , x0 ]( x − x0 ) + f [ x2 , x1 , x0 ]( x − x0 )( x − x1 ) 4 Lagrange n Enfoque alternativo para calcular un polinomio de interpolación X Y x0 y0 x1 L xn y1 L y n P ( x) = y0l0 ( x ) + y1l1 ( x) + L + yn ln ( x) P( x0 ) = y0 ⇒ l0 ( x0 ) = 1, P( x1 ) = y1 ⇒ l1 ( x1 ) = 1, M P( xn ) = yn ⇒ ln ( xn ) = 1, l 0 ( xi ) = 0 ∀i ≠ 0 l1 ( xi ) = 0 ∀i ≠ 1 ln ( xi ) = 0 ∀i ≠ n Lagrange n Despejando l0(x0) = 1 y l0(xi) = 0, i ≠ 0, entonces se propone: l0 ( x ) = c( x − x1 )( x − x2 ) L ( x − xn ) Como l 0(x0) = 1, entonces: 1 = l0 ( x0 ) = c ( x 0 − x1 )( x0 − x2 ) L ( x0 − xn ) ⇒c= 1 ( x0 − x1)( x0 − x1 ) L( x0 − xn ) ∴ l0 ( x) = ( x − x1 )( x − x 2 ) L ( x − x n ) ( x0 − x1)( x 0 − x 2 ) L ( x 0 − x n ) 5 Lagrange n Generalizando: ∏ (x − x ) , ( x − x ) ∏ i l j ( x) = ∀i ≠ j ,i =0 ,...,n j ∀i ≠ j ,i =0 ,...,n j = 0,..., n i Lagrange n Por ejemplo, calcular el polinomio de Lagrange para los siguientes puntos: X Y 1 3 5 7 − 2 1 2 −3 6 Splines n n Técnica ampliamente utilizada en el procesamiento digital de imágenes En lugar de representar a todos los puntos con un polinomio de alto grado, se dividen por segmentos a los puntos, donde cada segmento será representado por un polinomio Splines n Una función spline s(x) esta formada por varios polinomios, cada uno definido en un intervalo, los cuales se unen bajo ciertas condiciones de continuidad x0 < x1 < … < xn X Y x0 y0 x1 L xn y1 L y n a) s(xi) = yi , ∀ i = 0, …, n b) s(x) es un polinomio de grado ≤ k en cada subintervalo [xi-1, xi ] c) s(x) tiene derivada continua hasta de orden k-1 7 Splines Lineales n Unir a los puntos con segmentos de recta s1 ( x), x ∈ [ x0 , x1 ] s ( x ), x ∈[ x , x ] 2 1 2 s( x ) = M sn ( x ), x ∈[ x n−1, x n ] y 0 + f [ x1 , x0 ]( x − x0 ), x ∈ [ x0 , x1 ] y + f [ x , x ]( x − x ), x ∈ [ x , x ] 1 2 1 1 1 2 ⇒ s( x ) = M y n −1 + f [x n , x n−1 ]( x − x n−1 ), x ∈ [ x n −1 , x n ] Splines Cuadráticos n Consiste en unir cada uno de los puntos a través de segmentos de curvas cuadráticas: s1 ( x), x ∈ [ x0 , x1 ] s ( x ), x ∈[ x , x ] 2 1 2 s( x ) = M sn ( x ), x ∈[ x n−1, x n ] a1 x 2 + b1x + c1 , x ∈ [ x0 , x1 ] s( x) = M 2 a x + b x + c , x ∈ [ x , x ] n n n−1 n n 8 Splines Cuadráticos n Por ejemplo, considere el siguiente conjunto de puntos X 3 4.5 Y 2.5 1 7 9 2.5 0.5 a1x 2 + b1 x + c1 , x ∈ [3, 4.5] s( x) = a2 x 2 + b2 x + c2 , x ∈ [4.5, 7] a x 2 + b x + c , x ∈ [7,9] 3 3 3 Splines Cuadráticos n Dado que s(3)=2.5, s(4.5)=1, s(7)=2.5, s(9)=0.5 s (3) = 2 .5 ⇒ 9a1 + 3b1 + c1 = 2.5 (4.5) 2 a1 + 4 .5b1 + c1 = 1 s (4.5) = 1 ⇒ 2 (4.5 ) a2 + 4.5b 2 + c2 = 1 7 2 a + 7b 2 + c2 = 2.5 s (7 ) = 2 .5 ⇒ 2 2 7 a 3 + 7 b3 + c3 = 2.5 s (9 ) = 0.5 ⇒ 9 2 a 3 + 9b3 + c3 = 0 .5 Considerando las derivadas continuas: 2a1 + b1 , x ∈ [3,4.5] s' ( x ) = 2a 2 + b2 , x ∈ [4 .5,7 ] 2a + b , x ∈ [7,9] 3 3 9 Splines Cuadráticos n A partir de s’(x) se obtienen las siguientes condiciones: 2a1 ( 4.5) + b1 = 2 a2 (4.5) + b2 ⇒ 9a1 + b1 = 9a2 + b2 2a 2 (7 ) + b2 = 2a3 (7) + b3 ⇒ 14 a2 + b2 = 14a3 + b3 ∴Se obtiene un sistema de 8 ec. y 9 incógnitas: Se considera que a 1 = 0 à 8 ec. y 8 incógnitas Splines Cúbicos n Consiste en unir cada uno de los puntos a través de segmentos de curvas cúbicas: s1 ( x), x ∈ [ x0 , x1 ] s ( x ), x ∈[ x , x ] 2 1 2 s( x ) = M sn ( x ), x ∈[ x n−1, x n ] a1 x 3 + b1 x 2 + c1 x + d1 , x ∈ [ x0 , x1 ] s( x) = M 3 2 a x + b x + c x + d , x ∈ [ x , x ] n n n n −1 n n 10 Splines Cúbicos: Ejemplo X 2 3 5 Y −1 2 7 a1 x3 + b1 x 2 + c1 x + d1 , x ∈ [2,3] s( x ) = a x3 + b x 2 + c x + d , x ∈[3,5] 2 2 2 2 s (2 ) = −1 ⇒ 8a1 + 4b1 + 2c1 + d1 = −1 s (3) = 2 ⇒ 27a1 + 9b1 + 3c1 + d1 = 2 s (3) = −7 ⇒ 27a 2 + 9b2 + 3c2 + d 2 = −7 s (5) = −7 ⇒ 125 a2 + 25b2 + 5c 2 + d 2 = −7 Splines Cúbicos: Ejemplo n Considerando las derivadas se tiene: 3a x 2 + 2b1x + c1, x ∈[ 2,3] s ' ( x) = 1 2 3a2 x + 2b2 x + c2 , x ∈[3,5] 6a1 x + b1 , x ∈[ 2,3] s ' ' ( x) = 6a2 x + b2 , x ∈[3,5] Dado que se requiere continuidad en todos los puntos: 3a1 (3) 2 + 2b1 (3) + c1 = 3a 2 (3)2 + 2b2 (3) + c2 ⇒ 27 a1 + 6 b1 + c1 = 27 a 2 + 6b2 + c2 6 a1 (3) + b1 = 6 a 2 (3) + b2 ⇒ 18 a1 + b1 = 18a 2 + b2 11 Splines Cúbicos n Dado que se tienen 6 ec. y 8 incógnitas, se pueden añadir las siguientes condiciones: s' ' (x0 ) = 0 ⇒ s' ' (2) = 0 ⇒ 6a1 (2) + 2b1 = 0 s' ' (xn ) = 0 ⇒ s' ' (5) = 0 ⇒ 6a2 (5) + 2b2 = 0 Con lo anterior, se tiene un sistema de 8 ec. y 8 incógnitas 12