Interpolação Polinomial Métodos Numéricos e Estatı́sticos Parte I-Métodos Numéricos Interpolação polinomial Luı́sa Morgado Lic. Eng. Biomédica e Bioengenharia-2009/2010 Luı́sa Morgado Interpolação polinomial Interpolação Polinomial O problema geral da interpolação polinomial consiste em, dados n + 1 pontos (reais ou complexos) x0 , x1 , . . . , xn e n + 1 valores (reais ou complexos) y0 , y1 , . . . , yn (que geralmente correspondem a valores de uma função y = f (x) em x0 , x1 , . . . , xn ), determinar um polinómio pn (x) de grau n tal que pn (x0 ) = y0 , pn (x1 ) = y1 , . . . , pn (xn ) = yn . Se os pontos xi , que são chamados de pontos ou abcissas de interpolação são distintos, vamos verificar que tal polinómio existe e é único. Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Dados n+1 pontos (reais ou complexos) x0 , x1 , . . . , xn e n+1 valores (reais ou complexos) y0 , y1 , . . . , yn , existe um e um só polinómio pn (x) de grau inferior ou igual a n tal que pn (xi ) = yi , i = 0, 2, . . . , n. Dem.: Seja pn (x) = a0 + a1 x + . . . + an x n um polinómio de grau menor ou igual a n, com n + 1 coeficientes a0 , a1 , . . . , an desconhecidos. A condição pn (xi ) = yi , i = 0, 2, . . . , n é equivalente ao sistema de n + 1 equações a0 + a1 x0 + . . . + an x0n = y0 a0 + a1 x1 + . . . + an x1n = y1 .. . a0 + a1 xn + . . . + an xnn = yn (1) nas n + 1 incógnitas ai , i = 0, 1, . . . , n. A matriz dos coeficientes do sistema acima designa-se por matriz de Vandermonde. Sabe-se da Álgebra linear que o seu determinante 1 x0 · · · x0n n é diferente de zero se os xi são todos distintos. 1 x1 · · · x1 Assim sendo, o sistema (1) tem uma e uma só . . . . .. .. .. .. solução. 1 x · · · xnn n Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Chama-se polinómio interpolador de uma função f sobre um conjunto de pontos x0 , x1 , . . . , xn , ao polinómio de grau inferior ou igual a n que nesses pontos coincide com f . Exemplo Determinemos o polinómio interpolador de grau 2 de uma função f que passa pelos pontos (1, 1), (2, 4) e (3, 9). Temos: x0 = 1, y0 = 1 = f (x0 ) x1 = 2, y1 = 4 = f (x1 ) x2 = 3, y2 = 9 = f (x2 ) Queremos então determinar p2 (x) = a0 + a1 x + a2 x 2 , tal que p2 (xi ) = f (xi ), i = 1, 2, 3, o que conduz ao sistema a 0 + a1 + a2 = 1 a0 + 2a1 + 4a2 = 4 a0 + 3a1 + 9a2 = 9 Resolva este sistema usando a regra de Cramer. Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Fórmula interpoladora de Lagrange Sejam x0 , x1 , . . . , xn n + 1 pontos distintos. Consideremos os seguintes polinómios `i (x) de grau n: Y x − xj `i (x) = , i = 0, . . . , n xi − xj j=0 j6=i | {z } polinómios de Lagrange 1, i = j Facilmente se verifica que li (xj ) = δij = 0, i 6= j. e assim sendo, dados f0 = f (x0 ), f1 = f (x1 ), . . . , fn = f (xn ), de uma função, o polinómio pn (x) = n X fi `i (x) i=0 é de grau menor ou igual a n e verifica pn (xi ) = fi , i.e., pn é o polinómio interpolador de f nos pontos x0 , x1 , . . . , xn . A (2) chama-se fórmula interpoladora de Lagrange. Luı́sa Morgado Interpolação polinomial (2) Interpolação Polinomial Exemplo Sendo dada a tabela −1 −2 x f (x) 0 −1 2 7 calculemos f (1) usando o polinómio interpolador de Lagrange. Temos x0 = −1, f0 = f (x0 ) = −2 x1 = 0, f1 = f (x1 ) = −1 x2 = 2, f2 = f (x2 ) = −7 e portanto n = 2. Determinemos `i (x), i = 0, 1, 2: `0 (x) = `1 (x) = (x−x1 )(x−x2 ) (x0 −x1 )(x0 −x2 ) (x−x0 )(x−x2 ) (x1 −x0 )(x1 −x2 ) (x−x0 )(x−x1 ) (x2 −x0 )(x2 −x1 ) = = 2 (x−0)(x−2) = x −2x (−1−0)(−1−2) 3 2 (x+1)(x−2) = − x −x−2 (0+1)(0−2) 2 2 (x+1)(x−0) = x 6+x (2+1)(2−0) `2 (x) = = O polinómio interpolador é então dado por p2 (x) = f0 `0 (x)+f1 `1 (x)+f2 `2 (x) = −2 x 2 − 2x x2 − x − 2 x2 + x −1 − +7 = x 2 +2x−1 3 2 6 e um valor aproximado de f (1) é dado por p2 (1) = 2. Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Erro do polinómio interpolador de Lagrange Seja f uma função contı́nua em [a, b] e diferenciável e ]a, b[. Se a ≤ x1 < x2 < . . . < xn ≤ b então Rn (x) = f (x) − pn (x) = (x − x0 )(x − x1 ) . . . (x − xn ) (n+1) f (ξ), (n + 1)! para algum ξ ∈]a, b[ e para todo o x ∈ [a, b]. Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Dem.: Como pn (xi ) = fi , a função Rn (x) = f (x) − pn (x) anula-se em x = xi , i = 0, 1, . . . , n. Para x fixo, e tal que x 6= xi , i = 0, 1, . . . , n, seja K (x) = f (x) − pn (x) (x − x0 )(x − x1 ) . . . (x − xn ) e defina-se a função F (t) = f (t) − pn (t) − (t − x0 )(t − x1 ) . . . (t − xn )K (x). A função F anula-se nos n + 2 pontos t = xi , i = 0, 1, . . . , n e t = x, logo, pelo teorema de Rolle generalizado, existe ξ ∈]a, b[ tal que F (n+1) = 0. Ora F (n+1) (t) = f (n+1) (t)−(n+1)!K (x) ⇒ 0 = f (n+1) (ξ)−(n+1)!K (x) ⇔ K (x) = donde f (n+1) (ξ) f (x) − pn (x) = , (n + 1)! (x − x0 )(x − x1 ) . . . (x − xn ) obtendo-se assim o pretendido. Luı́sa Morgado Interpolação polinomial f (n+1) (ξ) , (n + 1)! Interpolação Polinomial A Rn (x) dá-se o nome de erro de interpolação cometido no ponto x quando se substitui f (x) pelo seu polinómio interpolador nesse ponto. Como ξ é desconhecido é costume usar-se a seguinte majoração para o erro de interpolação: Seja f uma função contı́nua e diferenciável em [a, b], a ≤ x1 < x2 < . . . < xn ≤ b e Rn (x) = f (x) − pn (x). Então |Rn (x)| ≤ |(x − x0 )(x − x1 ) . . . (x − xn )| max f (n+1) (t). (n + 1)! t∈[a,b] Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Exemplo Dada a função f (x) = cos x, calculemos um majorante do erro cometido quando usamos o polinómio interpolador cúbico, para aproximar cos 1.05. x f (x) 0.9 0.62 1.0 0.54 1.1 0.45 1.2 0.26 f (iv ) (t) = cos t ⇒ maxt∈[0.9,1.2] cos t = 0.62 e portanto |R3 (x)| ≤ = |(1.05 − 0.9)(1.05 − 1.0)(1.05 − 1.1)(1.05 − 1.2)| 0.62 4! 0.0000001453 < 1.5 × 10−6 . Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Diferenças divididas O método de Lagrange para a determinação se um polinómio interpolador de uma função f sobre um conjunto de pontos xi , i = 0, 1, . . . m tem um inconveniente: sempre que desjarmos passar de um polinómio de grau n para um polinómio de grau n + 1 todo o trabalho tem que ser refeito. Vamos aprender outro método para a construção do polinómio de interpolação que permite esta passagem por acréscimo de mais um termo. Para tal vamos precisar da noção de diferença dividida de uma função. Sejam x0 , x1 , . . . , xn n + 1 pontos distintos do intervalo [a, b] e sejam fi = f (xi ) os correspondentes valores de uma função f nesses pontos. Define-se f [xi ] = f (xi ), i = 0, 1, . . . , n, f [x1 , x2 , . . . , xn ] − f [x0 , x1 , . . . , xn−1 ] f [x0 , x1 , . . . , xn ] = , xn − x0 onde f [x0 , x1 , . . . , xn ] é a diferença dividida de ordem n da função f nos pontos x0 , x1 , . . . , xn . Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Tabela das diferenças divididas O cálculo das das diferenças divididas de diferentes ordens pode ser sistematizado numa tabela: xi x0 f [xi ] f (x0 ) f [·, ·] f (x1 ) − f (x0 ) x1 − x0 x1 f [x1 , x2 ] − f [x0 , x1 ] x2 − x1 x3 . . . x2 − x0 f (x2 ) f (x3 ) . . . x3 − x2 = f [x0 , x1 , x2 ] = f [x1 , x2 ] f [x0 , x1 , x2 , x3 ] f [x2 , x3 ] − f [x1 , x2 ] f (x3 ) − f (x2 ) f [·, ·, ·, ·] = f [x0 , x1 ] f (x1 ) f (x2 ) − f (x1 ) x2 f [·, ·, ·] x3 − x1 = f [x1 , x2 , x3 ] = f [x2 , x3 ] . . . . . . Luı́sa Morgado Interpolação polinomial . . . Interpolação Polinomial Sejam a ≡ x0 < x1 < · · · < xn ≡ b n + 1 pontos do intervalo [a, b] e seja pn o polinómio interpolador de grau n de uma função f sobre este conjunto de pontos. Escrevendo pn na forma: pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 ) · · · (x − xn−1 ), determinemos os ai , i = 0, . . . , n de acordo com as condições de interpolação: pn (xi ) = f (xi ), i = 0, 1, . . . , n. pn (x0 ) = f (x0 ) ⇔ a0 = f (x0 ) ⇔ a0 = f [x0 ] pn (x1 ) = f (x1 ) ⇔ a0 + a1 (x1 − x0 ) = f (x1 ) ⇔ f (x0 ) + a1 (x1 − x0 ) = f (x1 ) f (x1 ) − f (x0 ) a1 = = f [x0 , x1 ] x1 − x0 | {z } diferença dividida de ordem 1 ⇔ Luı́sa Morgado Interpolação polinomial Interpolação Polinomial pn (x2 ) = f (x2 ) ⇔ a0 + a1 (x2 − x0 ) + a2 (x2 − x0 )(x2 − x1 ) = f (x2 ) ⇔ f (x0 ) + f [x0 , x1 ](x2 − x0 ) + a2 (x2 − x0 )(x2 − x1 ) = f (x2 ) f (x2 ) − f (x0 ) = f [x0 , x1 ] + a2 (x2 − x1 ) x2 − x0 f [x0 , x2 ] = f [x0 , x1 ] + a2 (x2 − x1 ) f [x0 , x2 ] − f [x0 , x1 ] a2 = = f [x0 , x1 , x2 ] x2 − x1 | {z } diferença dividida de ordem 2 ⇔ ⇔ ⇔ .. . pn (x) = f (x0 ) + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · · + f [x0 , x1 , . . . , xn ](x − x0 ) · · · (x − xn−1 ) | {z } diferença dividida de ordem n Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Considerando as funções: φ0 (x) = 1 e φj (x) = j−1 Y (x − xi ) , j = 1, . . . , n i=0 facilmente se verifica que o conjunto φj (x), j = 0, . . . , n constitui uma base do espaço Pn (espaço dos polinómios de grau inferior ou igual a n). Logo, para qualquer n X polinómio pn existem n + 1 constantes aj , j = 0, . . . , n tal que pn (x) = aj φj (x). j=0 Assim sendo, o polinómio interpolador pode ser escrito na forma: pn (x) = f (x0 ) + j−1 n X Y f x0 , . . . , xj (x − xi ) . i=0 j=1 Notemos ainda que: pn+1 (x) = pn (x) + f [x0 , . . . , xn+1 ] n Y (x − xi ) . i=0 Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Algumas propriedades das diferenças divididas A diferença dividida f [xi , xi+1 , . . . , xi+k ] não é alterada qualquer que seja a permutação feita em xi , xi+1 , . . . , xi+k . f 0 (x) = f [x, x] Dem.:f [x, x] = lim f [x, x + ε] = lim ε→0 ε→0 f (x + ε) − f (x) = f 0 (x). ε f 00 (x) = f [x, x, x] Dem.: f [x, x, x] = = = lim lim f [x, x + h, x + h + ε] ε→0 h→0 f (x + h + ε) − f (x + h) f (x + h) − f (x) − ε h lim lim ε→0 h→0 h+ε f 0 (x + ε) − f 0 (x) lim = f 00 (x) ε→0 ε Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Seja Pn (x) um polinómio de grau n, então a diferença dividida de ordem k > n é zero. Sejam x0 , x1 , . . . , xn , n + 1 pontos, e considere-se f [x0 , x1 , . . . , xn ]. Então ∃ ξ ∈ (a, b) f (n) (ξ) . n! tal que f [x0 , x1 , . . . , xn ] = Dem.: Seja g (t) = f (t) − pn (t) Se xi , i = 0, . . . , n são os pontos de interpolação então g (xi ) = 0 | {z } n+1 zeros =⇒ ∃ξ ∈ (a, b) tal que g (n) (ξ) = 0 (generalização do Teorema de Rolle ) (n) (n) =⇒ f (n) (ξ) − pn (ξ) = 0 ⇐⇒ f (n) (ξ) = pn (ξ) (a) j−1 n X Y Sabendo que pn (x) = f (x0 ) + f [x0 , . . . , xj ] (x − xi ) ⇐⇒ j=1 ⇐⇒ pn (x) = f (x0 ) + . . . + f [x0 , . . . , xn ] i=0 n−1 Y (x − xi ) i=0 (n) (n) =⇒ pn (x) = f [x0 , . . . , xn ]n! ⇐⇒ f [x0 , . . . , xn ] = então substituindo (a) em (b), vem: f (n) (x) f [x0 , . . . , xn ] = . n! Luı́sa Morgado pn (x) (b) n! Interpolação polinomial Interpolação Polinomial Erro do polinómio interpolador Seja pn o polinómio interpolador de Newton das diferenças divididas e x0 , x1 , . . . , xn as n + 1 abcissas de interpolação. Pretendemos estimar f (x̂) − pn (x̂), x̂ ∈ [x0 , xn ] e x̂ 6= xi , i = 0, . . . , n. Seja x0 , x1 , . . . , xn , x̂ n + 2 pontos de interpolação e pn+1 (x) o polinómio interpolador para estes pontos. Isto é, f (xi ) = pn+1 (xiQ ) e f (x̂) = pn+1 (x̂). Como pn+1 (x) = pn (x) + f [x0 , . . . , xn , x] nj=0 (x − xj ), fazendo x = x̂, vem: f (x̂) = pn+1 (x̂) = pn (x̂) + f [x0 , . . . , xn , x̂] n Y (x̂ − xj ) ⇐⇒ j=0 f (x̂) − pn (x̂) = f [x0 , . . . , xn , x̂] n Y (x̂ − xj ) j=0 Luı́sa Morgado Interpolação polinomial Interpolação Polinomial Exemplo Considerando a seguinte tabela de pontos de uma função f , determine o seu xi 0 0.25 0.5 polinómio interpolador. f (xi ) 1 1.5 1.75 Com base na tabela das diferenças divididas: xi x0 = 0 f (xi ) f (x0 )= 1 x1 = 0.25 f (x1 )= 1.5 f [·, ·] f (x1 ) − f (x0 ) x1 − x0 f (x2 ) − f (x1 ) x2 = 0.5 f (x2 )= 1.75 x2 − x1 = f [·, ·, ·] 1.5 − 1 0.25 =2 f [x1 , x2 ] − f [x0 , x1 ] = 1.75 − 1.5 0.25 x2 − x0 = 1−2 0.5 =1 construimos assim o polinómio: P2 (x) = 1 + f [0, 0.25](x − 0) + f [0, 0.25, 0.5](x − 0)(x − 0.25) = 1 + 2x − 2x(x − 0.25) Luı́sa Morgado Interpolação polinomial = -2