INTERPOLAÇÃO POLINOMIAL 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia Aproximação Os métodos de aproximação são destinados a problemas de ler nas enterlinhas dos dados tabelados, ou então, trabalhar com funções dadas implicitamente ou por expressões muito complicadas Por exemplo, calcular valores de funções definidas como pela integral abaixo f(x) = x 0 exp( t 2 )dt não é tão simples, já que não é possível encontrar uma primitiva para o integrando Nem tão pouco e simples trabalhar com a função de Bessel de primeiro tipo e ordem p dada por: J p (x) = n=0 ( 1) n Γ(n + 1)Γ(n + p + 1) (x 2 )2n+p, onde Γ(p) = 0 x p 1 e x dx, p > 0 No intuito de se escolher a melhor forma de aproximar o problema dado, trabalha-se com duas classes de métodos para aproximação de dados, cuja diferença básica entre elas está em considerarmos, ou não, a existência de erros nos dados No caso de considerarmos que os dados são precisos podemos exigir que a curva de ajuste passe pelos pontos dados Estes problemas são resolvidos através do técnica da Interpolação Para o nosso curso, estaremos interesssados na interpolação polinomial No caso de dados não-precisos, o Método dos Quadrados Mínimos tem sido o mais usado 1 Interpolação Polinomial Procuramos estabelecer métodos numéricos que permitam encontrar um polinômio que passe por n + 1 pontos conhecidos, denotados por (x 0, y 0 ), (x 1, y 1 ),, (x n, y n ) onde x i x j quando i j Como, por exemplo, encontrar uma aproximação para funções conhecidas apenas em pontos discretos y 0 = f(x 0 ),, y n = f(x n ), ou seja, um polinômio p(x) tal que p(x 0 ) = f(x 0 ),, p(x n ) = f(x n )? O polinômio p(x) que satisfaz essas condições é chamado de polinômio interpolador de f(x) nos pontos x 0, x 1,, x n Teorema1 Seja f(x) uma função conhecida nos n+1 pontos distintos x 0, x 1,, x n Existe um único polinômio p(x), de grau menor ou igual a n, tal que p(x i ) = f(x i ), para i = 0, 1,, n Demonstração: Para ver isso substituimos cada x i, i = 0, 1,, n em p(x) = a 0 + a 1 x + a 2 x 2 + + a n x n, construimos o sistema linear Ax = b, onde a matriz-coluna de incógnitas é x = [a 0 a 1 a n ] t, a dos termos independentes é b = [f(x 0 )f(x 1 ) f(x n )] t e a matriz A do
INTERPOLAÇÃO POLINOMIAL 2 sistema é dada por: 1 x 0 x 2 0 x n 0 1 x 1 x 2 1 x n 1 A = 1 x 2 x 2 2 x n 2 1 x n x 2 n x n n, como a matriz A é não-singular, temos que o sistema possui uma única solução x = [α 0 α 1 α n ] t, o que nos dá um único polinômio p(x) = α 0 + α 1 x + α 2 x 2 + + α n x n Como a resolução de sistemas lineares já nos leva a erros de arredondamento ou à necessidade de avaliar a convergência dos métodos, ou seja, já possui as suas próprias dificuldades e problemas, não é muito razoável determinar os coeficientes do polinômio interpolador usando esses métodos Por isso agora estudaremos métodos numéricos específicos para esse fim 11 Interpolação de Lagrange Seja o problema de achar o polinômio que interpola y = f(x) nos n + 1 pontos distintos x 0,, x n, então devemos ter p(x) = f(x 0 )L n 0 (x) + f(x 1)L n 1 (x) + + f(x n)l n n(x), onde L n i (x) é tal que: L n i (x k ) = { 1 para k = i, 0 para k i Estes são os polinômios de Lagrange, que têm a forma: L n i (x) = (x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i+1 ) (x i x n ) (x x 0 )(x x 1 ) (x x i 1 )(x x i+1 ) (x x n ) Exemplos: 1 Calcule o polinômio que interpola f(x) = 1 x 2 nos pontos x 0 = 2; x 1 = 2, 5; x 2 = 4 Determine o erro E(2, 25) = f(2, 25) p(2, 25) 2 A função y = f(x) passa pelos pontos da tabela abaixo: Pede-se: x 0, 1 0, 2 0, 3 0, 4 y 2, 121 2, 288 2, 507 2, 784 Calcular um valor aproximado para f(0,32) usando um polinômio interpolador p 2 (x) de grau 2 Calcular um valor aproximado para f(0,32) usando um polinômio interpolador p 3 (x) de grau 3 Determinar o valor exato de f(0,32), sabendo que a função é dada por f(x) = x 3 + 2x 2 + x + 2
INTERPOLAÇÃO POLINOMIAL 3 Calcular e 1 = f(0, 32) p 2 (0, 32) e e 2 = f(0, 32) p 3 (0, 32) Comparar os valores de e 1 e e 2 O resultado era o esperado? Por quê? Teorema2 Seja [a, b] um intervalo que contém os pontos x 0, x 1,, x n e f(x) uma função com (n + 1) derivadas contínuas em [a, b] Pode-se mostrar que o erro de polinômio interpolador de f(x) em x 0, x 1,, x n é, no ponto x [a, b], dado por E(x) = f(x) p n (x) = f (n+1) (α) (n + 1)! [(x x 0)(x x 1 ) (x x n )], onde a derivada de ordem (n + 1) é calculada num ponto α [a, b] que depende de x 12 Diferenças Divididas e a Forma de Newton Qual é o grau adequado para p n (x)? Um teste razoável é aumentar o número de pontos (nós) de interpolação, crescendo assim o grau de p n (x) e testar se houve alguma melhora significativa nos cálculos Dessa forma, é importante que o trabalho efetuado no cálculo do polinômio de grau n seja aproveitado no cálculo do novo polinômio de grau n + 1 No caso da forma de Lagrange, aumentar o número de nós de interpolação significa refazer todas as contas! A Forma de Newton para o polinômio interpolador tem a característica da recorrência, ou seja, o polinômio interpolador de grau n + 1 é calculado a partir do polinômio de grau n e um novo nó Vamos procurar escrever p n (x) na forma abaixo: p n (x) = c 0 + c 1 (x x 0 ) + c 2 (x x 0 )(x x 1 ) + + c n (x x 0 )(x x 1 ) (x x n 1 ) que é a forma de Newton para p n (x), onde x 0, x 1,, x n são os nós e as constantes são determinadas pelas condições de interpolação A partir das condições de interpolação temos p n (x i ) = f(x i ), i = 0, 1,, n Fazendo x = x 0 temos f(x 0 ) = p n (x 0 ) E n (x 0 ) = 0 c 0 = f(x 0 ) Fazendo x = x 1 temos f(x 1 ) = p n (x 1 ) E n (x 1 ) = 0 c 1 = f(x 1) f(x 0 ) Fazendo x = x 2 temos f(x 2 ) = p n (x 2 ) E n (x 2 ) = 0 c 2 = f(x 2 ) f(x 0 ) x 2 x 0 f(x 1) f(x 0 ) x 1 x 0 Seguindo o mesmo raciocínio calculamos todos os coeficientes de p n (x) Esta não é a forma mais prática para se calcular os coeficientes de p n (x) 121 Diferenças Divididas Definimos f[x] = f(x) Dados os nós de interpolação: x 0, x 1,, x k, por recorrência, definimos para qualquer k: f[x 0, x 1,, x k 1, x k, x] = f[x 0, x 1,, x k 1, x] f[x 0, x 1,, x k 1, x k ] x x k
INTERPOLAÇÃO POLINOMIAL 4 f[x 0 ] = f(x 0 ) = c 0 Fazendo k = 0 e x = x 1 temos f[x 0, x 1 ] = f[x 1] f[x 0 ] = f(x 1) f(x 0 ) = c 1 Fazendo k = 1 e x = x 2 temos f[x 0, x 1, x 2 ] = f[x 0, x 2 ] f[x 0, x 1 ] = f(x 2 ) f(x 0 ) x 2 x 0 f(x 1) f(x 0 ) x 1 x 0 = c 2 f[x 2 ] f[x 0 ] x 2 x 0 f[x 1] f[x 0 ] x 1 x 0 = E, esta, continua não sendo uma forma prática para se calcular os coeficientes de p n (x) Mas levando em conta que c n = f[x 0,, x n ], que são os coeficientes do polinômio interpolador que passa pelos pontos x 0, x 1,, x n, temos que a ordem em que os x is aparecem não influencia o resultado do cálculo da diferença dividida, logo f[x 0, x 1,, x n ] = f[x 1,, x n, x 0 ] Sendo assim, c n = f[x 1,, x n 1, x 0 ] f[x 1,, x n ] = f[x 1,, x n ] f[x 0, x 1,, x n 1 ] x 0 x n x n x 0 Então: c 1 = f[x 1] f[x 0 ] c 2 = f[x 1, x 2 ] f[x 0, x 1 ] x 2 x 0 c 3 = f[x 1, x 2, x 3 ] f[x 0, x 1, x 2 ] x 3 x 0 Que na forma da Tabela das diferenças divididas são fáceis de serem calculados 122 Tabela das diferenças divididas Genericamente, a k-ésima diferença dividida relativa aos pontos x i, x i+1,, x i+k é calculada por f[x i, x i+1,, x i+k ] = f[x i+1,, x i+k ] f[x i, x i+1,, x i+k 1 ] x i+k x i Exemplos: 1 Seja f(x) tabelada abaixo, encontre seu polinômio interpolador nos nós dados: x 1 0 1 2 3 f(x) 1 1 0 1 2 2 Seja f(x) tabelada abaixo, encontre seu polinômio interpolador nos nós dados: x 1 0 2 f(x) 4 1 1
INTERPOLAÇÃO POLINOMIAL 5 13 Estudo do erro na interpolação Teorema3 Sejam x 0 < x 1 < < x n, (n + 1) pontos Seja f(x) uma função com derivadas até ordem (n+1) para todo x [x 0, x n ] Seja p n (x) o polinômio interpolador de f(x) nos pontos x 0, x 1,, x n Então, em qualquer ponto x [x 0, x n ], o erro é dado por E n (x) = f(x) p n (x) = f (n+1) (α) (n + 1)! [(x x 0)(x x 1 ) (x x n )], onde a derivada de ordem (n + 1) é calculada num ponto α [x 0, x n ] Teorema4 f[x 0, x 1,, x n, x] = f (n+1) (α) (n + 1)!, para x, α (x 0, x n ) 131 Limitante para o erro Corolário1 Sob as hipóteses do Teorema3, se f (n+1) (x) for contínua em I = [x 0, x n ], podemos escrever E n (x) = f(x) p n (x) M n+1 (n + 1)! (x x 0)(x x 1 ) (x x n ), onde M n+1 = max f (n+1) (x), x I Corolário2 Se além das hipóteses anteriores tivermos que os nós são igualmente espaçados, ou seja, = = = x n x n 1 = h, então f(x) p n (x) < hn+1 M n+1 4(n + 1) Exemplos: 1 Seja f(x) = e x + x 1 tabelada abaixo, encontre f(0, 7) por interpolação linear e faça uma análise do erro cometido: x 0 0, 5 1, 0 1, 5 2, 0 f(x) 0, 0 1, 1487 2, 7183 4, 9811 8, 3890 2 Seja f(x) tabelada abaixo, encontre f(0, 47) por interpolação quadrática e dê uma estimativa para o erro cometido: 14 Fenômeno de Runge x 0, 2 0, 34 0, 4 0, 52 0, 6 0, 72 f(x) 0, 16 0, 22 0, 27 0, 29 0, 32 0, 37 Pergunta-se: A sequência de polinômios p n (x) converge para f(x) em [a, b] quando x 0, x 1,, x n cobre esse intervalo, ou seja, quando n? No caso onde x i+1 x i = h, i = 0, 1,, n 1, ou seja, quando os pontos são igualmente 1 espaçados, o exemplo f(x) =, com x [ 1, 1], mostra que divergências podem ser 1 + 25x2
INTERPOLAÇÃO POLINOMIAL 6 esperadas É o Fenômeno de Runge Esse problema é resolvido tomando um novo tipo de espaçamento, por exemplo tomando os nós de Chebyschev onde m é o grau do polinômio interpolador x i = cos( 2i + 1 π m + 1 2 ) 15 Interpolação Inversa Problema: Dado y (f(x 0 ), f(x n )), obter x, tal que f(x) = y Formas de resolvê-lo: 1 Primeiro, obter p n (x) que interpola f(x) em x 0, x 1,, x n e em seguida, encontrar x tal que p n (x) = y Por exemplo: dada a f(x) tabelada abaixo, encontre x tal que f(x) = 2 2 Interpolação inversa x 0, 5 0, 6 0, 7 0, 8 0, 9 1, 0 f(x) 1, 65 1, 82 2, 01 2, 23 2, 46 2, 72 Se f(x) for inversível num intervalo contendo y, então faremos a interpolação de x = f 1 (y) = g(y) Uma condição, para que uma função contínua num intervalo [a, b] seja inversível, é que seja monótona neste intervalo Por exemplo: dada a f(x) tabelada abaixo, encontre x tal que f(x) = 1, 3165 usando interpolação quadrática x 0, 0 0, 1 0, 2 0, 3 0, 4 0, 5 y = e x 1, 0 1, 1052 1, 2213 1, 3499 1, 4918 1, 6487 3 A raiz de uma função pode ser aproximada pela raiz do seu polinômio interpolador Use uma parábola para determinar a raiz da função tabelada abaixo: x 1 2 3 4 5 f(x) 0,8421 0,909 0,141-0,757-0,959 4 Use uma cúbica para determinar uma aproximação para a única raiz positiva da equação 4 cos x e x = 0 5 Dados valores tabelados da variável dependente y em função da variável x, frequentemente pretende-se achar o valor de x da variável independente correspondente ao valor y dado Isto é conhecido como interpolação inversa A partir da tabela abaixo, determine a raiz de f(x) usando interpolação inversa sobre 3 pontos: x 0,7 1,0 1,2 1,5 1,6 f(x) -2,57-2,00-1,23 0,63 0,79
REFERÊNCIAS 7 6 Sabe-se que f(x) = 5x 3 3x 2 +2x 2 tem um zero no intervalo [0; 1] Usando interpolação inversa sobre uma tabela de 4 pontos, determine, aproximadamente, esse zero 7 Uma maneira de se calcular a derivada de uma função em um ponto x 0, quando não se conhece a expressão analítica da mesma, é usar uma tabela para formar um polinômio que aproxime a função, derivar então esse polinômio e avaliar sua derivada em x = x 0 Dada a tabela abaixo, calcule f (0, 50) usando um polinômio interpolador de grau 2: x 0,40 0,45 0,50 0,55 0,60 f(x) 1,51 1,49 1,47 1,44 1,42 8 Suspeita-se que a tabela abaixo represente um polinômio cúbico Como testar esse fato? justifique a sua resposta x -3,0-2,0-1,0 0,0 1,0 2,0 f(x) -9,0 0,0 1,0 0,0 3,0 16,0 9 Qual deve ser o valor de h, se queremos obter ln x, com 3 casas decimais corretas para x 1, através de interpolação linear usando uma tabela para argumentos x i igualmente espaçados de h? 10 Dada uma função f(x), deseja-se calcular a integral de f(x) no intervalo [a; b] Para isso podemos interpolar f(x) em n + 1 pontos por um polinômio de grau n e integrá-lo Use esse método para estimar 1 0 x x 2 + 3x + 2 dx com n = 4 Compare o resultado com seu valor exato que é ln 9 8 Referências [1] RUGGIERO, MAG e ROCHA LOPES, VL Cálculo Numérico - Aspectos Teóricos e Computacionais MAKRON Books,1996 [2] CUNHA, MCC Métodos Numéricos Campinas, Editora da Unicamp, 2000 [3] CAMPOS Filho,FF Algorítmos Numéricos [4] SPERANTIO,D,MENDES,JT,SILVA,LHM Cálculo Numérico São Paulo, Prentice Hall, 2003 [5] BURDEN,RL,FAIRES,JD Análise Numérica São Paulo, Pioneira Thomson Learning, 2003