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)