Академический Документы
Профессиональный Документы
Культура Документы
PARTE III
2o Semestre - 2002
INTRODUÇÃO ....................................................................................................................3
FORMA DE LAGRANGE .................................................................................................... 4
Interpolação para 2 pontos (n+1=2) - ajuste de retas (n=1).......................................... 5
Interpolação para 3 pontos (n+1=3) - ajuste de parábolas (n=2) ................................. 6
2
Interpolação Polinomial
Introdução
Vamos supor que temos um conjunto de dados {xi,f(xi)} tal como na tabela abaixo:
xi 0 1,5 3,0 4,5 6,0
f(xi) 0,001 0,016 0,028 0,046 0,057
Nosso problema é obter o valor de f(x) para um valor de x que não tenha sido medido, como
por exemplo, x=2.0.
Por exemplo, quando não temos muitos dados (que levaria a um mau ajuste de uma função)
e só queremos saber o valor de f(x) para um x intermediário entre duas medidas, isto é, xi<x<xi+1,
podemos usar as técnicas da interpolação.
Portanto, interpolar um ponto x a um conjunto de n+1 dados {xi,f(xi)}, significa
simplesmente, calcular o valor de f(x), sem conhecer a forma analítica de f(x) ou ajustar uma função
analítica aos dados.
A 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) (1)
p(x1)=f(x1)
...
p(xn)=f(xn)
(note que a contagem começa em zero, portanto temos n+1 pontos na expressão acima).
O polinômio p(x) é chamado de polinômio interpolador. É possível 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)}
Portanto, podemos escrever:
pn ( x 0 ) = a 0 + a1 ⋅ x 0 + a 2 ⋅ x 02 +L+ a n ⋅ x 0n = f ( x 0 )
...
pn ( x n ) = a 0 + a1 ⋅ x n + a 2 ⋅ x n2 +L+ a n ⋅ x nn = f ( x n )
3
Esse conjunto de equações corresponde a um sistema linear de n+1 equações e n+1
variáveis. Portanto, ele poderia ser resolvido diretamente. Essa é uma das formas de se obter o
polinômio interpolador.
Entretanto, existem outras formas, como a forma de Lagrange e a forma de Newton, que
veremos a seguir.
Forma de Lagrange
Introdução :
Lk ( xi ) = δ ki (3)
sendo que:
0 se, k ≠ i
δki = (4)
1 se, k = i
Portanto,
p( x 0 ) = L0 ( x 0 ) ⋅ f ( x 0 ) + L1 ( x 0 ) ⋅ f ( x1 ) +L+ Ln ( x 0 ) ⋅ f ( x n )
p( x 0 ) = 1 ⋅ f ( x 0 ) + 0 ⋅ f ( x1 ) +L+0 ⋅ f ( x n )
p( x 0 ) = f ( x 0 )
e,
p( x1 ) = L0 ( x1 ) ⋅ f ( x 0 ) + L1 ( x1 ) ⋅ f ( x1 ) +L+ Ln ( x1 ) ⋅ f ( x n )
p( x1 ) = 0 ⋅ f ( x 0 ) + 1 ⋅ f ( x1 ) +L+0 ⋅ f ( x n )
p ( x 1 ) = f ( x1 )
ou seja:
p( x i ) = f ( x i )
o que mostra que o polinômio interpolador p(x) passa exatamente sobre os pontos {xi,f(xi)} da tabela
dada.
4
Temos agora que encontrar os polinômios Lk(x), que satisfaçam (3). Uma função que
satisfaz a condição (3) é:
(x − x0 ) ⋅ (x − x1 ) ⋅ L ⋅ (x − x k − 1 ) ⋅ (x − x k + 1 ) ⋅ L ⋅ (x − x n )
Lk ( x ) =
(x k − x0 ) ⋅ ( x k − x1 ) ⋅ L ⋅ ( x k − x k − 1 ) ⋅ ( x k − x k + 1 ) ⋅ L ⋅ ( x k − x n )
que é fácil verificar, pois:
Lk ( x k ) = 1 e
Lk ( xi ) = 0 se, i ≠ k
e,
∏ (x − x )
n
j
j =0
j ≠i
Li ( x ) =
∏(x )
n
i − xj
j =0
j ≠i
xi x0 x1
De (5) :
1
p(x) = ∑Li (x).f (xi ) = L0 (x).f (x0 ) + L1 (x).f (x1 )
i=0
(6)
As funções Li (x) devem satisfazer (3), ou seja:
L0 (x0) =1 L1 (x0) =0
L0 (x1) =0 L1 (x1) =1 (7)
5
É fácil verificar que, as seguintes funções, satisfazem (7) :
x − x1 x − x0
L0 ( x ) = L1 ( x ) =
x0 − x1 x1 − x 0
(8)
De (8) em (6) :
x − x1 x − x0
p( x ) = ⋅ f ( x0 ) + ⋅ f ( x1 )
x 0 − x1 x1 − x0
xi x0 x1 x2
De (5):
2
p( x ) = ∑ Li ⋅ f ( xi ) = L0 ⋅ f (x 0 ) + L1 ⋅ f ( x1 ) + L2 ⋅ f ( x 2 ) (9)
i =0
onde:
Por construção:
(x − x1 ) ⋅ (x − x2 )
L0 =
(x0 − x1 ) ⋅ (x0 − x2 )
(x − x0 ) ⋅ (x − x 2 )
L1 =
(x1 − x0 ) ⋅ (x1 − x2 )
(x − x0 ) ⋅ (x − x1 )
L2 =
(x 2 − x0 ) ⋅ (x2 − x1 )
6
Portanto:
p ( x) =
(x − x1 ) ⋅ (x − x2 ) ⋅ f (x ) + (x − x0 ) ⋅ (x − x 2 ) ⋅ f (x ) + (x − x0 ) ⋅ (x − x1 ) ⋅ f (x )
(x0 − x1 ) ⋅ (x0 − x 2 ) 0
(x1 − x0 ) ⋅ (x1 − x2 ) 1
(x2 − x0 ) ⋅ (x2 − x1 ) 2
Exemplo:
Ajuste uma reta aos seguintes pontos:
x 2 4
x − x1 x − x0
p( x ) = ⋅ f ( x0 ) + ⋅ f ( x1 )
x 0 − x1 x1 − x0
x −4 x −2
p(x ) = ⋅ 3.1 + ⋅ 5.6 = −1.55 ⋅ ( x − 4 ) + 2.8 ⋅ ( x − 2)
2−4 4−2
p( x ) = 1.25 ⋅ x + 0.6
+-
7
Interpolação linear entre 2 pontos conhecidos |(x , y )
| 1 1
| (x , y )
| 2 2
x - x +-
1
y = y + ———————— ( y - y )
1 x - x 2 1
2 1
15 - 10
y = 250 + ——————— (432 - 250) = 341
20 - 10
8
Sétima Lista de Exercícios
2 ) Se você tiver um conjunto de 5 dados {(x0,f(x0), (x1,f(x1), (x2,f(x2), (x3,f(x3), (x4,f(x4),}, e deseja
fazer uma interpolação linear, isto é, encontrar uma reta que lhe permita obter o valor de f(x′), onde
x1<x′<x2:
a) Qual seria o grau do polinômio que você calcularia, isto é, quantos pontos você utilizaria?
b) E quais pontos da tabela você usaria?
3 ) A seguinte tabela informa o número de carros que passam por um determinado pedágio em um
determinado dia:
Horário 10:00 10:30 11:00 11:30 12:00 12:30
Número (em mil) 2.69 1.64 1.09 1.04 1.49 2.44
a) Faça um gráfico de horário vs. número de carros para verificar qual a tendência da curva.
b) Estime o número de carros que passariam pelo pedágio às 11:10, usando a forma de
Lagrange para encontrar um polinômio interpolador p(x) que estima o número de carros em
função do tempo. Use uma reta como função interpoladora.
c) Agora, faça a mesma estimativa, mas utilizando uma parábola como polinômio interpolador.
9
Forma de Newton
x x0 x1 x2 x3
f(x) f(x0) f(x1) f(x2) f(x3)
x f(xi) f[xi, xi+1] f[xi, xi+1, xi+2] f[xi, xi+1, xi+2, xi+3]
x0 f(x0)
f[x0,x1]
f[x0,x1,x2]
x1 f(x1)
f[x1,x2] f[x0,x1,x2,x3]
x2 f(x2) f[x1,x2,x3]
f[x2,x3]
x3 f(x3)
onde:
f ( x1 ) − f ( x 0 )
[ ]
f x 0 , x1 =
x1 − x 0
f ( x 2 ) − f ( x1 )
[ ]
f x1 , x 2 =
x 2 − x1
f ( x3 ) − f ( x2 )
[ ]
f x2 , x3 =
x3 − x2
[ ] [
f x1 , x 2 − f x 0 , x1 ]
[ ]
f x 0 , x1 , x 2 =
x2 − x0
10
[ ] [
f x 2 , x 3 − f x1 , x 2 ]
[ ]
f x1 , x 2 , x 3 =
x 3 − x1
[ ] [
f x1 , x 2 , x 3 − f x 0 , x1 , x 2 ]
[ ]
f x 0 , x1 , x 2 , x 3 =
x3 − x0
Exemplo:
xi f(xi) f[xi , xi+1] f[xi , xi+1, xi+2] f[xi , xi+1 , xi+2 ,xi+3]
0,536 − 0,813
0,1 0,813 = −0,923 0,487− (− 0,923)
0, 4 − 0,1 = 2,350
0,7 − 0,1 2,343− 2,350
= −0,008
0,4 0,536 0, 682 − 0,536 1− 0,1
= 0, 487
0,7 − 0, 4
1,893− 0,487
0,7 0,682 = 2,343
1, 25 − 0 , 682
1 − 0,4
= 1,893
1 − 0,7
1 1,250 2,354− 2,343
3,07 − 1,893 = 0,014
1,864 − 1, 25
= 2,354 1,2 − 0,4
1,2 1,864 = 3, 07 1,2 − 0,7
1, 2 − 1
0,014− (−0,008)
f[xi , xi+1 , xi+2 , xi+3 , xi+4 ] = = 0,02
1,2 − 0,1
f ( x) − f ( x0 )
[ ]
f x0 , x =
x − x0
(1)
11
[ ]
f ( x) − f ( x0 ) = f x0 , x ⋅ ( x − x0 )
f ( x) = f ( x ) + f [ x , x] ⋅ ( x − x )
0 0 0 (2)
[ ]
f ( x ) = p0 ( x ) + f x 0 , x ⋅ ( x − x 0 ) (3)
A expressão acima não pode ser usada diretamente, pois não podemos calcular o valor
f[x0,x], já que não conhecemos o valor de f(x) em qualquer ponto x (veja expressão (1) acima). Fora
do ponto x0, sabemos que o polinômio interpolador é apenas uma aproximação de f(x), caso
contrário teríamos uma resposta exata e não precisaríamos da interpolação. Em outras palavras,
tem-se que:
p0(x)≈f(x), para x≠x0
Portanto, da expressão (3), concluímos que f[x,x0]⋅(x-x0) é simplesmente a diferença entre o
valor de f(x) (valor real da função) e o valor p0(x) que obtivemos com a interpolação. Em outras
palavras, esse termo é o erro no processo de interpolação, isto é:
E 0 ( x ) = f (x ) − p 0 ( x ) = f [x0 , x ] ⋅ ( x − x 0 ) (4)
Podemos realizar o mesmo exercício, partindo de uma diferença dividia de ordem maior, ou
seja f[x0,x1,x], que é dada por:
f (x ) − f (x0 )
− f [x1 , x0 ]
f [x0 , x ] − f [x1 , x0 ] x − x0
f [x0 , x1 , x ] = f [x1 , x 0 , x ] = = =
x − x1 x − x1
f ( x ) − f ( x0 ) − ( x − x0 ) ⋅ f [x1 , x0 ]
=
(x − x1 ) ⋅ (x − x0 )
Portanto, tem-se que:
f ( x ) − f ( x0 ) − ( x − x0 ) ⋅ f [x1 , x0 ] = ( x − x1 ) ⋅ ( x − x0 ) ⋅ f [x0 , x1 , x ]
e
f ( x ) = f ( x0 ) + ( x − x0 ) ⋅ f [x 0 , x1 ] + ( x − x1 ) ⋅ ( x − x0 ) ⋅ f [x0 , x1 , x ]
pois,
p1 ( x0 ) = f ( x0 ) + ( x0 − x 0 ) ⋅ f [x0 , x1 ] = f ( x 0 )
12
f ( x1 ) − f ( x0 )
p1 ( x1 ) = f ( x0 ) + ( x1 − x 0 ) ⋅ f [x0 , x1 ] = f ( x0 ) + ( x1 − x0 ) ⋅ = f (x1 )
x1 − x0
que são as condições fundamentais para se encontrar tal polinômio.
Portanto, o erro cometido ao se aproximar f(x) por p1(x) é:
E1 ( x ) = ( x − x0 ) ⋅ ( x − x1 ) ⋅ f [x0 , x1 , x ]
Exemplo:
Usando (11):
13
p( x) = 4,88 + ( x − 0,2).04 + ( x − 0,2).( x − 0,5).2
p ( x) = 2 x 2 − x + 5
14
Oitava Lista de Exercícios
15
Referências Bibliográficas
RUGGIERO/LOPES - Cálculo Numérico. Makron Books
CHAPRA/CARRALE - Numerical Methods for Engineers. Ed. McGrawHill
CONTE - Elementos de Análise Numérica. Ed. Globo
BARROSO - Cálculo Numérico - Ed. Harper & How do Brasil
MARCELO G. MUNHOZ- Apostila de Cálculo Numérico - FACENS
16