Métodos Numéricos e Estatísticos Parte I-Métodos Numéricos Lic Eng Biomédica e Bioengenharia-2009/2010
O problema geral da interpolação polinomial consiste em, dados n + 1 pontos (reais ou complexos) x 0, x 1,, x n e n + 1 valores (reais ou complexos) y 0, y 1,, y n (que geralmente correspondem a valores de uma função y = f (x) em x 0, x 1,, x n ), determinar um polinómio p n (x) de grau n tal que p n (x 0 ) = y 0, p n (x 1 ) = y 1,, p n (x n ) = y n Se os pontos x i, que são chamados de pontos ou abcissas de interpolação são distintos, vamos verificar que tal polinómio existe e é único
Dados n+1 pontos (reais ou complexos) x 0, x 1,, x n e n+1 valores (reais ou complexos) y 0, y 1,, y n, existe um e um só polinómio p n (x) de grau inferior ou igual a n tal que p n (x i ) = y i, i = 0, 2,, n Dem: Seja p n(x) = a 0 + a 1 x + + a nx n um polinómio de grau menor ou igual a n, com n + 1 coeficientes a 0, a 1,, a n desconhecidos A condição p n(x i ) = y i, i = 0, 2,, n é equivalente ao sistema de n + 1 equações a 0 + a 1 x 0 + + a nx0 n = y 0 a 0 + a 1 x 1 + + a nx1 n = y 1 a 0 + a 1 x n + + a nxn n = y n nas n + 1 incógnitas a i, 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 x 0 x0 n 1 x 1 x n 1 1 x n xn n (1) é diferente de zero se os x i são todos distintos Assim sendo, o sistema (1) tem uma e uma só solução
Chama-se polinómio interpolador de uma função f sobre um conjunto de pontos x 0, x 1,, x n, 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: x 0 = 1, y 0 = 1 = f (x 0 ) x 1 = 2, y 1 = 4 = f (x 1 ) x 2 = 3, y 2 = 9 = f (x 2 ) Queremos então determinar p 2 (x) = a 0 + a 1 x + a 2 x 2, tal que p 2 (x i ) = f (x i ), i = 1, 2, 3, o que conduz ao sistema a 0 + a 1 + a 2 = 1 a 0 + 2a 1 + 4a 2 = 4 a 0 + 3a 1 + 9a 2 = 9 Resolva este sistema usando a regra de Cramer
Fórmula interpoladora de Lagrange Sejam x 0, x 1,, x n n + 1 pontos distintos Consideremos os seguintes polinómios l i (x) de grau n: l i (x) = x x j, i = 0,, n x j=0 i x j j i } {{ } polinómios de Lagrange { 1, i = j Facilmente se verifica que l i (x j ) = δ ij = 0, i j e assim sendo, dados f 0 = f (x 0 ), f 1 = f (x 1 ),, f n = f (x n), de uma função, o polinómio p n(x) = é de grau menor ou igual a n e verifica n f i l i (x) (2) i=0 p n(x i ) = f i, ie, p n é o polinómio interpolador de f nos pontos x 0, x 1,, x n A (2) chama-se fórmula interpoladora de Lagrange
Exemplo Sendo dada a tabela x 1 0 2 f (x) 2 1 7 calculemos f (1) usando o polinómio interpolador de Lagrange Temos x 0 = 1, f 0 = f (x 0 ) = 2 x 1 = 0, f 1 = f (x 1 ) = 1 x 2 = 2, f 2 = f (x 2 ) = 7 e portanto n = 2 Determinemos l i (x), i = 0, 1, 2: l 0 (x) = (x x 1)(x x 2 ) (x 0 x 1 )(x 0 x 2 ) = (x 0)(x 2) ( 1 0)( 1 2) = x2 2x 3 l 1 (x) = (x x 0)(x x 2 ) (x 1 x 0 )(x 1 x 2 ) = (x+1)(x 2) (0+1)(0 2) = x2 x 2 2 l 2 (x) = (x x 0)(x x 1 ) (x 2 x 0 )(x 2 x 1 ) = (x+1)(x 0) (2+1)(2 0) = x2 +x 6 O polinómio interpolador é então dado por ( ) p 2 (x) = f 0 l 0 (x)+f 1 l 1 (x)+f 2 l 2 (x) = 2 x2 2x 1 x2 x 2 +7 x2 + x = x 2 +2x 1 3 2 6 e um valor aproximado de f (1) é dado por p 2 (1) = 2
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 x 1 < x 2 < < x n b então R n (x) = f (x) p n (x) = (x x 0)(x x 1 ) (x x n ) f (n+1) (ξ), (n + 1)! para algum ξ ]a, b[ e para todo o x [a, b]
Dem: Como p n(x i ) = f i, a função R n(x) = f (x) p n(x) anula-se em x = x i, i = 0, 1,, n Para x fixo, e tal que x x i, i = 0, 1,, n, seja e defina-se a função K(x) = f (x) p n(x) (x x 0 )(x x 1 ) (x x n) F (t) = f (t) p n(t) (t x 0 )(t x 1 ) (t x n)k(x) A função F anula-se nos n + 2 pontos t = x i, 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) = f (n+1) (ξ) (n + 1)!, donde obtendo-se assim o pretendido f (n+1) (ξ) (n + 1)! = f (x) p n(x) (x x 0 )(x x 1 ) (x x, n)
A R n (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 x 1 < x 2 < < x n b e R n (x) = f (x) p n (x) Então R n (x) (x x 0)(x x 1 ) (x x n ) (n + 1)! max f (n+1) (t) t [a,b]
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 105 x 09 10 11 12 f (x) 062 054 045 026 e portanto f (iv) (t) = cos t max t [09,12] cos t = 062 R 3 (x) (105 09)(105 10)(105 11)(105 12) 062 4! = 00000001453 < 15 10 6
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 x i, 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 x 0, x 1,, x n n + 1 pontos distintos do intervalo [a, b] e sejam f i = f (x i ) os correspondentes valores de uma função f nesses pontos Define-se f [x i ] = f (x i ), i = 0, 1,, n, f [x 0, x 1,, x n] = f [x 1, x 2,, x n] f [x 0, x 1,, x n 1 ] x n x 0, onde f [x 0, x 1,, x n] é a diferença dividida de ordem n da função f nos pontos x 0, x 1,, x n
Tabela das diferenças divididas O cálculo das das diferenças divididas de diferentes ordens pode ser sistematizado numa tabela: x i f [x i ] f [, ] f [,, ] f [,,, ] x 0 f (x 0 ) f (x 1 ) f (x 0 ) = f [x 0, x 1 ] x 1 x 0 x 1 f (x 1 ) f [x 1, x 2 ] f [x 0, x 1 ] = f [x 0, x 1, x 2 ] x 2 x 0 f (x 2 ) f (x 1 ) = f [x 1, x 2 ] x 2 x 1 f [x 0, x 1, x 2, x 3 ] x 2 f (x 2 ) x 3 f (x 3 ) f (x 3 ) f (x 2 ) x 3 x 2 = f [x 2, x 3 ] f [x 2, x 3 ] f [x 1, x 2 ] x 3 x 1 = f [x 1, x 2, x 3 ]
Sejam a x 0 < x 1 < < x n b n + 1 pontos do intervalo [a, b] e seja p n o polinómio interpolador de grau n de uma função f sobre este conjunto de pontos Escrevendo p n na forma: p n(x) = a 0 + a 1 (x x 0 ) + a 2 (x x 0 )(x x 1 ) + + a n(x x 0 ) (x x n 1 ), determinemos os a i, i = 0,, n de acordo com as condições de interpolação: p n(x i ) = f (x i ), i = 0, 1,, n p n(x 0 ) = f (x 0 ) a 0 = f (x 0 ) a 0 = f [x 0 ] p n(x 1 ) = f (x 1 ) a 0 + a 1 (x 1 x 0 ) = f (x 1 ) f (x 0 ) + a 1 (x 1 x 0 ) = f (x 1 ) a 1 = f (x 1) f (x 0 ) x 1 x 0 = f [x 0, x 1 ] }{{} diferença dividida de ordem 1
p n(x 2 ) = f (x 2 ) a 0 + a 1 (x 2 x 0 ) + a 2 (x 2 x 0 )(x 2 x 1 ) = f (x 2 ) f (x 0 ) + f [x 0, x 1 ](x 2 x 0 ) + a 2 (x 2 x 0 )(x 2 x 1 ) = f (x 2 ) f (x 2) f (x 0 ) x 2 x 0 = f [x 0, x 1 ] + a 2 (x 2 x 1 ) f [x 0, x 2 ] = f [x 0, x 1 ] + a 2 (x 2 x 1 ) a 2 = f [x 0, x 2 ] f [x 0, x 1 ] x 2 x 1 = f [x 0, x 1, x 2 ] }{{} diferença dividida de ordem 2 p n(x) = f (x 0 ) + f [x 0, x 1 ](x x 0 ) + f [x 0, x 1, x 2 ](x x 0 )(x x 1 ) + + f [x 0, x 1,, x n] (x x 0 ) (x x n 1 ) }{{} diferença dividida de ordem n
Considerando as funções: j 1 φ 0 (x) = 1 e φ j (x) = (x x i ), j = 1,, n facilmente se verifica que o conjunto { φ j (x), j = 0,, n } constitui uma base do espaço P n (espaço dos polinómios de grau inferior ou igual a n) Logo, para qualquer n polinómio p n existem n + 1 constantes a j, j = 0,, n tal que p n(x) = a j φ j (x) Assim sendo, o polinómio interpolador pode ser escrito na forma: Notemos ainda que: p n(x) = f (x 0 ) + i=0 n f [ ] j 1 x 0,, x j (x x i ) j=1 p n+1 (x) = p n(x) + f [x 0,, x n+1 ] i=0 n (x x i ) i=0 j=0
Algumas propriedades das diferenças divididas A diferença dividida f [x i, x i+1,, x i+k ] não é alterada qualquer que seja a permutação feita em x i, x i+1,, x i+k f (x) = f [x, x] f (x + ε) f (x) Dem:f [x, x] = lim f [x, x + ε] = lim = f (x) ε 0 ε 0 ε Dem: f (x) = f [x, x, x] f [x, x, x] = lim ε 0 lim h 0 f [x, x + h, x + h + ε] f (x + h + ε) f (x + h) = lim lim ε ε 0 h 0 h + ε f (x + ε) f (x) = lim = f (x) ε 0 ε f (x + h) f (x) h
Seja P n(x) um polinómio de grau n, então a diferença dividida de ordem k > n é zero Sejam x 0, x 1,, x n, n + 1 pontos, e considere-se f [x 0, x 1,, x n] Então ξ (a, b) tal que f [x 0, x 1,, x n] = f (n) (ξ) n! Dem: Seja g(t) = f (t) p n(t) Se x i, i = 0,, n são os pontos de interpolação então g(x i ) = 0 }{{} n+1 zeros = ξ (a, b) tal que g (n) (ξ) = 0 (generalização do Teorema de Rolle ) = f (n) (ξ) p n (n) (ξ) = 0 f (n) (ξ) = p n (n) (ξ) (a) n j 1 Sabendo que p n(x) = f (x 0 ) + f [x 0,, x j ] (x x i ) j=1 i=0 n 1 p n(x) = f (x 0 ) + + f [x 0,, x n] (x x i ) i=0 = p n (n) (x) = f [x 0,, x n]n! f [x 0,, x n] = p(n) n (x) (b) n! então substituindo (a) em (b), vem: f [x 0,, x n] = f (n) (x) n!
Erro do polinómio interpolador Seja p n o polinómio interpolador de Newton das diferenças divididas e x 0, x 1,, x n as n + 1 abcissas de interpolação Pretendemos estimar f (ˆx) p n(ˆx), ˆx [x 0, x n] e ˆx x i, i = 0,, n Seja x 0, x 1,, x n, ˆx n + 2 pontos de interpolação e p n+1 (x) o polinómio interpolador para estes pontos Isto é, f (x i ) = p n+1 (x i ) e f (ˆx) = p n+1 (ˆx) Como p n+1 (x) = p n(x) + f [x 0,, x n, x] n j=0 (x x j ), fazendo x = ˆx, vem: f (ˆx) = p n+1 (ˆx) = p n(ˆx) + f [x 0,, x n, ˆx] f (ˆx) p n(ˆx) = f [x 0,, x n, ˆx] n (ˆx x j ) j=0 n (ˆx x j ) j=0
Exemplo Considerando a seguinte tabela de pontos de uma função f, determine o seu x polinómio interpolador i 0 025 05 f (x i ) 1 15 175 Com base na tabela das diferenças divididas: x i f (x i ) f [, ] f [,, ] x 0 = 0 f (x 0 )= 1 x 1 = 025 f (x 1 )= 15 x 2 = 05 f (x 2 )= 175 f (x 1 ) f (x 0 ) = 15 1 = 2 x 1 x 0 025 f (x 2 ) f (x 1 ) 175 15 = = 1 x 2 x 1 025 f [x 1, x 2 ] f [x 0, x 1 ] = 1 2 = -2 x 2 x 0 05 construimos assim o polinómio: P 2 (x) = 1 + f [0, 025](x 0) + f [0, 025, 05](x 0)(x 025) = 1 + 2x 2x(x 025)