1
Métodos Computacionais em Engenharia – DCA0304
Capítulo 3
3. Interpolação
3.1. Introdução
Quando se trabalha com sistemas onde não é conhecida uma função que descreva seu
comportamento, podemos utilizar o conceito de interpolação. Há casos também em que a
forma analítica de uma determinada função é muito complexa, e podemos substituí-la por
uma função aproximada que possua uma forma analítica mais simples.
Seja uma função y = f (x) dada pela tabela:
i
xi
yi
0
x0
y0
1
2
3
x1
x2
x3
y1
y2
y3
Quando o problema consistir em determinar f (x ) sendo x ∈ ( x0 , x3 ) com x = xi ,
i = 0,1,2,3 , estamos nos deparando com um problema de interpolação. Quando o problema
consistir em determinar f (x ) sendo x ∉ ( x0 , x3 ) estamos nos deparando com um problema
de extrapolação e não será nosso objeto de estudo.
3.2. Interpolação Linear
O termo interpolação linear encontrado nas literaturas é um tanto quanto inadequado
para essa aproximação. Um termo mais adequado seria interpolação de primeiro grau ou
interpolação afim. Uma função do primeiro grau é linear, quando passa pela origem.
A interpolação dita linear é obtida pela aproximação de uma determinada função onde
se conhecem dois pontos por uma função de primeiro grau, ou seja: dados dois pontos
distintos de uma função y = f ( x) : ( x0 , y 0 ) e ( x1 , y1 ) , deseja-se calcular o valor de y para
um determinado valor de x entre x0 e x1 usando um polinômio de primeiro grau.
O polinômio em questão é dado por:
P1 ( x) = a 1 x + a 0
Para obter os coeficientes de P1 ( x) devemos fazer:
P1 ( x0 ) = y 0 =a 1 x0 + a 0
P1 ( x1 ) = y1 = a 1 x1 + a 0
Dessa forma encontramos os coeficientes resolvendo o sistema:
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
2
a1 x0 + a 0 = y 0

a1 x1 + a 0 = y1
Este sistema tem matriz dos coeficientes:
 x 1
A= 0 
 x1 1
O determinante de A é dado por x0 − x1 , ou seja, sempre que x0 ≠ x1 o determinante
será diferente de zero e conseqüentemente o sistema possui solução única.
Exemplo 3.1
Seja a função y = f (x) definida pelos pontos (0,00;1,35) e (1,00;2,94). Determinar
aproximadamente o valor de f (0,73) . Tomando como referência um polinômio interpolador
de primeiro grau teremos: P1 ( x) = a1 x + a 0 . Logo:
P1 (0) = a 1 .0 + a 0 = 1,35
P1 (1) =a 1 .1 + a 0 = 2,94
Assim temos que: a 0 = 1,35 e a1 = 1,59 . Desse modo, P1 ( x) = 1,59 x + 1,35 e
P (0,73) = 1,59.0,73 + 1,35 = 2,51 .
Este resultado possui tanto erro de arredondamento como de truncamento. O erro de
arredondamento é cometido durante a execução das operações e o erro de truncamento é
devido ao fato de o polinômio interpolador ser uma aproximação da função real.
3.2.1. Erro de Truncamento para Interpolação por Polinômio de Primeiro Grau
Supondo que a curva f (x) e o polinômio interpolador P1 ( x) sejam como ilustrado
abaixo:
O erro de truncamento, com pode ser facilmente visto, é dado por:
ET ( x ) = f ( x ) − P1 ( x )
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
3
Sabendo que o erro de truncamento é nulo nos pontos x0 e x1 podemos considerar que
o mesmo é expresso como:
ET ( x) = ( x − x 0 )( x − x1 ). A
em que A é uma constante que queremos determinar.
Considerando uma função auxiliar dada por:
G (t ) = f (t ) − P1 (t ) − ET (t )
e substituindo
P1 (t ) = a 1 t + a 0
ET (t ) = (t − x 0 )(t − x1 ). A t
teremos que G (t ) = f (t ) − (a 1 t + a 0 ) − ( x − x 0 )( x − x1 ). A
É possível provar que G (t ) é diferenciável em ( x0 , x1 ) de modo a existir um certo
ε ∈ ( x0 , x1 ) tal que G" (ε ) = 0 . Assim, encontrando a derivada segunda de G (t ) teremos que:
G" (t ) = f " (t ) − 2 A = 0
o que resulta, fazendo t = ε , em:
A=
f " (ε )
2
Desse modo o erro de truncamento será:
ET ( x) = ( x − x 0 )( x − x1 ).
f " (ε )
2
Exemplo 3.2
Seja a função f ( x) = x 2 − 3 x + 1 , usando os valores x1 = 1 e x 2 = 1,5 , e os valores
correspondentes f ( x1 ) = −1 e f ( x 2 ) = −1,25 , calcule:
a) o valor aproximado para f (1,2)
b) o erro de truncamento cometido no cálculo anterior
a) Aproximando a função f (x) por um polinômio de primeiro grau teremos
P1 ( x) = a1 x + a 0 . Assim:
P1 (1) =a 1 + a 0 = −1
P1 (1,5) = a 1 .1,5 + a 0 = −1,25
Os coeficientes do polinômio são
a 0 = −0,5
e
a1 = −0,5
P1 ( x) = −0,5 x − 0,5 . Desse modo P1 (1,2) = −1,10 .
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
de forma que
4
b) f ( x) = x 2 − 3 x + 1
f ' ( x) = 2 x − 3
f " ( x) = 2, ∀x
ET (1,2) = (1,2 − 1)(1,2 − 1,5).
ET (1,2) = −0,06
2
2
3.3. Interpolação Quadrática
Quando conhecemos, do comportamento de uma função, três pontos distintos,
podemos utilizar um polinômio da forma:
P2 ( x) = a 2 x 2 + a1 x + a 0
De uma maneira geral pode-se provar que conhecendo-se n pontos de uma função
poderemos escreve-la como um polinômio de grau n − 1 .
Para determinar os valores de a 2 , a1 e a 0 deveremos resolver o sistema:
a 2 x0 2 + a1 x0 + a 0 = y 0

2
a 2 x1 + a1 x1 + a 0 = y1

2
a 2 x 2 + a1 x 2 + a 0 = y 2
em que os pontos ( x0 , y 0 ) , ( x1 , y1 ) e ( x 2 , y 2 ) são conhecidos.
A matriz dos coeficientes é dada por:
 x02

A =  x12
 x 22

x0 1

x1 1
x 2 1
O determinante da matriz dos coeficientes é conhecido como o determinante de
Vandermonde e é dado por:
det( A) = ( x1 − x0 )( x 2 − x0 )( x 2 − x1 )
Como os pontos x0 , x1 e x 2 são distintos, logo det( A) ≠ 0 e o sistema terá solução
única.
Exemplo 3.3
Dada a função f ( x) =
2 sen 2 x
, conhece-se a tabela abaixo com seus valores, com três
x +1
casa decimais:
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
5
x
0
π 6
π 4
f (x)
0,00
0,328
0,560
Pede-se para encontrar o polinômio interpolador de segundo grau.
Os coeficientes do polinômio podem ser encontrados resolvendo o sistema abaixo:
 f (0) = a 2 .0 2 + a1 .0 + a 0 = 0

2
 f (π 6) = a 2 .(π 6) + a1 .(π 6) + a 0 = 0,328

2
 f (π 4) = a 2 .(π 4) + a1 .(π 4) + a 0 = 0,560
Resolvendo o sistema por alguns dos métodos estudados no capítulo 2 teremos que:
a0 = 0
a1 = 0,452
a 2 = 0,333
o que resulta no polinômio P2 ( x) = 0,333 x 2 + 0,452 x .
3.3.1. Erro de Truncamento para Interpolação por Polinômio de Segundo Grau
O erro de truncamento para este caso pode ser obtido de maneira análoga a do
polinômio de primeiro grau e é dado por:
ET ( x) = ( x − x 0 )( x − x1 )( x − x 2 ).
f 3 (ε )
6
em que f 3 ( x) é a derivada terceira da função f (x) .
Exemplo 3.4
Determinar o valor aproximado de f (0,2) e o seu respectivo erro de truncamento ao
utilizar uma interpolação quadrática. Os valores tabelados são da função f ( x) = x 2 − 2 x + 1 .
Pede-se para trabalhar com duas casas decimais.
x
0,5
0,3
0,1
f (x)
0,25
0,49
0,81
Para calcular o polinômio interpolador P2 ( x) = a 2 x 2 + a1 x + a 0 deve-se resolver o
sistema de equações:
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
6
0,25a 2 + 0,5a1 + a 0 = 0,25

0,09a 2 + 0,3a1 + a 0 = 0,49
0,01a + 0,1a + a = 0,81
2
1
0

Resolvendo o sistema por alguns dos métodos estudados no capítulo anterior
obteremos o seguinte resultado:
a 0 = 1,00
a1 = −2,00
a 2 = 1,00
Observa-se neste caso que o polinômio interpolador é exatamente igual à função que
se deseja interpolar. Isso ocorre porque o polinômio é de 2º grau e, a partir de três pontos,
consegue-se determina-la sem erro de truncamento. Assim:
P2 ( x) = x 2 − 2 x + 1 ⇒ P2 (0,2) = 0,64
Sem nenhum cálculo é possível verificar que o erro de truncamento é zero. Porém
pode encontrar a derivada terceira da função para verificar.
f ( x) = x 2 − 2 x + 1
f ' ( x) = 2 x − 2
f " ( x) = 2
f ' ' ' ( x) = 0, ∀x
Assim o erro de truncamento é ET ( x) = 0 .
3.4. Interpolação de Lagrange
As interpolações vistas anteriormente são casos particulares da interpolação de
Lagrange. Aqui mostraremos a interpolação por um polinômio de grau menor ou igual a n
sendo dados n + 1 pontos.
Este polinômio pode ser escrito da forma:
Pn ( x) = a n x n + L + a 2 x 2 + a1 x + a 0
ou
n
Pn ( x) = ∑ ai x i
i =0
Para encontrar os coeficientes de Pn (x) devemos achar a solução para o sistema
abaixo, conhecidos os pontos ( xi , y i ) para i = 1,2, L , n .
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
7
a 0 + a1 x0 + a 2 x02 + L + a n x0n = y 0

2
n
a 0 + a1 x1 + a 2 x1 + L + a n x1 = y1

M

2
a + a x + a x + L + a x n = y
1 n
2 n
n n
n
 0
Para provar que o sistema é determinado e possui solução única verificamos se a
matriz dos coeficientes possui determinante diferente de zero. Matriz é dada por:
1 x0

1 x1
A=
M M

1 x n
x02 L x0n 

x12 L x1n 
M O M

x n2 L x nn 
O determinante de A é conhecido como determinante de Vandermonde e é calculado
da forma:
det( A) = ∏ ( xi − x j )
i> j
e como xi ≠ x j para i ≠ j , teremos que det( A) ≠ 0 , logo Pn (x) é único.
Sejam os n + 1 polinômios pi (x) de grau n chamados de polinômios de Lagrange:
 p 0 ( x) = ( x − x1 )( x − x 2 )...( x − x n )
 p ( x) = ( x − x )( x − x )...( x − x )
 1
0
2
n

M

 p n ( x) = ( x − x0 )( x − x1 )...( x − x n −1 )
ou de forma sintética:
n
pi ( x) = ∏ ( x − x j ) com i ≠ j e i = 0,1,2, L, n
j =0
Este polinômios são tais que pi ( xi ) ≠ 0 para todo i e pi ( x j ) = 0 para i ≠ j .
Como o polinômio P (x) que se deseja encontrar é de grau n e contém os pontos
( xi , y i ) para i = 0,1,2, L, n , podemos escreve-lo como uma combinação linear dos
polinômios pi (x) para i = 0,1,2, L , n , ou seja:
n
Pn ( x) = ∑ b i pi ( x)
i =0
desse modo, para encontrar o polinômio interpolador devemos encontrar os valores de bi para
i = 0,1,2, L, n , visto que pi (x) para todo i é facilmente encontrado.
Fazendo,
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
8
n
Pn ( x k ) = ∑ b i pi ( x k ) =b 0 p 0 ( x k ) +b1 p1 ( x k ) + L +b k p k ( x k ) + L +b n p n ( x k )
i =0
porém como pi ( x j ) = 0 para i ≠ j e pi ( xi ) ≠ 0 então:
Pn ( x k ) =b k p k ( x k )
assim,
Pn ( x k )
pk ( xk )
bk =
Como Pn ( xi ) = y i , teremos que:
yi
pi ( xi )
bi =
Assim, teremos que:
n
Pn ( x) = ∑ y i ⋅
i =0
pi ( x)
p i ( xi )
ou ainda:
n
n
(x − x j )
i =0
j =0
( xi − x j )
Pn ( x) = ∑ y i ⋅ ∏
com i ≠ j
que é a fórmula da interpolação de Lagrange.
Exemplo 3.5
Considerando a tabela abaixo:
i
xi
yi
0
1
2
3
0,0
0,2
0,4
0,5
0,000
2,008
4,064
5,125
a) Ache o polinômio interpolador de Lagrange para a função que determina os pontos
tabelados.
b) Calcule P (0,3)
3
3
(x − x j )
i =0
j =0
( xi − x j )
a) P3 ( x) = ∑ y i ⋅ ∏
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
9
P3 ( x) = y 0 ⋅
y2 ⋅
P3 ( x) =
( x − x1 )( x − x 2 )( x − x3 )
( x − x0 )( x − x 2 )( x − x3 )
+ y1 ⋅
+
( x0 − x1 )( x0 − x 2 )( x0 − x3 )
( x1 − x0 )( x1 − x 2 )( x1 − x3 )
( x − x0 )( x − x1 )( x − x3 )
( x − x0 )( x − x1 )( x − x 2 )
+ y3 ⋅
( x 2 − x0 )( x 2 − x1 )( x 2 − x3 )
( x3 − x0 )( x3 − x1 )( x3 − x 2 )
2,008 3
4,064 3
5,125 3
( x − 0,9 x 2 + 0,2 x) +
( x − 0,7 x 2 + 0,1x) +
( x − 0,6 x 2 + 0,08 x)
0,012
− 0,008
0,015
P3 ( x) = x 3 + 10 x
b) P3 (0,3) = 3,027
3.4.1. Erro de Truncamento para Interpolação de Lagrange
O erro de truncamento pode ser demonstrado do mesmo modo que os erros de
truncamento para a interpolação por polinômios de primeiro e segundo grau. O erro de
truncamento no caso generalizado de Lagrange é dado por:
ET = ( x − x0 )( x − x 2 ) L ( x − x n ).
f ( n +1) (ε )
(n + 1)!
em que f ( n+1) ( x) é a n + 1 derivada de f (x) .
3.5. Diferenças Divididas
O conceito de diferença dividida é baseado na definição de derivada. Definimos a
diferença dividida de primeira ordem como sendo:
f [ xi , xi +1 ] =
yi +1 − yi
xi +1 − xi
Ainda podemos utilizar a seguinte notação f [ xi , xi +1 ] = ∆/yi . A diferença dividida de
ordem zero é definida como ∆/0 y i = f [ xi ] = y i . As diferenças divididas de ordem superior são
definidas em função de diferenças divididas de ordem inferior, ou seja, de uma maneira geral
teremos que:
∆/n y i = f [ xi , xi +1 , L , xi + n ] =
∆/n −1 y i +1 − ∆/n −1 y i
xi + n − xi
3.6. Fórmula de Newton para Interpolação com Diferenças Divididas
Sejam os pontos ( xi , y i ) para i = 0,1, L , n e Pn (x) o polinômio interpolador de grau
n que conterá estes pontos. O polinômio interpolador de Newton é dado por:
Pn ( x) = a 0 + a1 ( x − x0 ) + a 2 (x − x0 )(x − x1 ) + L + a n (x − x0 )(x − x1 )L ( x − x n −1 )
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
10
ou se forma sintética:
n
i −1
i =0
j =0
Pn ( x) = ∑ ai ∏ (x − x j )
Deseja-se encontrar os coeficientes ai para i = 0,1, L , n . Como o objetivo da
interpolação é fazer com que os pontos conhecidos sejam também pontos do polinômio
interpolador, teremos que Pn ( xi ) = y i , assim:
Para x = x0 teremos que Pn ( x0 ) = y 0 = a0
Para x = x1 teremos que Pn ( x1 ) = y1 = a0 + a1 ( x − x0 ) , ou seja, como a 0 = y 0 então:
a1 = ∆/y 0 =
y1 − y 0
x1 − x0
Para x = x1 teremos que Pn ( x 2 ) = y 2 = a 0 + a1 ( x 2 − x0 ) + a 2 ( x 2 − x0 )( x 2 − x1 ) , então:
( x 2 − x0 )( x 2 − x1 )a 2 = y 2 − y 0 − ∆/y 0 ( x 2 − x0 )
( x 2 − x0 )( x 2 − x1 )a 2 = y 2 − y1 − ∆/y 0 ( x 2 − x0 ) + y1 − y 0
( y − y0 )
( x 2 − x0 )( x 2 − x1 )a 2 = y 2 − y1 − ∆/y 0 ( x 2 − x0 ) + 1
.( x1 − x0 )
( x1 − x0 )
( x 2 − x0 )( x2 − x1 )a 2 = y 2 − y1 − ∆/y 0 ( x2 − x0 − x1 + x0 )
( x 2 − x0 )( x 2 − x1 )a 2 = y 2 − y1 − ∆/y 0 ( x 2 − x1 )
Como ∆/y1 =
y 2 − y1
então ( x 2 − x0 )a 2 = ∆/y1 − ∆/y 0 o que implica que:
x 2 − x1
a 2 = ∆/2 y 0 =
∆/y1 − ∆/y 0
x 2 − x0
De maneira análoga podemos concluir que:
a n = ∆/n y 0 =
∆/n −1 y1 − ∆/n −1 y 0
x n − x0
Dessa forma, o polinômio interpolador de Newton pode ser calculado por:
n
i −1
i =0
j =0
Pn ( x) = ∑ ∆/i y 0 ∏ (x − x j )
Exemplo 3.6
Determinar o valor aproximado de f (0,4) pelo método de Newton, usando todos os
pontos tabelados da função f (x) .
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
11
Devemos em primeiro lugar montar a tabela com todas as possíveis diferenças
divididas e em seguida aplicarmos a fórmula do método se Newton . A tabela é a seguinte:
i
xi
yi
∆/y i
0
1
2
3
4
0,0
0,2
0,3
0,5
0,6
1,008
1,064
1,125
1,343
1,512
0,28
0,61
1,09
1,69
-
∆/2 y i
1,1
1,6
2,0
-
∆/3 y i
1,0
1,0
-
∆/4 y i
0,0
-
f (0,4) = P4 (0,4) = y 0 + (0,4 − x0 ).∆/y 0 + (0,4 − x0 )(0,4 − x1 ).∆/2 y 0 +
(0,4 − x0 )(0,4 − x1 )(0,4 − x 2 ).∆/3 y 0 +
(0,4 − x0 )(0,4 − x1 )(0,4 − x 2 )(0,4 − x3 ).∆/4 y 0
f (0,4) = P4 (0,4) = 1,216
3.6.1. Erro de Truncamento para Interpolação pelo Polinômio de Newton
O erro de truncamento é calculado da mesma forma que na interpolação pelo
polinômio de Lagrange. Isso ocorre por se tratar do mesmo problema, ou seja, conhece-se
(n + 1) pontos tabelados e deseja-se encontrar um polinômio interpolador de grau n .
3.7. Interpolação pela Fórmula de Gregory-Newton
Este é um caso particular da interpolação pelo método de Newton. Neste caso
consideram-se pontos igualmente espaçados. Neste caso, teríamos que xi +1 − xi = h em que h
é uma constante.
Neste caso, definiremos uma variável auxiliar:
z=
x − x0
h
Logo,
( x − x0 ) = zh
( x − x1 ) = ( x − ( x0 + h)) = x − x0 − h = zh − h = h( z − 1)
( x − x 2 ) = ( x − ( x0 + 2h)) = x − x0 − 2h = zh − 2h = h( z − 2)
M
( x − x n −1 ) = ( x − ( x0 + (n − 1)h)) = x − x0 − (n − 1)h = zh − (n − 1)h = h( z − (n − 1))
Aplicando esses valores na fórmula de Newton, teremos:
Pn ( x) = y 0 + hz∆/y 0 + h 2 z ( z − 1)∆/2 y 0 + L + h n z ( z − 1) L ( z − (n − 1))∆/n y 0
Introduziremos agora o conceito de diferença finita, o qual é válido para pontos
igualmente espaçados:
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
12
-
De ordem zero: ∆0 y i = y i
De primeira ordem: ∆y i = y i +1 − y i
-
De segunda ordem: ∆2 y i = ∆y i +1 − ∆y i
-
De ordem n : ∆n y i = ∆n −1 y i +1 − ∆n −1 y i
-
Relacionaremos as diferenças divididas com as diferenças finitas através da seguinte
expressão:
∆/n y i =
∆n y i
n!h n
Dessa forma, teremos que:
Pn ( x) = y 0 + hz
∆y 0
∆2 y 0
∆n y 0
n
h
z
(
z
1
)
(
z
(
n
1
))
+ h 2 z ( z − 1)
+
L
+
−
L
−
−
1!h
2!h 2
n!h n
Isso nos leva a:
Pn ( x) = y 0 +
z ( z − 1) 2
z ( z − 1) L ( z − (n − 1)) n
z
⋅ ∆y 0 +
⋅ ∆ y0 + L +
⋅ ∆ y0
1!h
2!
n!
Exemplo 3.7
A tabela abaixo mostra o crescimento populacional da cidade de Belo Horizonte no
decorrer dos anos. Pede-se para estimar a população da cidade no ano de 1975.
i
xi
yi
∆y i
0
1
2
3
1950
1960
1970
1980
352.724
683.908
1.235.030
1.814.990
331.184
551.122
579.960
-
∆2 y i
219.938
28.838
-
Calculando o valor da variável auxiliar teremos que:
z=
x − x0 1975 − 1950
=
= 2,5
h
10
O calculo do polinômio interpolador no ponto 1975 é dado por:
P3 (1975) = 352.724 + 2,5 ⋅ 331.184 +
+
2,5(2,5 − 1)
⋅ 219.938
2!
2,5(2,5 − 1)(2,5 − 2)
⋅ (−191.100)
3!
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
∆3 y i
-191.100
-
13
P3 (1975) = 1.533.349
Em 1975, Belo Horizonte tinha, aproximadamente 1.533.349 habitantes.
3.7.1. Erro de Truncamento para a Fórmula de Gregory-Newton
O erro de truncamento é dado por:
ET = h n +1 z ( z − 1)( z − 2) L ( z − n) ⋅
f n +1 (ε )
(n + 1)!
UFRN/CT/DCA
Capítulo 3 – Interpolação - Anderson Luiz de Oliveira Cavalcanti
Download

Aula 3 - DCA