Escolar Documentos
Profissional Documentos
Cultura Documentos
7
7.1 Introdução
Suponha que temos (n + 1) pontos distintos x0 , x1 , . . . , xn , chamados de nós, e que os
pontos y0 , y1 , . . . , yn foram obtidos por meio de alguma função f que é desconhecida ou é difícil
de manusear algebricamente, isto é, yi = f (xi ), i = 0, 1, . . . , n. Queremos conhecer ou estimar
f (xr ) para algum valor xr não tabelado. Podemos fazer isto interpolando f por uma função
polinomial.
Em muitos problemas concretos, conhecemos apenas os pares de pontos (xi , f (xi )) e não a
expressão de f , outras vezes é difícil trabalhar com a expressão matemática de f . Nesses
casos é preferível trabalhar com uma função interpolante g. Nesta seção veremos técnicas
para determinar a função polinomial interpolante g, conhecendo-se apenas os pares de pontos
(xi , f (xi )).
105
106 CAPÍTULO 7. INTERPOLAÇÃO POLINOMIAL
Notemos que det A 6= 0, pois os pontos x0 , x1 , . . . , xn são distintos e A é uma matriz de Van-
dermonde. Assim, o sistema linear admite uma única solução a0 , a1 , . . . , an . Isto é, existe um
único polinômio pn (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 de grau máximo n que interpola f .
Podemos então enunciar o seguinte resultado:
Teorema 7.2.1 Dados x0 , x1 , . . . , xn pontos distintos existe um único polinômio pn (x), de grau
máximo n, que interpola f nos pontos (xi , f (xi )), i = 0, . . . , n.
Ou resumidamente,
n
Y x − xi
Lk (x) = , k = 0, 1, . . . , n. (7.3.3)
i=0,i6=k
xk − xi
Podemos verificar que pn (x) satisfaz pn (xi ) = yi , i = 0, 1, . . . , n, isto é, pn (x) é um polinômio que
interpola f nos pontos xi . Como o polinômio interpolador é único, segue que este é o polinômio
interpolador. Resumindo temos o seguinte teorema:
onde
n
Y x − xi
Lk (x) = , k = 0, 1, . . . , n.
i=0,i6=k
x k − xi
• Exemplo 7.3.2
xk -1 0 1 2
yk 0 1 2 7
108 CAPÍTULO 7. INTERPOLAÇÃO POLINOMIAL
obtemos
(x − x1 )(x − x2 )(x − x3 ) −x(x − 1)(x − 2)
L0 (x) = =
(x0 − x1 )(x0 − x2 )(x0 − x3 ) 6
(x − x0 )(x − x2 )(x − x3 ) (x + 1)(x − 1)(x − 2)
L1 (x) = =
(x1 − x0 )(x1 − x2 )(x1 − x3 ) 2
(x − x0 )(x − x1 )(x − x3 ) −(x + 1)x(x − 2)
L2 (x) = =
(x2 − x0 )(x2 − x1 )(x2 − x3 ) 4
(x − x0 )(x − x1 )(x − x2 ) (x + 1)x(x − 1)
L3 (x) = = .
(x3 − x0 )(x3 − x1 )(x3 − x2 ) 6
Segue que o polinômio interpolador é dado por p(x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) + y3 L3 (x) =
2 3
3
x + 31 x + 1
• Exemplo 7.3.3
Usando o método de Lagrange para determinar o polinômio que interpola os pontos, plotamos
os pontos e o polinômio interpolador p(x) = − 34 x4 + 6x3 − 61
4
x2 + 13x.
xk 0 1 2 3 4
yk 0 3 1 3 0
3.5
2.5
1.5
0.5
0 1 2 3 4
x
Teorema 7.3.4 (Estimativa para o erro) Sejam dados (n+1) nós distintos x0 , x1 , x2 , . . . , xn
no intervalo [a, b] e f : [a, b] → R função em C n+1 [a, b]. Então, para cada x ∈ [a, b] existe
ξx ∈ (a, b) tal que
f (n+1) (ξx )
f (x) = pn (x) + (x − x0 )(x − x1 ) · · · (x − xn ). (7.3.5)
(n + 1)!
7.3. MÉTODOS DE INTERPOLAÇÃO 109
(t − x0 )(t − x1 ) · · · (t − xn )
g(t) = f (t) − pn (t) − [f (x) − pn (x)] .
(x − x0 )(x − x1 ) · · · (x − xn )
É fácil ver que g ∈ C (n+1) [a, b], pois f tem esta propriedade, além disso g(xk ) = 0 para todo
k = 0, 1, . . . , n. Notemos também que g(x) = 0 e assim, g se anula em (n + 2) pontos distintos
de [a, b]. Pelo Teorema de Rolle generalizado, existe ξx ∈ (a, b) para o qual g (n+1) (ξx ) = 0. Logo,
temos
n
(n+1) (n+1) d(n+1) Y (t − xi )
g (ξx ) = f (ξx ) − p(n+1)
n (ξx ) − [f (x) − pn (x)] n+1 = 0.
dt i=0
(x − xi )
Como pn (x) é um polinômio de grau máximo n segue que sua derivada de ordem (n + 1) é nula.
n
Y (t − xi )
Como é um polinômio de grau (n + 1), sua derivada de ordem (n + 1) é constante
i=0
(x − x i )
e igual a
n
d(n+1) Y (t − xi ) (n + 1)!
= Q n .
dtn+1 i=0 (x − xi ) i=0 (x − xi )
(n + 1)!
0 = f (n+1) (ξx ) − [f (x) − pn (x)] Qn ,
i=0 (x − xi )
de onde temos
n
f (n+1) (ξx ) Y
f (x) = pn (x) + (x − xi ).
(n + 1)! i=0
• Exemplo 7.3.5
110 CAPÍTULO 7. INTERPOLAÇÃO POLINOMIAL
f (n+1) (ξx )
|En (x)| = | (x − x0 )(x − x1 ) . . . (x − xn )|
(n + 1)!
e
≤ |(x − 0)(x − 0.1) . . . (x − 10)|.
11!
Se x = 0.55, obtemos
e
|En (x)| ≤ |(0.55 − 0)(0.55 − 0.1) . . . (0.55 − 1)|
11!
e
≤ | − 0.4796520993 × 10−7 | = 0.326638 × 10−14 .
11!
x − xk = (u − k)h,
xr − xs = (r − s)h.
Substituindo estas informações no polinômio interpolador dado pelo método de Lagrange, obte-
mos
n n
X Y u−i
pn (u) = yk .
k=0 i=0,i6=k
k − i
(7.3.7)
xk f [xk ] f [xk , xk+1 ] f [xk , xk+1 , xk+2 ] f [xk , xk+1 , xk+2 , xk+3 ]
x0 f [x0 ]
f [x0 , x1 ]
x1 f [x1 ] f [x0 , x1 , x2 ]
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
x2 f [x2 ] f [x1 , x2 , x3 ]
f [x2 , x3 ]
x3 f [x3 ]
Apresentaremos agora a construção do polinômio pn (x) que interpola f (x) nos pontos x0 , x1 ,
x2 , . . . , xn segundo o método de Newton. A construção é feita por indução, iniciamos com
7.5. O MÉTODO DE NEWTON 113
Chamamos de E0 (x) = f (x) − p0 (x) de erro cometido ao se aproximar f (x) por p0 (x).
Seja, p1 (x) o polinômio de grau ≤ 1 que interpola f (x) em x0 e x1 . Temos que
f [x, x0 ] − f [x1 , x0 ] f (x) − f (x0 ) − (x − x0 )f [x1 , x0 ]
f [x0 , x1 , x] = f [x1 , x0 , x] = = ,
x − x1 (x − x0 )(x − x1 )
donde se obtém
f (x) = f (x0 ) + (x − x0 )f [x1 , x0 ] + (x − x0 )(x − x1 )f [x0 , x1 , x] .
| {z } | {z }
p1 (x) E1 (x)
Assim,
p1 (x) = p0 (x) + (x − x0 )f [x0 , x1 ],
e
E1 (x) = (x − x0 )(x − x1 )f [x0 , x1 , x].
Analogamente, obtemos
p2 (x) = p1 (x) + (x − x0 )(x − x1 )f [x0 , x1 , x2 ]
e
E2 (x) = (x − x0 )(x − x1 )(x − x2 )f [x0 , x1 , x2 , x].
Repetindo sucessivamente o argumento acima, obtemos que
+ (x − x0 )(x − x1 ) · · · (x − xn )f [x0 , x1 , . . . , xn , x] .
| {z }
En (x)
Assim,
pn (x) = f (x0 ) + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ] + · · · +
(x − x0 )(x − x1 ) · · · (x − xn−1 )f [x0 , x1 , · · · , xn ]
114 CAPÍTULO 7. INTERPOLAÇÃO POLINOMIAL
e
En (x) = (x − x0 )(x − x1 ) · · · (x − xn )f [x0 , x1 , . . . , xn , x].
Note que o coeficiente principal do polinômio interpolador é dado por f [x0 , x1 , · · · , xn ].
Resumindo acabamos de provar o seguinte resultado.
Teorema 7.5.1 A forma de Newton para o polinômio pn (x) que interpola f (x) em x0 , x1 ,
x2 , . . . , xn pontos distintos, é dado por
pn (x) = d0 + d1 (x − x0 ) + d2 (x − x0 )(x − x1 ) + · · · + dn (x − x0 )(x − x1 ) · · · (x − xn−1 ),
onde dk são as diferenças divididas de ordem k dadas por
dk = f [x0 , x1 , x2 , . . . , xk ].
Além disso, se f é (n + 1) vezes diferenciável no intervalo [a, b] que contém os pontos xi , o erro
En (x) é dado por
En (x) = f (x) − pn (x) = (x − x0 )(x − x1 ) · · · (x − xn )f [x0 , x1 , . . . , xn , x].
(2i) Sendo f (x) uma função n vezes diferenciável num intervalo [a, b] que contém n + 1 pontos
distintos x0 , x1 , x2 , . . . , xn , então
f (n) (ξ)
f [x0 , x1 , x2 , . . . , xn ] = , (7.5.8)
n!
para algum ξ ∈ (a, b).
Vamos verificar (2i). Definindo g(x) = f (x) − pn (x) temos que
g(xi ) = 0, i = 0, 1, . . . , n.
Usando o Teorema generalizado de Rolle, existe um número ξ ∈ (a, b) com
g (n) (ξ) = 0.
(n) (n)
Logo, f (n) (ξ) = pn (ξ). Como pn (x) tem grau máximo n, temos que a derivada pn (x) é con-
stante e igual a n!f [x0 , x1 , x2 , . . . , xn ]. Disto segue o resultado.
• Exemplo 7.5.2
Usando o método de Newton determine o polinômio que interpola os pontos
xk -1 0 1 2
yk 0 1 2 7
Vamos construir a tabela de diferenças divididas
1 2 2
5
2 7
Assim,o polinômio interpolador é dado por
p3 (x) = d0 + d1 (x − x0 ) + d2 (x − x0 )(x − x1 ) + d3 (x − x0 )(x − x1 )(x − x2 )
2
= (x + 1) + (x + 1)x(x − 1).
3
Pn (x0 ) = d0 p0 (x0 ) = y0 ,
Pn (x1 ) = d0 p0 (x1 ) + d1 p1 (x1 ) = y1 ,
Pn (x2 ) = d0 p0 (x2 ) + d1 p1 (x2 ) + d2 p2 (x2 ) = y2 ,
Pn (x3 ) = d0 p0 (x3 ) + d1 p1 (x3 ) + d2 p2 (x3 ) + d3 p3 (x3 ) = y3 ,
... = ...
Pn (xn ) = d0 p0 (xn ) + d1 p1 (xn ) + d2 p2 (x2 ) + · · · dn pn (xn ) = yn ,
d0 = y0
d1 = f [x0 , x1 ]
.. .
. = ..
di = f [x0 , x1 , . . . , xi ]
.. .
. = ..
dn = f [x0 , x1 , . . . , xn ].
> restart:
> Newtondd:=proc(X,FXin,n) local FX,i,j,pol,mult;
FX:=FXin; for i from 1 to n-1
7.6. USANDO MAPLE: INTERPOLAÇÃO PELO MÉTODO DE NEWTON 117
do print(FX[i..n],‘ ordem‘,i-1);
for j from n by -1 to i+1
do FX[j] := (FX[j] - FX[j-1])/(X[j]-X[j-i]);
od; od; print(FX[n..n],‘ ordem‘,i-1);
pol:=FX[1]; mult:=1; for i from 2 to n
do mult:=mult*(x-X[i-1]);
pol:=pol+mult*FX[i]; od;
print(evalm(FX));print(pol); end:
##Exemplo
>Newtondd([0,1,2,3,4],[5,3,1,3,-3],5,x);
∆0 f (x) = f (x)
∆f (x) = f (x + h) − f (x)
∆2 f (x) = ∆(∆f (x))
.. .
. = ..
n
∆ f (x) = ∆(∆(n−1) f (x))
∆k f (x0 )
f [x0 , x1 , . . . , xk ] = .
k!hk
Agora assuma que o resultado é válido para k ≤ r, vamos provar que o resultado ainda vale
para r + 1.
118 CAPÍTULO 7. INTERPOLAÇÃO POLINOMIAL
d0 = f [x0 ]
∆f (x0 )
d1 = f [x0 , x1 ] =
h
∆2 f (x0 )
d2 = f [x0 , x1 , x2 ] =
2!h2
.. ..
. = .
∆k f (x0 )
dk = f [x0 , x1 , . . . , xk ] =
k!hk
.. ..
. = .
∆n f (x0 )
dn = f [x0 , x1 , . . . , xn ] =
n!hn
Substituindo no polinômio interpolador de Newton, obtemos
n
X ∆r f (x0 )
pn (s) = s(s − 1) · · · (s − (r − 1)) .
r=0
r!
Usando a notação
s s s(s − 1) · · · (s − (r − 1))
= 1, = ,r ≥ 1
0 r r!
o polinômio pode ser escrito como
n n
X s r
X s
pn (s) = ∆ f (x0 ) = f (x0 ) + ∆r f (x0 ).
r r
r=0 r=1
7.7. EXEMPLOS 119
f (n+1) (ξ)
En (x) = (x − x0 )(x − x1 ) · · · (x − xn )
(n + 1)!
para obter
f (n+1) (ξ)
En (s) = s(s − 1)(s − 2)(s − 3) · · · (s − n)hn+1 ,
(n + 1)!
onde ξ ∈ (0, n).
7.7 Exemplos
√
Construa a tabela de diferenças ordinárias dos seguintes pontos, onde f (x) = x.
xk ∆0 f ∆1 f ∆2 f ∆3 f ∆4 f
2.0 1.414214
0.034924
2.1 1.449138 −0.000822
0.034102 0.000055
2.2 1.483240 −0.000767 −0.000005
0.033335 0.00005
2.3 1.516575 −0.000717
0.032618
2.4 1.549193
120 CAPÍTULO 7. INTERPOLAÇÃO POLINOMIAL
x − x0
Chamando α = , da tabela temos que,
h
∆2 f (x0 ) ∆3 f (x0 )
p4 (α) = 1.414214 + α∆f (x0 ) + α(α − 1) + α(α − 1)(α − 2)
2! 3!
4
∆ f (x0 )
+α(α − 1)(α − 2)(α − 3) .
4!
2.15−2.0
Dado x = 2.15 temos que α = 0.1
= 1.5, assim temos sucessivamente:
∆2 f (x0 )
p2 (α) = 1.414214 + α∆f (x0 ) + α(α − 1)
2!
0.000822
≈ 1.4666 − × 1.5 × 0.5 ≈ 1.466292.
2
∆2 f (x0 ) ∆3 f (x0 )
p3 (α) = 1.414214 + α∆f (x0 ) + α(α − 1) + α(α − 1)(α − 2)
2! 3!
1.5 × 0.5 × (−0.5) × 0.000055
= p2 (1.5) + ≈ 1.466288.
6
E finalmente,
p4 (α) ≈ 1.466288.
√
Comparando os valores obtidos com 2.15 ≈ 1.4662878 temos a seguinte tabela
ou na variável α
1
E4 (α) ≤ max{|α(α − 1)(α − 2)(α − 3)(α − 4)f (5) (α); α ∈ [0, 4]|},
(n + 1)!
7.8. O FENÔMENO RUNGE 121
x − x0
onde α = .
h √
As derivadas da função x são dadas por
1
f (1) (x) = 1/2 √ , f (2) (x) = −1/4 x−3/2 , f (3) (x) = 3/8 x−5/2
x
15 −7/2 (5) 105 −9/2
f (4) (x) = − x , f (x) = x
16 32
Para estimar os erros precisamos estudar os máximos das funções f (2) , f (3) , f (4) , f (5) , no intervalo
[2, 2.4]
Os valores máximos para os erros são (dez dígitos e arredondamento):
Observação 7.7.1 Para pontos igualmente espaçados, xj = x0 +jh, a expressão do erro envolve
funções do tipo
Ψn (x) = (x − x0 )(x − x1 )(x − x2 ) · · · (x − xn ).
2
No caso de n = 1, temos Ψ1 (x) = (x − x0 )(x − x1 ) cujo máximo no intervalo [x0 , x1 ] é h4 .
No
√
caso de n = 2, temos Ψ2 (x) = (x − x0 )(x − x1 )(x − x2 ) cujo máximo no intervalo [x0 , x2 ] é
2 3 h3
9
.
No caso de n = 3, temos Ψ3 (x) = (x − x0 )(x − x1 )(x − x2 )(x − x3 ) cujo máximo no intervalo
[x0 , x3 ] é h4 .
Exercício: Repita o exemplo acima com os pontos abaixo, onde f (x) = x exp(x) e estime o
erro de f (0.7) ≈ 1.409626895 (com pelo menos 6 casas decimais).
do intervalo e maior nos extremos. Devido a esse fenômeno devemos escolher um intervalo em
que o ponto que queremos aproximar seja central.
A segunda observação é que não devemos usar o polinômio interpolador para aproximar valores
que estejam fora do intervalo de interpolação. A isso denominamos extrapolação.
1
Para ilustrar o fenômeno Runge, consideremos a função típica f (x) = e o intervalo
1 + 25x2
[−1, 1].
0.8
0.6
0.4
0.2
1
Figura 7.2: gráfico de f (x) =
1 + 25x2
1
x
–1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1
0.8 0
0.6
–1
0.4
–2
0.2
3. Os dados dos dois exercícios anteriores foram gerados pelas funções f (x) = x ln(x) e
f (x) = x cos(x) − 2x2 + 3x − 1, respectivamente. Use a fórmula do erro para encontrar
uma limitação.
4. Use polinômio interpolador dado pelo método de Newton de graus 1, 2 e três para
aproximar f (−1/3) se
5. Use polinômio interpolador dado pelo método de Newton de graus 1, 2 e três para
aproximar f (0.25) se