Interpolacao
Interpolacao
Interpolacao
Interpolação
Profa Aline Brum Loreto e Profa Ana Luisa Soubhia
1 Introdução
A Tabela 1 relaciona calor especı́fico da água e temperatura. Vamos supor que desejamos
saber o calor especı́fico da água com temperatura 32o C. Ou, ainda, queremos determinar a
temperatura para qual o calor especı́fico é 0.998737. Para isso, podemos utilizar a interpolação.
Temperatura (o C) 20 25 30 35 40 45 50
Calor especı́fico 0.99907 0.99852 0.99826 0.99818 0.99828 0.99849 0.99878
Interpolar uma função f (x) consiste em aproximar essa função por uma função g(x), esco-
lhida dentro de uma classe de funções definida a priori, que satisfaça algumas propriedades. A
função g(x) é, então, usada no lugar da função f (x).
A interpolação pode ser usada quando temos os valores numéricos de uma função não
conhecida para um conjunto de pontos, e desejamos obter o valor dessa função em um ponto
não calculado. Além disso, podemos utilizar a técnica de interpolação quando a função estudada
tem uma complexidade e operações como diferenciação e/ou integração são difı́ceis de serem
executadas.
1
2 Conceito de interpolação
Sejam (n+1) pontos distintos denominados nós (x0 , x1 , . . . , xn ) e os valores f (x0 ), f (x1 ), . . . , f (xn ),
a interpolação consiste em obter uma função g(x) de forma que:
g(x0 ) = f (x0 )
g(x1 ) = f (x1 )
..
.
g(xn ) = f (xn )
isto é, o valor de g(xi ) é igual ao valor de f (xi ) para i = 0, 1, . . . , n. Esse fato por ser observado
na Figura 1. Notem que, a função g(x) é diferente da curva da função f (x), porém essas
duas funções cruzam os pontos predefinidos. Nesta disciplina, vamos estudar a interpolação
polinomial, ou seja, g(x) será um polinômio.
Figura 1: Interpolação
Dados os pontos (x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn )), no caso da interpolação polinomial
o objetivo é aproximar a função f (x) por um polinômio de grau menor ou igual a n (pn (x)), de
forma que:
3 Métodos de interpolação
Neste texto, vamos estudar três métodos de obtenção do polinômio interpolador. O primeiro
deles consiste em resolução de sistema linear. Depois, vamos estudar o método de Lagrange.
2
Por fim, vamos estudar o método de Newton.
x −1 0 2
f (x) 4 1 −1
Tabela 2: Exemplo 1
p2 (x) = a0 + a1 x + a2 x2 . (1)
3
Observem que, como esperado, p2 (0) = f (0) = 1. O mesmo deve ocorrer com os outros pontos
apresentados na Tabela 2. Vale salientar que, como estudamos em textos anteriores, nem
sempre é simples a resolução do sistema linear para se obter o polinômio. Além disso, a solução
pode não ser exata.
Exemplo 2: Encontrar o polinômio de grau menor ou igual a 3 que interpola os dados da
Tabela 3.
Tabela 3: Exemplo 2
p3 (x) = a0 + a1 x + a2 x2 + a3 x3 . (3)
A partir da Tabela 3, temos que x0 = 0.1, f (x0 ) = 5, x1 = 0.2, f (x1 ) = 13, x2 = 0.3,
f (x2 ) = −4, x3 = 0.4 e f (x3 ) = −8. Com isso, a partir da Equação (3) e da Equação (4),
obtemos:
p3 (0.1) = f (0.1) = 5 ⇐⇒ a0 + 0.1a1 + 0.01a2 + 0.001a3 = 5
p (0.2) = f (0.2) = 13 ⇐⇒ a + 0.2a + 0.04a + 0.008a = 13
3 0 1 2 3
p3 (0.3) = f (0.3) ⇐⇒ a0 + 0.3a1 + 0.09a2 + 0.027a3 = −4
p (0.4) = f (0.4) ⇐⇒ a + 0.4a + 0.16a + 0.064a = −8
3 0 1 2 3
Ou seja, temos o seguinte sistema linear de quatro equações e quatro incógnitas para resolver:
a0 + 0.1a1 + 0.01a2 + 0.001a3 =5
a + 0.2a + 0.04a + 0.008a
0 1 2 3 = 13
a0 + 0.3a1 + 0.09a2 + 0.027a3 = −4
a + 0.4a + 0.16a + 0.064a
0 1 2 3 = −8
Se resolvermos esse sistema utilizando o método de eliminação de Gauss, com uma aritmética
de ponto flutuante com três dı́gitos na mantissa, obtemos o seguinte polinômio:
p3 (x) = −0.66 × 102 + (0.115 × 104 )x − (0.505 × 104 )x2 + (0.633 × 104 )x3 .
4
Note que, para x = 0.4, p3 (0.4) = −10 e f (0.4) = −8, ou seja, p3 (0.4) 6= f (0.4). Isso ocorre,
pois no processo de eliminação de Gauss a matriz escalonada tem números muito próximos de
zero. Com isso, durante a execução do método, pode haver problemas de arredondamento.
Exemplo 3: A Tabela 4 fornece valores da função f (x) = ex , a partir da qual se deseja
obter uma aproximação para o ponto x = 1.32.
Tabela 4: Exemplo 3
Neste caso, como temos 3 pontos fornecidos (x0 = 1.3, f (x0 ) = 3.669, x1 = 1.4, f (x1 ) =
4.055, x2 = 1.5 e f (x2 ) = 4.482), podemos obter um polinômio de grau menor ou igual a 2.
Com isso, a partir da Equação (1) e da Equação (2), temos:
2
p2 (1.3) = f (1.3) = 3.669 ⇐⇒ a0 + a1 (1.3) + a2 (1.3) = 3.669
p2 (1.4) = f (1.4) = 4.055 ⇐⇒ a0 + a1 (1.4) + a2 (1.4)2 = 4.055
p2 (1.5) = f (1.5) = 4.482 ⇐⇒ a0 + a1 (1.5) + a2 (1.5)2 = 4.482
5
3.2 Método de Lagrange
Sejam (n + 1) pontos distintos denominados nós (x0 , x1 , . . . , xn ) e os valores de yi = f (xi )
com f (x0 ), f (x1 ), . . . , f (xn ). A interpolação pelo método de Lagrange consiste em obter um
polinômio pn (x) de forma que:
onde os polinômios Lk (x) são de grau n. Ou seja, como os yi são dados, no método de Lagrange
devemos determinar os polinômios Lk (x).
Para este método, o objetivo é que as igualdades pn (xi ) = yi sejam satisfeitas, isto é:
2
X
p2 (x) = yk Lk (x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x)
k=0
= 4L0 (x) + 1L1 (x) + (−1)L2 (x), (6)
6
onde:
(x − x1 )(x − x2 ) (x − 0)(x − 2) x2 − 2x
L0 (x) = = =
(x0 − x1 )(x0 − x2 ) (−1 − 0)(−1 − 2) 3
(x − x0 )(x − x2 ) (x + 1)(x − 2) x2 − x − 2
L (x) =
1 = =
(x1 − x0 )(x1 − x2 ) (0 + 1)(0 − 2) −2
(x − x0 )(x − x1 ) (x + 1)(x − 0) x2 + x
L2 (x) = = =
(x2 − x0 )(x2 − x1 ) (2 + 1)(2 − 0) 6
x2 − 2x x2 − x − 2 x2 + x
p2 (x) = 4 +1 + (−1) .
3 −2 6
7 2
p2 (x) = 1 − x + x2 .
3 3
Notem que, o resultado obtido é análogo ao resultado obtido a partir da resolução do sistema
linear.
7
As diferenças divididas de ordem 1 são escritas como:
Observem que, para obter as diferenças divididas de ordem 1, utilizamos as diferenças divididas
de ordem 0.
As diferenças divididas de ordem 2 são:
f [x1 , x2 ] − f [x0 , x1 ]
f [x0 , x1 , x2 ] =
x2 − x0
f [x2 , x3 ] − f [x1 , x2 ]
f [x1 , x2 , x3 ] =
x3 − x1
..
.
f [xn−1 , xn ] − f [xn−2 , xn−1 ]
f [xn−2 , xn−1 , xn ] =
xn − xn−2
Notem que, para obter as diferenças divididas de ordem 2, utilizamos as diferenças de ordem 1.
Dessa forma, podemos construir a tabela do operador de diferenças divididas até a diferença
dividida de ordem n dada por:
8
A forma de Newton para o polinômio de ordem n que interpola f (x) é dada por:
x −1 0 1 2 3
f (x) 1 1 0 −1 −2
9
As diferenças divididas de ordem 2 são:
f [x1 , x2 ] − f [x0 , x1 ] −1 − 0 1
f [x , x , x ] = = = −
0 1 2
x2 − x0 1 − (−1) 2
f [x , x , x ] = f [x2 , x3 ] − f [x1 , x2 ] = −1 − (−1) = 0
1 2 3
x3 − x1 2−0
f [x3 , x4 ] − f [x2 , x3 ] −1 − (−1)
f [x2 , x3 , x4 ] = = =0
x 4 − x 2 3 − 1
Na Tabela 7 é possı́vel observar a tabela completa com as diferenças divididas desse exemplo.
Logo, a forma de Newton que interpola os pontos da Tabela 6, a partir da Equação (7), é
10
escrita como:
Ou seja,
x 1 2 3 4
ln(x) 0 0.6931 1.0986 1.3863
Para realizar interpolação linear, precisamos utilizar dois pontos da tabela. Como x = 3.7
pertence ao intervalo [3, 4], vamos escolher x0 = 3 e x1 = 4, logo f (x0 ) = 1.0986 e f (x1 ) =
1.3863. Utilizando o método de Newton (Equação (7)), o polinômio linear pode ser obtido da
seguinte forma:
p1 (x) = f (x0 ) + (x − x0 )f [x0 , x1 ],
11
Figura 2: Erros na interpolação
onde:
f (x1 ) − f (x0 ) 1.3863 − 1.0986
f [x0 , x1 ] = = = 0.2877.
x1 − x0 4−3
Portanto, o polinômio linear é dado como:
Entretanto, vale salientar que só é possı́vel utilizar a Equação (8) para calcular o erro se o valor
de f (x) no ponto estudado for conhecido.
Se o valor de f (x) no ponto estudado não for conhecido, temos a seguinte fórmula para o
erro:
|En (x)| ≈ |(x − x0 )(x − x1 ) . . . (x − xn )|(max |dif. divididas ordem n + 1|), (9)
onde max |dif. divididas ordem n + 1| significa o maior valor em módulo entre as diferenças
dividades de ordem n + 1.
Exemplo: Seja f (x) dada na Tabela 9. O objetivo é obter f (0.47) usando um polinômio
de grau 2 e encontrar uma estimativa para o erro.
Como queremos calcular f (0.47), é aconselhável utilizarmos o intervalo [0.4, 0.52] e o terceiro
ponto pode ser 0.34 ou 0.6. Aqui, vamos definir x0 = 0.4, x1 = 0.52 e x2 = 0.6.
Utilizando o método de Newton (Equação (7)), o polinômio quadrático pode ser obtido da
12
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
seguinte forma:
onde:
f (x1 ) − f (x0 ) f [x1 , x2 ] − f [x0 , x1 ]
f [x0 , x1 ] = e f [x0 , x1 , x2 ] =
x1 − x0 x2 − x0
Na Tabela 10, é possı́vel observar todas as diferenças divididas até a ordem 3 (n + 1). Em
destaque (vermelho) nas coluna da ordem 0, 1 e 2 estão o resultados utilizados para obter o
polinômio quadrático:
Entre os valores das diferenças divididas de ordem n+1, que é 3, o de maior valor em módulo
é 18.2494 em destaque (em azul) na Tabela 10. Agora, a partir da Equação (9) podemos estimar
o erro da seguinte forma:
Para escolher o grau do polinômio interpolador, caso essa informação não seja fornecida,
13
devemos construir a tabela das diferenças divididas e, depois, analisar essas diferenças em torno
do ponto de interesse. Por exemplo, se todas as diferenças divididas de ordem 3 variarem pouco,
devemos construir um polinômio de ordem 2. Ou seja, se as diferenças divididas de ordem k + 1
sofrerem pouca variação, devemos construir um polinômio de ordem k.
5 Interpolação inversa
Em todos os exemplos desse texto, procuramos um polinômio interpolador com o objetivo de
obter uma aproximação para um valor da função f (x) em um ponto pedido. Assim, escolhemos
os pontos xi para interpolação de acordo com esse ponto. No exemplo anterior, o objetivo era
calcular f (0.47). Com isso, escolhemos um intervalo que continha x = 0.47 para determinar os
pontos x0 = 0.4, x1 = 0.52 e x2 = 0.6.
No caso da interpolação inversa, o objetivo é encontrar o valor de x para um determinado
valor de f (x). Assim, a escolha dos pontos para a interpolação será definido a partir dos valores
de f (x) fornecidos. Após a escolha dos pontos, podemos aplicar qualquer um dos métodos de
interpolação estudados.
Exemplo: Dada a Tabela 11, utilizando interpolação linear, o objetivo é encontrar x tal
que f (x) = 2.
Para interpolação linear, precisamos escolher dois pontos da tabela referida. Como o ob-
jetivo é calcular f (x) = 2, vamos analisar a segunda linha da tabela que é referente a f (x) e
vamos escolher dois valores em que 2 esteja contido. Neste caso, podemos escolher f (x) = 1.82
e f (x) = 2.01. O x referente a f (x) = 1.82 é x = 0.6 e o x referente a f (x) = 2.01 é x = 0.7,
logo, definimos x0 = 0.6 e x1 = 0.7.
Definidos os pontos para interpolação, podemos aplicar qualquer um dos métodos estudados.
Neste exemplo, vamos usar o método de Lagrange, onde y0 = f (x0 ) = 1.82 e y1 = f (x1 ) = 2.01.
Portanto, o objetivo é obter o polinômio:
14
com
(x − x1 ) (x − 0.7)
L0 (x) = =
(x0 − x1 ) 0.6 − 0.7
(x − x0 ) (x − 0.6)
L1 (x) = =
(x1 − x0 ) 0.7 − 0.6
(x − 0.7) (x − 0.6)
p1 (x) = 1.82 + 2.01
−0.1 0.1
= −18.2x + 12.74 + 20.1x − 12.06
= 1.9x + 0.68.
6 Exercı́cios
1. Considere os dados da Tabela 12.
x 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8
ex 11.02 13.46 16.44 20.08 24.53 29.96 36.59 44.70
(a) Calcule e3.1 utilizando um polinômio interpolador por dois pontos, por meio do método
do sistema linear.
(b) Calcule e3.1 utilizando um polinômio interpolador por três pontos, por meio do método
do sistema linear.
(c) Calcule e3.1 utilizando um polinômio interpolador por quatro pontos, por meio do método
do sistema linear.
(d) Calcule e3.1 utilizando um polinômio interpolador por quatro pontos, por meio do método
de Lagrange.
15
x 0.0 0.5 1.0 1.5 2.0 2.5
f (x) −2.78 −2.241 −1.65 −0.594 1.34 4.564
(b) Justifique o grau do polinômio que você escolheu para o item (a).
x −1 0 2
f (x) 4 1 −1
(a) Resolvendo por meio do método do sistema linear, encontre o polinômio de grau 2 que
interpola os dados da tabela dada.
(b) Resolvendo por meio do método de Lagrange, encontre o polinômio de grau 2 que
interpola os dados da tabela dada.
(c) Usando a forma de Newton, obtenha o polinômio p2 (x) que interpola f (x) nos pontos
dados.
16
Respostas:
1.(a) Tomando os pontos (3.0, 20.08) e (3.2, 24.53), supondo o polinômio p1 (x) = a0 + a1 x,
obtemos o sistema linear: (
a0 + 3.0a1 = 20.08
a0 + 3.2a1 = 24.53
Resolvendo o sistema pelo método de Eliminação de Gauss, encontramos a0 = −46.67 e a1 =
22.25, portanto o polinômio interpolador é p1 (x) = −46.67 + 22.24x. Enfim, p1 (3.1) = 22.31.
1.(b) Tomando os pontos (2.8, 16.44), (3.0, 20.08) e (3.2, 24.53), supondo o polinômio quadrático
p2 (x) = a0 + a1 x + a2 x2 , obtemos o sistema linear:
2
a0 + 2.8a1 + (2.8) a2 = 16.44
a0 + 3.0a1 + (3.0)2 a2 = 20.08
a0 + 3.2a1 + (3.2)2 a2 = 24.53
1.(c) Tomando os pontos (2.8, 16.44), (3.0, 20.08), (3.2, 24.53) e (3.4, 29.96), supondo o po-
linômio p3 (x) = a0 + a1 x + a2 x2 + a3 x3 , obtemos o sistema linear:
a0 + 2.8a1 + (2.8)2 a2 + (2.8)3 a3 = 16.44
a + 3.0a + (3.0)2 a + (3.0)3 a
= 20.08
0 1 2 3
2 3
a0 + 3.2a1 + (3.2) a2 + (3.2) a3 = 24.53
a + 3.4a + (3.4)2 a + (3.4)3 a
= 29.96
0 1 2 3
17
(x − 3.0)(x − 3.2)(x − 3.4)
L0 (x) =
(2.8 − 3.0)(2.8 − 3.2)(2.8 − 3.4)
(x − 2.8)(x − 3.2)(x − 3.4)
L1 (x) =
(3.0 − 2.8)(3.0 − 3.2)(3.0 − 3.4)
(x − 2.8)(x − 3.0)(x − 3.4)
L2 (x) =
(3.2 − 2.8)(3.2 − 3.0)(3.2 − 3.4)
(x − 2.8)(x − 3.0)(x − 3.2)
L3 (x) =
(3.4 − 2.8)(3.4 − 3.0)(3.4 − 3.2)
2.(a) Escolhendo x0 = 0.5, x1 = 1.0, x2 = 1.5 e x3 = 2.0, obtemos f (1.23) ≈ −1.247 com
|E(1.23)| ≈ 2.327 × 10−5 .
Referências
[1] Cunha, M. C. C. Métodos numéricos. 2a Ed., Campinas, SP: Editora Unicamp, 2000.
18