Interpolação A necessidade de obter um valor intermediário que não consta de uma tabela ocorre comumente Dados experimentais, tabelas estatísticas e de funções complexas são exemplos desta situação. Como obter estes dados? Dado um conjunto de dados {xi,f(xi)} tal como na tabela abaixo: xi f(xi) 0 0,001 1,5 3,0 4,5 6,0 0,016 0,028 0,046 0,057 Como obter o valor de f(x) para um valor de x que não tenha sido medido, como x=2.0 ? Quando se deseja saber o valor de f(x) para um x intermediário entre duas medidas, isto é, xi<x<xi+1, pode-se usar as técnicas da interpolação A interpolação consiste em determinar uma função, que assume valores conhecidos em certos pontos (nós de interpolação) A classe de funções escolhida para a interpolação é a priori arbitrária, e deve ser adequada às características que pretendemos que a função possua Função a ser considerada: Polinômios Interpolação Polinomial Métodos de interpolação polinomial são utilizados para aproximar uma função f(x), principalmente nas seguintes situações: conhece-se apenas valores de f(x) em apenas pontos discretos x0, x1 , x2 , ... f(x) é extremamente complicada e de difícil manejo f(x) não é conhecida explicitamente A interpolação por meio de polinômios consiste em: Interpolar um ponto x a um conjunto de n+1 dados {xi,f(xi)}, significa calcular o valor de f(x), sem conhecer a forma analítica de f(x) ou ajustar uma função analítica aos dados Interpolação polinomial consiste em se obter um polinômio p(x) que passe por todos os pontos do conjunto de (n+1) dados {xi,f(xi)}, isto é: p(x0)=f(x0) p(x1)=f(x1) … p(xn)=f(xn) Obs: contagem começa em zero, portanto tem-se n+1 pontos na expressão Polinômio p(x) - polinômio interpolador Pode-se demonstrar que existe um único polinômio p(x) de grau menor ou igual a n que passa por todos os (n+1) pontos do conjunto {xi,f(xi)} p n (x 0 )= 2 n a 0 + a 1 x 0 + a 2 x 0 + ... + a n x 0 = f (x ) 0 2 n p n ( x 1 ) = a 0 + a 1 x 1 + a 2 x 1 + ... + a n x 1 = f ( x 1 ) ... 2 p n (x n ) = a 0 + a 1 x n + a 2 x n + ... + a n x nn = f (x n ) O conjunto de equações corresponde a um sistema linear de n+1 equações e n+1 variáveis Quais são as variáveis independentes? ai ou xi ? Poderia ser resolvido diretamente Essa é uma das formas de se obter o polinômio interpolador f ( x ) P1 ( x ) = a0 + a1x P1 ( x0 ) = y0 P1 ( x1 ) = y1 a0 + a1x0 = y0 1 x 0 a0 y0 = a0 + a1x1 = y1 1 x 1 a1 y1 y1 y0 P1 ( x ) = y0 + ( x x0 ) x1 x0 Problema Determinar o polinômio interpolador através da resolução de um sistema linear é caro computacionalmente Outros modos de se obter o polinômio: Lagrange Newton Seja um conjunto de n+1 dados {xi,f(xi)}. Encontrar um polinômio interpolador p(x) que passe por todos os pontos p(x) = L0(x) f (x0) + L1(x) f (x1)+...+Ln (x) f (xn ) Lk(x) são polinômios tais que: Lk ( xi ) = ki sendo que: 0 se , k i ki = 1 se , k = i (x x ) (x x ) ...(x x ) (x x ) ...(x x ) L ( x) = (x x ) (x x )...(x x ) (x x ) ...(x x ) 0 k 1 1 k +1 n k k 0 k Pois: Lk ( x k ) = 1 e Lk ( xi ) = 0 se, i k 1 k ki 1 k ki +1 k n Interpolação Linear Interpolação para 2 pontos (n+1=2) ajuste de retas (n=1) (Interpolação Linear) x x x i f(xi) 1 0 f(x0) 1 f(x1) p( x) = Li ( x). f ( xi ) = L0 ( x). f ( x0 ) + L1 ( x). f ( x1 ) i =0 Ajuste uma reta aos seguintes pontos (x;f(x)): (2; 3,1) e (4; 5,6) x x1 x x0 f (x0 ) + f (x1 ) p(x ) = x0 x1 x1 x0 Ajuste uma reta aos seguintes pontos (x;f(x)): (2; 3,1) e (4; 5,6) x x1 x x0 f (x0 ) + f (x1 ) p(x ) = x0 x1 x1 x0 x 4 x 2 p( x ) = 3 . 1 + 5.6 = 1.55 (x 4) + 2.8 (x 2) 24 42 p(x ) = 1.25 x + 0.6 Forma de Newton p(x ) = d 0 + d 1( x x0) + d 2( x x1)(x x0) + ... + dn( x xn 1)(x xn 2)...(x x0) dn -> é o operador diferença dividida Diferenças divididas Ordem 0 f [ x 0] = f ( x 0 ) f [ x 0, x1] = f [ x1] f [ x 0] f ( x1) f ( x 0) = x1 x 0 x1 x 0 f [ x 0, x1, x 2] = f [ x 0, x1, x 2, x3] = f [ x1, x 2] f [ x 0, x1] x 2 x0 f [ x1, x 2, x3] f [ x 0, x1, x 2] x3 x 0 Ordem 1 Ordem 2 Ordem 3 Ordem 0 Ordem 1 Ordem 2 f [ x 0] f [ x0, x1] f [ x0, x1, x2] f [ x1] f [ x 2] f [ x 3] ... f [ xn ] ... f [ x1, x 2] f [ x1, x2, x3] f [ x 2, x3] Exemplo Calcule a tabela de diferenças divididas para os seguintes valores: x -1 0 1 2 3 F(x) 1 1 0 -1 -2 1 0 1 - 1/2 -1 0 1/6 0 -1 -1 -2 0 0 -1 - 1/24 Mas qual o valor de d? d 0 = f ( x 0) d 1 = f [ x 0, x1] d 2 = f [ x 0, x1, x 2] dn = f [ x 0, x1,...xn ] Assim, p(x ) = f ( x0) + f [ x0, x1](x x0) + f [ x0, x1, x 2](x x1)(x x0) + ... + f [ x0, x1,...xn](x xn 1)(x xn 2)...(x x0)