Você está na página 1de 40

Interpolação

Índice
Introdução
Problema geral da interpolação
Polinómio interpolador
Método dos coeficientes indeterminados
Polinómio interpolador de Lagrange

Polinómio interpolador de Newton


Estudo do erro de truncatura na interpolação polinomial
Interpolação inversa
Introdução

A interpolação consiste em construir uma função a partir de um conjunto


discreto de dados pontuais previamente conhecidos.

Motivos dessa construção:


• estimar valores intermédios entre dados precisos;
• aproximar funções complicadas por outras mais simples.
Exemplo: Em Portugal, um recenseamento da população é realizado de 10 em
10 anos. Nos anos em que é realizado o recenseamento, temos dados precisos
sobre o número de habitantes do país. O número de habitantes nos anos
intermédios pode ser estimado através de uma interpolação.
Problema geral da interpolação
Seja f uma função real de variável real conhecida em n+1 pontos distintos

x0 , f x0 , x1 , f x1 ,..., xn , f xn .

A interpolação da função f consiste em obter uma função p tal que:

p ( x0 )  f ( x0 )
p ( x1 )  f ( x1 )

p ( xn )  f ( xn )

As abcissas x0 , x1 ,..., xn dizem-se os nós de interpolação e as ordenadas


f ( x0 ), f ( x1 ),..., f ( xn ) são os valores nodais.
Graficamente:

p(xi)=f(xi) para i=0,1,…,5


y

(x1 ,f(x1)) (x5 ,f(x5))


(x0 ,f(x0)) (x4 ,f(x4)) p
(x3 ,f(x3))
(x2 ,f(x2))

x0 x1 x2 x3 x4 x5 x
No que segue, p será uma função polinomial.

Observação
Outro tipo de função p (função racional, função trigonométrica,
etc.) poderia ter sido escolhida; o tipo de função escolhida para a
interpolação é, à priori, arbitrária e deve ser adequada às
características que pretendemos que a função possua.
Polinómio interpolador
Considere-se uma função real f de variável real, cujos pontos

x0 , f x0 , x1, f x1 ,..., xn , f xn 


são conhecidos.

Um polinómio p, de grau menor ou igual a n, que satisfaz

pxi   f xi  para i  0,1,..., n

chama-se polinómio interpolador de f nos nós x0 , x1 ,..., xn

ou nos pontos  x0 , f  x0 ,  x1 , f  x1 ,...,  xn , f  x. n 


Teorema de existência e unicidade
Seja f uma função real de variável real, cujos pontos

x0 , f x0 , x1, f x1 ,..., xn , f xn 


são conhecidos. Então existe um único polinómio p de grau menor ou igual a n,
tal que pxi   f xi  para i = 0, 1, ..., n.
Método dos coeficientes indeterminados
Pretendemos encontrar o polinómio
pn (x)=a0 + a1x + a2x2 + …+ anxn
cujo gráfico contém os pontos (x0 ,f0), (x1 ,f1),…, (xn ,fn) , onde
fi  f xi  para i=0,1, …,n.

Encontrar o polinómio, consiste em determinar os coeficientes


a0 , a1 ,…, an .

Como o gráfico do polinómio contém os pontos dados, temos o seguinte


sistema:

 a0  a1 x0    an x0 n  f 0

 a0  a1 x1    an x1  f1
n


 
a  a x    a x n  f
 0 1 n n n n
1 x0 ... x0 n   a0   f 0 
 n   f 
 1 x ... x a
1  1 
1
  1
          
 n    
1 xn ... xn   n   f n 
a

Podemos provar que se x0 , x1 , … , xn são distintos, então o sistema é possível


e determinado. Resolvendo o sistema, obtemos o polinómio desejado.

A matriz 1 x0 ... x0 n  chama-se matriz de Vandermonde.


 n
1 x1 ... x1 
    
 n
1 xn ... xn 
Para um número muito elevado de pontos a resolução do sistema leva
muito tempo e, além disso, o sistema também é mal condicionado
(pequenos erros nos dados de entrada produzem grandes erros nos
resultados), o que torna este método pouco utilizado em termo práticos.
Exemplo. Dada a tabela

x 2.2 2.3 2.4 2.5 2.6

log x  0.34242 0.36173 0.38021 0.39794 0.41497

calcule um valor aproximado de log(2.45).

Vamos calcular o polinómio interpolador de grau menor ou igual a 3,


pelo que precisamos de 4 pontos.

Utilizamos os nós mais próximos: 2.3, 2.4, 2.5 e 2.6.


Temos as seguintes equações:

 a0  2.3a1  2.32 a2  2.33 a3  0.36173



 a0  2.4a1  2.4 a2  2.4 a3  0.38021
2 3


 0
a  2 .5a1  2. 5 2
a 2  2 .5 3
a3  0.39794
a0  2.6a1  2.6 2 a2  2.63 a3  0.41497

Como o sistema é possível e determinado, o polinómio existe e é único. A


solução do sistema é:

a0  0.33540
 a  0.50502
 1

a2  0.09750
 a3  0.00833
Assim, o polinómio pretendido é:
p3 ( x)  0.33540  0.50502x  0.09750x 2  0.00833x 3 .

Podemos então afirmar que log(2.45)  p3 (2.45)  0.38916.

Comparando este valor com o valor exacto, log(2.45)  0.38916608...

verifica-se que o erro cometido é inferior a 0.7 105.


Polinómio interpolador de Lagrange
Considerem-se os n+1 pontos distintos
x0 , f x0 , x1 , f x1 ,..., xn , f xn 
e o polinómio dado por
n
pn ( x)  f 0 L0 ( x)  f1 L1 ( x)    f n Ln ( x)   f k Lk ( x),
k 0

onde

( x  x0 ) ( x  x1 )  ( x  xk 1 ) ( x  xk 1 )  ( x  xn )
Lk ( x)  , k  0,1,..., n
( xk  x0 ) ( xk  x1 )  ( xk  xk 1 ) ( xk  xk 1 )  ( xk  xn )

Verifica-se que
 0 se k  j
Lk ( x j )  
 1 se k  j
Deste modo temos:

pn(xj) = f0L0(xj) + f1L1(xj) + ... + fjLj(xj) +...+ fnLn(xj)


 f j L j x j 
 f x j 
Logo pn satisfaz a condição de interpolação, sendo assim o polinómio
interpolador de f nos nós x0, x1, ..., xn.

Os polinómios Lk chamam-se polinómios de Lagrange.


Exemplo. Considere-se a seguinte tabela de pontos. Pretende-se
determinar uma aproximação para f(0.3) usando o polinómio de Lagrange.
xk 0.0 0.2 0.4
fk 4.00 3.84 3.76

( x  x1 )( x  x2 ) ( x  0.2)( x  0.4) 1
L0 ( x)    ( x 2  0.6 x  0.08)
( x0  x1 )( x0  x2 ) (0  0.2)(0  0.4) 0.08
( x  x0 )( x  x2 ) ( x  0)( x  0.4) 1
L1 ( x)    ( x 2  0 .4 x )
( x1  x0 ) ( x1  x2 ) (0.2  0)(0.2  0.4) 0.04
( x  x0 )( x  x1 ) ( x  0)( x  0.2) 1
L2 ( x)    ( x 2  2 .6 x )
( x2  x0 )( x2  x1 ) (0.4  0)(0.4  0.2) 0.08

Fazendo p2 ( x)  f ( x0 ) L0 ( x)  f ( x1 ) L1 ( x)  f ( x2 ) L2 ( x),

obtem-se p2 ( x)  x  x  4.
2

Para x = 0,3  [0, 0.4] , tem-se f(0.3) ≈ p2 (0.3) = 3.79.


Polinómio interpolador de Newton
Apresenta-se de seguida outro método para determinar o polinómio
interpolador. Tal polinómio será chamado polinómio interpolador de
Newton.

Este método exige um menor esforço computacional e facilita a introdução


de novos pontos.
O polinómio interpolador de Newton da função f nos pontos
(x0 , f(x0)), (x1 , f(x1)) ,…, (xn , f(xn)) é dado por

pn ( x)  d0  d1 ( x  x0 )  d2 ( x  x0 )(x  x1 )  ...  dn ( x  x0 )(x  x1 )...( x  xn1 )

Tem-se pn(xi) = f(xi), para i= 0,1,…,n . Assim,

pn(x0) = f(x0)  d0 = f(x0)  f[x0]

pn(x1) = f(x1)  f(x1) = d0 + d1(x1 - x0)

 d1 = f ( x1 )  f ( x0 )
 f[x0, x1]
x1  x0

pn(x2) = f(x2)  f(x2) = d0 + d1(x2 - x0) + d2(x2- x0) (x2 – x1)

 f ( x2 )  f ( x0 ) [ f ( x1 )  f ( x0 )]( x2  x0 )
d2 = 
( x2  x0 )( x2  x1 ) ( x1  x0 )( x2  x0 )( x2  x1 )
f ( x2 )  f ( x0 ) [ f ( x1 )  f ( x0 )]( x2  x0 )
 d2  
( x2  x0 )( x2  x1 ) ( x1  x0 )( x2  x0 )( x2  x1 )

1  f ( x2 )  f ( x1 )  f ( x1 )  f ( x0 ) [ f ( x1 )  f ( x0 )]( x2  x0 ) 
   
x2  x0  ( x2  x1 ) ( x1  x0 )( x2  x1 ) 

1  f ( x2 )  f ( x1 ) [ f ( x1 )  f ( x0 )]  ( x2  x0 )  
   1  
x2  x0  ( x2  x1 ) ( x2  x1 )  ( x1  x0 
)

1  f ( x2 )  f ( x1 ) f ( x1 )  f ( x0 ) 
   
x2  x0  ( x2  x1 ) ( x1  x0 ) 


1
 f [ x1 , x2 ]  f [ x0 , x1 ]  f [ x0 , x1 , x2 ]
x2  x0
Continuando deste modo, obtêm-se os coeficientes, chamados diferenças
divididas:

d 0  f [ x0 ]
d1  f [ x0 , x1 ]
d 2  f [ x0 , x1 , x2 ]

d n  f [ x0 , x1 ,..., xn 1 , xn ]

onde

f [ x1 , x2 ,..., xk ]  f [ x0 , x1 ,..., xk 1 ]
f [ x0 , x1 ,..., xk ]  , k  1,2,..., n.
xk  x0
Verifica-se que se  é uma permutação do conjunto
{0, 1, ..., n}, então

f [ x0 , x1 ,..., xn 1 , xn ]  f [ x ( 0) , x (1) ,..., x ( n ) ].


Desta forma, o polinómio de Newton é dado por:

pn ( x)  f [ x0 ]  f [ x0 , x1 ]( x  x0 )  f [ x0 , x1 , x2 ]( x  x0 )( x  x1 )  .... 
 f [ x0 , x1 ,..., , xn ]( x  x0 )( x  x1 )...( x  xn 1 )

As diferenças divididas são facilmente calculadas através de uma tabela


recursiva.

No que segue, utiliza-se a seguinte notação:

fi  f xi 

f i ,i 1,...,i  j  f [ xi , xi 1..., xi  j ]
x Ordem 0 Ordem 1 Ordem 2 Ordem 3 Ordem 4

x0 f0
f 0 ,1
x1 f1 f 0,1, 2
f1, 2 f 0,1, 2,3
x2 f2 f1, 2,3 f 0,1, 2,3, 4
f 2,3 f1, 2,3, 4
x3 f3 f 2 , 3, 4
f 3, 4
x4 f4
Estudo do erro de truncatura da
interpolação polinomial
Teorema
Seja f uma função contínua com derivadas contínuas até à ordem n+1 no
intervalo [a,b]. Seja pn o polinómio interpolador de f nos nós
a = x0< x1< ...< xn= b. Então, para cada x  a, b existe   a, b  tal que

en ( x )  f ( x)  pn ( x)
f ( n 1) ( )
 ( x  x0 ) ( x  x1 )  ( x  xn )
(n  1)!
f ( n 1) ( )
en ( x )  ( x  x0 ) ( x  x1 )  ( x  xn ) ,    x0 , xn 
(n  1)!

é pouco usado na prática, porque raramente ξ é conhecido. A sua principal


aplicação é na estimativa do erro de truncatura para as fórmulas de
interpolação, integração e diferenciação numérica.
Assim, é usual trabalhar com um limite superior para o erro de truncatura,
dado por:

en  x   f  x   pn  x   M  x  x0 ... x  xn 

onde

max f
x x0 , xn 
 n 1
x 
M  .
n  1!
Caso a expressão analítica da função f não seja conhecida, temos a seguinte
estimativa para o erro:

en ( x )  M  x  x0 ...  x  xn 

onde M é o maior módulo das diferenças divididas de ordem n+1, pois

f ( n 1) ( )
en ( x )  ( x  x0 ) ( x  x1 )  ( x  xn ) ,    x0 , xn 
(n  1)!

en ( x )  f [ x0 , x1 ,  , xn , x] ( x  x0 ) ( x  x1 )  ( x  xn )

implica

f ( n1) ( )
 f [ x0 , x1 ,, xn , x]
(n  1)!
Interpolação inversa
Dados n+1 pontos distintos x0 , f0 , x1, f1 ,..., xn , f n  com xi  a,b.

O problema da interpolação inversa:

Dado y  a, b , obter x tal que f ( x )  y .

Uma solução para este problema:

Obter o polinómio interpolador pn de f nos nós x0 , x1 ,..., xn e depois


encontrar x tal que pn  x  ≈ y .

Neste caso, não é possível fazer uma estimativa do erro cometido. Podemos

obter uma estimativa do erro da aproximação de f(x) por pn(x), e não uma
estimativa do erro da aproximação x .
Se f é invertível num intervalo contendo y , podemos fazer a interpolação de

x  f 1 ( y)  g ( y).

Uma condição suficiente para que uma função contínua num intervalo [a,b]
seja invertível é que a função seja monótona crescente (ou decrescente) nesse
intervalo.
Se f é invertível, o problema de obter f ( x )  y é facilmente
resolvido, construindo o polinómio pn que interpola f 1 no

intervalo [ f x0  , f xn ].

Para isso, basta considerar x como uma função de y e aplicar algum dos
métodos estudados para interpolação:

x  f 1 ( y )  pn ( y)
Desta forma, o erro de truncatura cometido pode ser medido, utilizando as expressões
desenvolvidas anteriormente. Uma estimativa para o erro é dada por:

max g ( n1) (t )
t  f 0 , f n 
en ( y )  ( y  f 0 )( y  f1 )( y  f n )
(n  1)!

onde f i  f ( xi ) para i  0,1,..., n.

Você também pode gostar