Interpolação Polinomial

Propaganda
Interpolação Polinomial
Métodos Numéricos e Estatı́sticos
Parte I-Métodos Numéricos
Interpolação polinomial
Luı́sa Morgado
Lic. Eng. Biomédica e Bioengenharia-2009/2010
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
O problema geral da interpolação polinomial consiste em, dados
n + 1 pontos (reais ou complexos) x0 , x1 , . . . , xn e n + 1 valores
(reais ou complexos) y0 , y1 , . . . , yn (que geralmente correspondem
a valores de uma função y = f (x) em x0 , x1 , . . . , xn ), determinar
um polinómio pn (x) de grau n tal que
pn (x0 ) = y0 ,
pn (x1 ) = y1 , . . . , pn (xn ) = yn .
Se os pontos xi , que são chamados de pontos ou abcissas de
interpolação são distintos, vamos verificar que tal polinómio
existe e é único.
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Dados n+1 pontos (reais ou complexos) x0 , x1 , . . . , xn e n+1 valores
(reais ou complexos) y0 , y1 , . . . , yn , existe um e um só polinómio
pn (x) de grau inferior ou igual a n tal que
pn (xi ) = yi ,
i = 0, 2, . . . , n.
Dem.: Seja pn (x) = a0 + a1 x + . . . + an x n um polinómio de grau menor ou igual a n,
com n + 1 coeficientes a0 , a1 , . . . , an desconhecidos.
A condição pn (xi ) = yi , i = 0, 2, . . . , n é equivalente ao sistema de n + 1 equações

a0 + a1 x0 + . . . + an x0n = y0



 a0 + a1 x1 + . . . + an x1n = y1
..


.


a0 + a1 xn + . . . + an xnn = yn
(1)
nas n + 1 incógnitas ai , i = 0, 1, . . . , n. A matriz dos coeficientes do sistema acima
designa-se por matriz de Vandermonde. Sabe-se da Álgebra linear que o seu
determinante
1 x0 · · · x0n n
é diferente de zero se os xi são todos distintos.
1 x1 · · · x1 Assim sendo, o sistema (1) tem uma e uma só
.
.
.
.
..
..
.. ..
solução.
1 x
· · · xnn
n
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Chama-se polinómio interpolador de uma função f sobre um conjunto de pontos x0 , x1 , . . . , xn , ao polinómio de grau inferior ou
igual a n que nesses pontos coincide com f .
Exemplo
Determinemos o polinómio interpolador de grau 2 de uma função f que passa pelos
pontos (1, 1), (2, 4) e (3, 9). Temos:
x0
=
1,
y0 = 1 = f (x0 )
x1
=
2,
y1 = 4 = f (x1 )
x2
=
3,
y2 = 9 = f (x2 )
Queremos então determinar p2 (x) = a0 + a1 x + a2 x 2 , tal que p2 (xi ) = f (xi ),
i = 1, 2, 3, o que conduz ao sistema


a 0 + a1 + a2 = 1
a0 + 2a1 + 4a2 = 4

a0 + 3a1 + 9a2 = 9
Resolva este sistema usando a regra de Cramer.
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Fórmula interpoladora de Lagrange
Sejam x0 , x1 , . . . , xn n + 1 pontos distintos. Consideremos os seguintes polinómios
`i (x) de grau n:
Y x − xj
`i (x) =
, i = 0, . . . , n
xi − xj
j=0
j6=i
|
{z
}
polinómios
de Lagrange
1, i = j
Facilmente se verifica que li (xj ) = δij =
0, i 6= j.
e assim sendo, dados f0 = f (x0 ), f1 = f (x1 ), . . . , fn = f (xn ), de uma função, o
polinómio
pn (x) =
n
X
fi `i (x)
i=0
é de grau menor ou igual a n e verifica
pn (xi ) = fi ,
i.e., pn é o polinómio interpolador de f nos pontos x0 , x1 , . . . , xn .
A (2) chama-se fórmula interpoladora de Lagrange.
Luı́sa Morgado
Interpolação polinomial
(2)
Interpolação Polinomial
Exemplo
Sendo dada a tabela
−1
−2
x
f (x)
0
−1
2
7
calculemos f (1) usando o polinómio interpolador de Lagrange. Temos
x0 = −1, f0 = f (x0 ) = −2
x1 = 0, f1 = f (x1 ) = −1
x2 = 2, f2 = f (x2 ) = −7
e portanto n = 2. Determinemos `i (x), i = 0, 1, 2:
`0 (x) =
`1 (x) =
(x−x1 )(x−x2 )
(x0 −x1 )(x0 −x2 )
(x−x0 )(x−x2 )
(x1 −x0 )(x1 −x2 )
(x−x0 )(x−x1 )
(x2 −x0 )(x2 −x1 )
=
=
2
(x−0)(x−2)
= x −2x
(−1−0)(−1−2)
3
2
(x+1)(x−2)
= − x −x−2
(0+1)(0−2)
2
2
(x+1)(x−0)
= x 6+x
(2+1)(2−0)
`2 (x) =
=
O polinómio interpolador é então dado por
p2 (x) = f0 `0 (x)+f1 `1 (x)+f2 `2 (x) = −2
x 2 − 2x
x2 − x − 2
x2 + x
−1 −
+7
= x 2 +2x−1
3
2
6
e um valor aproximado de f (1) é dado por
p2 (1) = 2.
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Erro do polinómio interpolador de Lagrange
Seja f uma função contı́nua em [a, b] e diferenciável e ]a, b[. Se
a ≤ x1 < x2 < . . . < xn ≤ b então
Rn (x) = f (x) − pn (x) =
(x − x0 )(x − x1 ) . . . (x − xn ) (n+1)
f
(ξ),
(n + 1)!
para algum ξ ∈]a, b[ e para todo o x ∈ [a, b].
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Dem.: Como pn (xi ) = fi , a função Rn (x) = f (x) − pn (x) anula-se em x = xi ,
i = 0, 1, . . . , n. Para x fixo, e tal que x 6= xi , i = 0, 1, . . . , n, seja
K (x) =
f (x) − pn (x)
(x − x0 )(x − x1 ) . . . (x − xn )
e defina-se a função
F (t) = f (t) − pn (t) − (t − x0 )(t − x1 ) . . . (t − xn )K (x).
A função F anula-se nos n + 2 pontos t = xi , i = 0, 1, . . . , n e t = x, logo, pelo
teorema de Rolle generalizado, existe ξ ∈]a, b[ tal que F (n+1) = 0. Ora
F (n+1) (t) = f (n+1) (t)−(n+1)!K (x) ⇒ 0 = f (n+1) (ξ)−(n+1)!K (x) ⇔ K (x) =
donde
f (n+1) (ξ)
f (x) − pn (x)
=
,
(n + 1)!
(x − x0 )(x − x1 ) . . . (x − xn )
obtendo-se assim o pretendido.
Luı́sa Morgado
Interpolação polinomial
f (n+1) (ξ)
,
(n + 1)!
Interpolação Polinomial
A Rn (x) dá-se o nome de erro de interpolação cometido no
ponto x quando se substitui f (x) pelo seu polinómio interpolador
nesse ponto.
Como ξ é desconhecido é costume usar-se a seguinte majoração
para o erro de interpolação:
Seja f uma função contı́nua e diferenciável em [a, b], a ≤ x1 <
x2 < . . . < xn ≤ b e Rn (x) = f (x) − pn (x). Então
|Rn (x)| ≤
|(x − x0 )(x − x1 ) . . . (x − xn )|
max f (n+1) (t).
(n + 1)!
t∈[a,b]
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Exemplo
Dada a função f (x) = cos x, calculemos um majorante do erro cometido quando
usamos o polinómio interpolador cúbico, para aproximar cos 1.05.
x
f (x)
0.9
0.62
1.0
0.54
1.1
0.45
1.2
0.26
f (iv ) (t) = cos t ⇒ maxt∈[0.9,1.2] cos t = 0.62
e portanto
|R3 (x)|
≤
=
|(1.05 − 0.9)(1.05 − 1.0)(1.05 − 1.1)(1.05 − 1.2)|
0.62
4!
0.0000001453 < 1.5 × 10−6 .
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Diferenças divididas
O método de Lagrange para a determinação se um polinómio interpolador de uma
função f sobre um conjunto de pontos xi , i = 0, 1, . . . m tem um inconveniente:
sempre que desjarmos passar de um polinómio de grau n para um polinómio de grau
n + 1 todo o trabalho tem que ser refeito.
Vamos aprender outro método para a construção do polinómio de interpolação que
permite esta passagem por acréscimo de mais um termo. Para tal vamos precisar da
noção de diferença dividida de uma função.
Sejam x0 , x1 , . . . , xn n + 1 pontos distintos do intervalo [a, b] e sejam fi = f (xi ) os
correspondentes valores de uma função f nesses pontos. Define-se
f [xi ] = f (xi ),
i = 0, 1, . . . , n,
f [x1 , x2 , . . . , xn ] − f [x0 , x1 , . . . , xn−1 ]
f [x0 , x1 , . . . , xn ] =
,
xn − x0
onde f [x0 , x1 , . . . , xn ] é a diferença dividida de ordem n da função f nos pontos
x0 , x1 , . . . , xn .
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Tabela das diferenças divididas
O cálculo das das diferenças divididas de diferentes ordens pode ser sistematizado numa tabela:
xi
x0
f [xi ]
f (x0 )
f [·, ·]
f (x1 ) − f (x0 )
x1 − x0
x1
f [x1 , x2 ] − f [x0 , x1 ]
x2 − x1
x3
.
.
.
x2 − x0
f (x2 )
f (x3 )
.
.
.
x3 − x2
= f [x0 , x1 , x2 ]
= f [x1 , x2 ]
f [x0 , x1 , x2 , x3 ]
f [x2 , x3 ] − f [x1 , x2 ]
f (x3 ) − f (x2 )
f [·, ·, ·, ·]
= f [x0 , x1 ]
f (x1 )
f (x2 ) − f (x1 )
x2
f [·, ·, ·]
x3 − x1
= f [x1 , x2 , x3 ]
= f [x2 , x3 ]
.
.
.
.
.
.
Luı́sa Morgado
Interpolação polinomial
.
.
.
Interpolação Polinomial
Sejam a ≡ x0 < x1 < · · · < xn ≡ b n + 1 pontos do intervalo [a, b] e seja pn o
polinómio interpolador de grau n de uma função f sobre este conjunto de pontos.
Escrevendo pn na forma:
pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 ) · · · (x − xn−1 ),
determinemos os ai , i = 0, . . . , n de acordo com as condições de interpolação:
pn (xi ) = f (xi ), i = 0, 1, . . . , n.
pn (x0 ) = f (x0 )
⇔
a0 = f (x0 ) ⇔ a0 = f [x0 ]
pn (x1 ) = f (x1 )
⇔
a0 + a1 (x1 − x0 ) = f (x1 )
⇔
f (x0 ) + a1 (x1 − x0 ) = f (x1 )
f (x1 ) − f (x0 )
a1 =
= f [x0 , x1 ]
x1 − x0
| {z }
diferença
dividida de
ordem 1
⇔
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
pn (x2 ) = f (x2 )
⇔
a0 + a1 (x2 − x0 ) + a2 (x2 − x0 )(x2 − x1 ) = f (x2 )
⇔
f (x0 ) + f [x0 , x1 ](x2 − x0 ) + a2 (x2 − x0 )(x2 − x1 ) = f (x2 )
f (x2 ) − f (x0 )
= f [x0 , x1 ] + a2 (x2 − x1 )
x2 − x0
f [x0 , x2 ] = f [x0 , x1 ] + a2 (x2 − x1 )
f [x0 , x2 ] − f [x0 , x1 ]
a2 =
= f [x0 , x1 , x2 ]
x2 − x1
|
{z
}
diferença
dividida de
ordem 2
⇔
⇔
⇔
..
.
pn (x)
=
f (x0 ) + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · ·
+
f [x0 , x1 , . . . , xn ](x − x0 ) · · · (x − xn−1 )
|
{z
}
diferença
dividida de
ordem n
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Considerando as funções:
φ0 (x) = 1
e
φj (x) =
j−1
Y
(x − xi ) ,
j = 1, . . . , n
i=0
facilmente se verifica que o conjunto φj (x), j = 0, . . . , n constitui uma base do
espaço Pn (espaço dos polinómios de grau inferior ou igual a n). Logo, para qualquer
n
X
polinómio pn existem n + 1 constantes aj , j = 0, . . . , n tal que pn (x) =
aj φj (x).
j=0
Assim sendo, o polinómio interpolador pode ser escrito na forma:
pn (x) = f (x0 ) +
j−1
n
X
Y
f x0 , . . . , xj
(x − xi ) .
i=0
j=1
Notemos ainda que:
pn+1 (x) = pn (x) + f [x0 , . . . , xn+1 ]
n
Y
(x − xi ) .
i=0
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Algumas propriedades das diferenças divididas
A diferença dividida f [xi , xi+1 , . . . , xi+k ] não é alterada qualquer que seja a permutação
feita em xi , xi+1 , . . . , xi+k .
f 0 (x) = f [x, x]
Dem.:f [x, x] = lim f [x, x + ε] = lim
ε→0
ε→0
f (x + ε) − f (x)
= f 0 (x).
ε
f 00 (x) = f [x, x, x]
Dem.:
f [x, x, x]
=
=
=
lim lim f [x, x + h, x + h + ε]
ε→0 h→0
f (x + h + ε) − f (x + h)
f (x + h) − f (x)
−
ε
h
lim lim
ε→0 h→0
h+ε
f 0 (x + ε) − f 0 (x)
lim
= f 00 (x)
ε→0
ε
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Seja Pn (x) um polinómio de grau n, então a diferença dividida de ordem k > n é zero.
Sejam x0 , x1 , . . . , xn ,
n + 1 pontos, e considere-se f [x0 , x1 , . . . , xn ]. Então ∃ ξ ∈ (a, b)
f (n) (ξ)
.
n!
tal que f [x0 , x1 , . . . , xn ] =
Dem.: Seja g (t) = f (t) − pn (t)
Se xi , i = 0, . . . , n são os pontos de interpolação então g (xi ) = 0
| {z }
n+1 zeros
=⇒ ∃ξ ∈ (a, b) tal que g (n) (ξ) = 0 (generalização do Teorema de Rolle )
(n)
(n)
=⇒ f (n) (ξ) − pn (ξ) = 0 ⇐⇒ f (n) (ξ) = pn (ξ) (a)
j−1
n
X
Y
Sabendo que pn (x) = f (x0 ) +
f [x0 , . . . , xj ]
(x − xi ) ⇐⇒
j=1
⇐⇒ pn (x) = f (x0 ) + . . . + f [x0 , . . . , xn ]
i=0
n−1
Y
(x − xi )
i=0
(n)
(n)
=⇒ pn (x) = f [x0 , . . . , xn ]n! ⇐⇒ f [x0 , . . . , xn ] =
então substituindo (a) em (b), vem:
f (n) (x)
f [x0 , . . . , xn ] =
.
n!
Luı́sa Morgado
pn (x)
(b)
n!
Interpolação polinomial
Interpolação Polinomial
Erro do polinómio interpolador
Seja pn o polinómio interpolador de Newton das diferenças divididas e x0 , x1 , . . . , xn as
n + 1 abcissas de interpolação. Pretendemos estimar f (x̂) − pn (x̂), x̂ ∈ [x0 , xn ] e
x̂ 6= xi , i = 0, . . . , n.
Seja x0 , x1 , . . . , xn , x̂ n + 2 pontos de interpolação e pn+1 (x) o polinómio interpolador
para estes pontos. Isto é, f (xi ) = pn+1 (xiQ
) e f (x̂) = pn+1 (x̂).
Como pn+1 (x) = pn (x) + f [x0 , . . . , xn , x] nj=0 (x − xj ), fazendo x = x̂, vem:
f (x̂) = pn+1 (x̂) = pn (x̂) + f [x0 , . . . , xn , x̂]
n
Y
(x̂ − xj ) ⇐⇒
j=0
f (x̂) − pn (x̂) = f [x0 , . . . , xn , x̂]
n
Y
(x̂ − xj )
j=0
Luı́sa Morgado
Interpolação polinomial
Interpolação Polinomial
Exemplo
Considerando a seguinte tabela de pontos de uma função f , determine o seu
xi
0
0.25
0.5
polinómio interpolador.
f (xi ) 1
1.5
1.75
Com base na tabela das diferenças divididas:
xi
x0 = 0
f (xi )
f (x0 )= 1
x1 = 0.25
f (x1 )= 1.5
f [·, ·]
f (x1 ) − f (x0 )
x1 − x0
f (x2 ) − f (x1 )
x2 = 0.5
f (x2 )= 1.75
x2 − x1
=
f [·, ·, ·]
1.5 − 1
0.25
=2
f [x1 , x2 ] − f [x0 , x1 ]
=
1.75 − 1.5
0.25
x2 − x0
=
1−2
0.5
=1
construimos assim o polinómio:
P2 (x) = 1 + f [0, 0.25](x − 0) + f [0, 0.25, 0.5](x − 0)(x − 0.25) = 1 + 2x − 2x(x − 0.25)
Luı́sa Morgado
Interpolação polinomial
= -2
Download