Escolar Documentos
Profissional Documentos
Cultura Documentos
Capítulo4 Interpolação
Capítulo4 Interpolação
1. Introduo
Suponhamos que conhecemos a funo f em apenas em (n+1) pontos do intervalo
[a,b] e que pretendemos conhece-la em qualquer outro ponto desse intervalo. Para
tal vamos, com base nos pontos conhecidos, construir uma funo que substitua
f(x) dentro de um limite de preciso. Uma tal funo designa-se por funo
aproximante.
A escolha da funo aproximante aqui um polinmio, mas poderia ser outra. Se
escolhssemos funes racionais teramos interpolao racional, se escolhssemos
funes exponenciais teramos interpolao exponencial.
Seja, ento, f uma funo definida em A, f: A , e admitamos que so
conhecidos os pontos (x0, f(x0)), (x1, f(x1)), ..., (xn, f(xn)), com xi < xi+1, i=0,..., n-1
sendo x0=a e xn=b. Pretende-se aproximar f(x), x[ x0, xn], por um polinmio
Pn(x)=anxn+an-1xn-1+...+a2x2+a1x+a0
(1)
tal que nos pontos conhecidos Pn(x) coincida com a funo f(x), i.., que satisfaa:
Pn(xi)=f(xi) i=0,...,n
(2)
Diremos que Pn(x) um polinmio interpolador para f(x) nos pontos dados,
(xi, f(xi)) i=0,...,n, que sero o suporte da interpolao.
Assim, dados (n+1) pontos (xi, f(xi)), i=0,...,n, a existncia de um polinmio que
satisfaa (2) e acerca da unicidade e do grau do polinmio temos informao
atravs do seguinte teorema:
Teorema: Sejam dados (n+1) pontos distintos x0, x1, ..., xn, (xi xj), e os valores de
f(x) nesses pontos f(x0), f(x1), ...,f(xn). Ento existe um nico polinmio Pn(x) de
grau inferior ou igual a n que satisfaz a f(xi)=Pn(xi), i=0, ...,n.
P1 ( x0) = f ( x0) = y0
P1 ( x1) = f ( x1) = y1
Para obtermos o valor dos coeficientes a0 e a1 temos que resolver o sistema
x 1
anterior em ordem a a0 e a1. A matriz dos coeficientes , A= 0 , sendo que
x1 1
det(A)=x0-x1. O sistema anterior tem soluo nica se det(A)0, i.., se x0x1.
Ou seja, para pontos distintos o sistema tem soluo nica.
Interpretao Geomtrica
O polinmio P1(x)=a0+a1x a equao da recta que passa nos pontos (x0, f(x0))
e (x1, f(x1)) .
Exemplo: Consideremos a funo f definida pelos pontos (0, 1.35) e (1, 2.94).
P1 (1) = 2.94
a1 = 1.59
a1 1 + a 0 = 2.94
ou seja, P1(x)=1.35+1.59x e f(0.73) P1(0.73)=2.51
O clculo de a0 e a1 est afectado por dois tipos de erro:
i.
Erro de arredondamento,
O erro de truncatura uma funo que se anula nos pontos x0 e x1, pois
f(x0)=P1(x0) e f(x1)=P1(x1) ento:
ET(x)=(x-x0)(x-x1)A,
onde A uma constante a determinar.
Obteno de A
Consideremos a funo auxiliar
G(t)=f(t)-P1(t)-ET(t),
ou seja,
G(t)=f(t)-(a1t+a0)-(t-x0)(t-x1)A
A funo G(t) anula-se em pelo menos trs pontos t=x0, t=x1, t= x . Se
considerarmos que f(t) contnua e diferencivel em (x0, x1) e uma vez que P1(t)
e ET(t) so polinmios tambm so, logo G(t) contnua e diferencivel em (x0,
x1), ento podemos aplicar o teorema de Rolle a G(t).
Recordao!
Teorema de Rolle: Se f(x) contnua e diferencivel no intervalo (a,b) e
f(a)=f(b), ento existe (a, b) tal que f '()=0.
Aplicando ento o teorema de Rolle a G(t) conclui-se que:
1 (x0, x ): G(1)=0
2 ( x , x1):G(2)=0
Ou seja, G(t) tal que G(1)=G(2) e G(t) contnua e diferencivel em
(1,2), aplicando novamente o teorema de Rolle a G(t) conclumos que:
f ' ' ( )
2
f ' ' ( )
, com (x0, x1)
2
Nota: Na maior parte das vezes no se conhece o valor exacto de , como tal,
consideramo-lo igual ao valor que maximiza |f(x)| em (x0, x1), i.., tal que
f ' ' ( ) = max f ' ' ( x) .
x 0 < x < x1
(2,
P1 (2) = 0.91
a1 2 + a0 = 0.91
a1 = 0.07
f ' ' ( )
, com (1, 2) e tal que = max f ' ' ( x)
2
1< x< 2
P2 ( x1) = y1 a2
P ( x ) = y
a
2
2 2
2
x02 + a1x0 + a 0 = y0
x12 + a1x1 + a 0 = y
1
x 22 + a1x 2 + a 0 = y2
x0 1
x1 1
x 2 1
O sistema tem soluo nica se det(A)0, o que acontece se os trs pontos forem
distintos.
Erro de truncatura
O erro de truncatura agora dado por ET( x )=f( x )-P2( x ). Seguindo um
raciocnio anlogo ao efectuado para o caso linear chegamos concluso que:
ET(x)=(x-x0)(x-x1)(x-x2)
3. Interpolao de Lagrange
Tanto a interpolao linear como a quadrtica so casos particulares da
interpolao de Lagrange.
Genericamente pretendemos determinar o polinmio interpolador de grau
menor ou igual a n sendo conhecidos (n+1) pontos. Ou seja, pretendemos
n
n-1
i =0
2
x
+ ... + a2 x1 + a1x1 + a 0 = y
n 1
1 ,
1 n 1
n 1 1
....
....
Pn ( x ) = y
anx n + a
x n 1 + ... + a2 xn2 + a1x n + a 0 = yn
n
n
n
n 1 n
n
x0
xn
cuja matriz A= 1
...
n
xn
x0n 1
x1n 1
...
n 1
xn
... x0 1
... x1 1
. Prova-se que a soluo do sistema
... ... ...
... xn 1
...
p ( x) = ( x x )( x x )...( x x
n 1)
n
0
1
ou de forma abreviada
n
p ( x) = ( x x j )
i
j =0
j i
pi(xi)0, i
(3)
bi pi ( x)
Pn ( x) =
(4)
i =0
Ento para determinar Pn(x) basta calcular os bi, i=0,...,n, j que os polinmios
pi(x) so facilmente calculveis. Tem-se ento que:
Pn(xk)=b0p0(xk)+b1p1(xk)+...+bkpk(xk)+...+bnpn(xk),
yi
, i=0,...,n.
pi ( xi )
yi
i =0
pi ( x )
pi ( xi )
yi
i =0
n (x x )
j
(x
j =0
j i
i xj )
yi
0
2.008
4.064
5.125
yi
i =0
3 (x x )
j
(x
j =0
j i
i xj )
P3 ( x) = y0
x x1 x x 2 x x3
x0 x1 x0 x 2 x0 x3
x x0 x x1 x x3
x x0 x x1 x x 2
x x 0 x x 2 x x3
+ y3
+ y2
1 x x x x x x
x
x
x
x
x
x
x
x
x
x
x
2
3
1
0 1
0 2
0 3
2
2 1
3
1 3
1 2
3
P3 ( x) = 2.008
+ 5.125
x x 0.2 x 0.4
x x 0.4 x 0.5
+ 4.064
+
0.2 0.2 0.4 0.2 0.5
0.4 0.4 0.2 0.4 0.5
x x 0.2 x 0.4
0.5 0.5 0.21 0.5 0.4
( n + 1)
( )
, x0<<xn.
(n + 1)!
f (x0)= Lim
f ( x ) f ( x 0)
x x0
(5)
f ( x1) f ( x0)
x1 x0
Note-se que
1 y0 =f[x1, x0]=
f ( xi + 1) f ( xi )
xi + 1 xi
n 1yi + 1 n 1 yi
xi + n xi
2yi
yi=yi=f(xi) yi
y0
y1
y2
...
yn
f[x0, x1]
f[x1, x2]
f[x2, x3]
...
f[xn-1, xn]
...
f[x0, x1,x2]
f[x1,x2, x3]
....
...
f[xn-2, xn-1,xn]
nyi
f[x0,...,xn]
yi
3.09
17.25
25.41
10
yi=yi=f(xi)
yi
yi
3.09
17.25
25.41
11.8
13.6
onde,
1y0=
17.25 3.09
25.41 17.25
13.6 11.8
=11.8, 1y1=
=13.6 e 2y0=
=1.
2.1 1.5
2.1 0.3
1.5 0.3
ento,
Pn(x)= Pn(x0)+(Pn[x0, x1]+Pn[x, x0, x1](x-x1))(x-x0)
11
ento
Pn(x)=Pn(x0)+Pn[x0, x1](x-x0)+(Pn[x0, x1, x2]+Pn[x, x0, x1, x2](x-x2))(x-x1)(x-x0)
Pn(x)=Pn(x0)+Pn[x0,x1](x-x0)+Pn[x0,x1,x2](x-x1)(x-x0)+Pn[x,x0,x1,x2](x-x2)
(x-x1)(x-x0).
Desenvolvendo Pn[x,x0,x1,x2] e aplicando um raciocnio anlogo ao anterior
obtemos:
Pn(x)=Pn(x0)+Pn[x0,x1](x-x0)+Pn[x0,x1,x2](x-x1)(x-x0)+Pn[x,x0,x1,x2](x-x2) (x-x1) (x-x0)
+...+Pn[x0,x1,...,xn](x-xn-1)...(x-x2)(x-x1)(x-x0)+Pn[x,x0,x1,...,xn](x-xn)(x-xn-1)...(x-x2)
(x-x1)(x-x0).
Como Pn de grau n, pelo corolrio anterior, conclumos que
Pn[x,x0,x1,...,xn]=0, alm disso, como Pn(x0)=y0 podemos escrever:
Pn(x)=y0+Pn[x0,x1](x-x0)+Pn[x0,x1,x2](x-x1)(x-x0)+Pn[x,x0,x1,x2](x-x2)(x-x1)
(x-x0)+...+Pn[x0,x1,...,xn](x-xn-1)...(x-x2)(x-x1)(x-x0)
Mas como iyi=Pn[x0,...,xi] podemos escrever o polinmio anterior do seguinte
modo:
Pn(x)=y0+ 1y0(x-x0)+ 2y0(x-x1)(x-x0)+ 3y0(x-x2)(x-x1)(x- x0) +
+ ny0(x-xn-1)...(x-x2)(x-x1)(x-x0)
ou ainda,
12
i 1
Pn(x)=y0+ y0 ( x x j)
i
i =1
j =0
yi=yi=f(xi)
yi
yi
yi
yi
1.008
1.064
1.125
1.343
1.512
0.28
0.61
1.09
1.69
1.1
1.6
2
1
1
O polinmio interpolador de f :
P4(x)=y0+ 1y0(x-x0)+ 2y0(x-x1)(x-x0)+ 3y0(x-x2)(x-x1)(x-x0)+ 4y0(x-x0)
(x-x1)(x-x2)(x-x3)
ou seja, P4(x)=1.008+0.028x+1.1x(x-0.2)+x(x-0.2)(x-0.3)
ento f(0.4)P4(0.4)=1.216.
Erro de truncatura
A frmula do erro de truncatura para a interpolao de Newton a mesma do
que a cometida com a interpolao de Lagrange, tal deve-se ao facto de ambas
utilizarem polinmios do mesmo grau. Assim,
ET ( x) = ( x x0)( x x1)...( x xn)
13
( n + 1)
( )
, x0<<xn.
(n + 1)!
x x0
zh=x-x0
h
x-x1=x-(x0+h)=x-x0-h=zh-h=(z-1)h
x-x2=x-(x1+h)=x-x1-h=(z-1)h-h=(z-2)h
ny0(x-xn-1)...(x-x2)(x-x1)(x-x0)
Pn(x)=y0+zh 1y0+zh(z-1)h 2y0+zh(z-1)h(z-2)h 3y0+...+zh(z-1)h(z-2)h....
(z-(n-1))h ny0
Pn(x)=y0+zh 1y0+zh2(z-1) 2y0+z(z-1)(z-2)h3 3y0+...+z(z-1)(z-2)...
(z-(n-1))hn ny0
(6)
n
i 1
Pn(x)=y0+ h y0 ( z j ) ,
i =1
14
j =0
yi
9.82
10.91
12.05
13.14
16.19
0yi =yi=f(xi)
9.82
10.91
12.05
13.14
16.19
1yi
1.09
1.14
1.09
3.05
2yi
0.05
-0.05
1.96
15
3yi
-0.1
2.01
4yi
2.11
yi
xi=h, i. Tem-se que: yi =
.
n! hn
n
y0
Tendo em considerao o teorema anterior se substituirmos y0 por
em
n! hn
n
(6) obtemos:
Pn(x)=y0+zh
2
3
y0
y 0
3 y0
+zh2(z-1)
+z(z-1)(z-2)h
2
3 +...+z(z-1)(z-2)...
3!h
h
2! h
n
y0
(z-(n-1))h
n
n! h
n
Pn(x)=y0+z y0 +z(z-1)
n
2
3
y0
y0
y0
+z(z-1)(z-2)
+...+z(z-1)(z-2)...(z-(n-1))
3!
2!
n!
ou de forma condensada
n iy i 1
Pn(x)=y0+ 0 ( z j )
i =1 i! j =0
ET ( z ) = h
z ( z 1)( z 2)...( z n)
( n + 1)
( )
, x0<<xn.
(n + 1)!
16
xi
0.1
0.2
0.3
0.4
0.5
yi
0.125
0.064
0.027
0.008
0.001
yi=yi=f(xi)
0.125
0.064
0.027
0.008
0.001
yi
-0.061
-0.037
-0.019
-0.007
yi
0.024
0.018
0.012
yi
-0.006
-0.006
yi
ou seja, P4(x)=0.125-0.061z+0.024z(z-1)-0.006z(z-1)(z-2),
com z=
x x0 x 0.1
= 10 x 1 , donde
=
0.1
h
P4(x)=0.125-0.061(10x-1)+0.024(10x-1)(10x-2)-0.006(10x-1)(10x-2)(10x-3).
Ento f(0.25)P4(0.25)=0.043.
6. Interpolao de Hermite
Supondo que f duas vezes diferencivel, sabe-se que um zero, xi , de f se diz
de multiplicidade dois se f(xi)=0, f (xi)=0 e f(xi)0. Diremos que duas funes
f e g 2-osculam (osculam 2-vezes) um ponto xi, se xi zero de multiplicidade 2
17
f ( n ) ( 0) n
x
n!
Com efeito,
pn(0)=f(0)
pn(0)=f (0)
....
pn(n) (0)=f(n)(0)
pn(n+1) (0)f(n+1)(0).
Consideremos ento um suporte (xi,yi), i=0,...,n, xixj para ij, e um polinmio
dito polinmio interpolador de Hermite, H2n+1(x) verificando as 2(n+1)
condies seguintes:
H2n+1(xi)=f(xi)
H 2n+1(xi)=f (xi)
Mostra-se que este polinmio de grau menor ou igual a 2n+1 existe e nico.
Vejamos como construir H2n+1 de uma forma que generaliza o polinmio
interpolador de Newton nas diferenas divididas. Consideremos os 2n+2 pontos
z0, z1,z2,...,z2n, z2n+1
e o polinmio interpolador de Newton
p 2 n +1 ( x) = f ( z 0 ) + ( x z 0 ) f [z 0 , z1 ] + ( x z 0 )( x z1 ) f [z 0 , z1 , z 2 ] +
(7)
18
z2=z3=x1
...
z2n=z2n+1=xn
ento a frmula (1) passa a escrever-se
p 2 n +1 ( x ) = f ( x 0 ) + ( x x 0 ) f [x 0 , x 0 ] + ( x x 0 ) 2 f [x 0 , x 0 , x1 ] + ( x x 0 ) 2 ( x x1 )
(8)
De facto, podemos generalizar a definio de diferenas divididas de modo a
dar significado frmula anterior: assim,
f ( x) f ( xi )
= f ' ( xi )
x xi
x xi
f [x0 , x0, x1 ] =
f
fi
fi
fi+1
fi+1
1as. difs
f i
f[xi,xi+1]
f i+1
2as. difs
f[xi,xi,xi+1]
f[xi,xi+1,xi+1]
3as. difs
f[xi,xi,xi+1,xi+1]
x
ln(x)
1
x
1
0
1
2
0.693147
0.5
Tem-se que
19
x
x0=1
x0=1
x1=2
x1=2
f
0
0
0.693147
0.693147
D2
-0.306853
-0.193147
D
1=f (1)
0.693147
0.5=f (2)
D3
0.113706
x 0 x x1
x1 x x 2
...
f ( x) = f ( xn 1) + mn 1( x xn 1),
20
x n -1 x x n
f ( xi +1) f ( xi )
xi +1 xi
Estas equaes podem ser usadas para avaliar o valor da funo em qualquer
ponto entre x0 e xn, bastando para tal localizar o intervalo em que o ponto cai. De
seguida, a equao apropriada usada para determinar o valor da funo nesse
intervalo. Este mtodo muito idntico interpolao linear.
Uma das grandes desvantagens deste mtodo reside no facto de ele no ser
suave. No ponto onde dois splines se encontram (chamado n), o declive muda
abruptamente. Ou seja, a primeira derivada da funo descontnua nestes
pontos. Esta desvantagem superada utilizando splines de ordem superior que
assegurem a suavidade nos ns e que entram com o valor da derivada nestes
pontos.
21
i=1,...,n
i=1,...,n-1
22
x
3.0
4.5
7.0
9.0
f(x)
2.5
1.0
2.5
0.5
Temos n=3 intervalos, como tal vamos ter 3n=9 condies que so:
20.25a1 + 4.5b1 + c1 = 1.0
20.25a + 4.5b + c = 1.0
2
2
2
2 7 a2 + b2 = 2 7a3 + b3
a1 = 0
Como a1=0 o problema resume-se a resolver oito equaes simultaneamente.
Em forma de matriz temos:
4.5
0.0
0.0
0.0
3.0
0.0
1.0
0.0
1.0
0.0
0.0
0.0
0.0 20.25
4.5
1.0
0.0
49.0
7.0
1.0
0.0
0.0
0.0
0.0
1.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
9.0
1.0 0.0
0.0
14.0
1.0
0.0
0.0 b1 1.0
0.0
0.0 0.0 c1 1.0
0.0
0.0 0.0 a2 2.5
49.0
7.0 1.0 b2 2.5
=
0.0
0.0 0.0 c2 2.5
81.0
9.0 1.0 a3 0.5
0.0
0.0 0.0 b2 0.0
14.0 1.0 0.0 c3 0.0
0.0
0.0
23
3.0 x 4.5
4.5 x 7.0
7.0 x 9.0