Академический Документы
Профессиональный Документы
Культура Документы
1. Introduo
Na interpolao deseja-se encontrar uma funo g(x) que possa substituir a funo
verdadeira f(x) de tal forma que g(xi*) = f(xi*), onde xi* pode ser um ponto ou um conjunto
de pontos no intervalo de validade de f(x) onde a condio acima satisfeita. Ou ainda, a
partir de uma srie de dados discretos em determinados pontos do espao, deseja-se buscar
uma funo g(x) que represente uma curva ou superfcie que passe por estes pontos.
Na aproximao tem-se uma funo dada f(x) ou uma srie de dados discretos em pontos do
espao e deseja-se obter uma funo g(x) que seja a mais aproximada possvel de f(x).
Portanto, ao contrrio da tcnica de interpolao, deseja-se aqui uma funo g(x) que
aproxime a funo f(x), a qual no precisa necessariamente satisfazer de forma exata a
funo ou os dados fornecidos.
2. Interpolao
O problema geral da interpolao pode ser estabelecido da seguinte forma: dada uma lista
de dados com n + 1 pontos definidos por (xi, f(xi)), deseja-se obter os valores f(x*), com x*
xi, tal que:
g ( xi ) = f ( xi ) ( xi , x0 xi xn , i = 0, n )
g ( x) f ( x) ( x ( x , x ) )
0 n
A funo g(x) usada para interpolar a funo f(x) pode pertencer a uma das seguintes
famlias:
Dado um conjunto de n + 1 pontos distintos definidos por (xi, f(xi)), com i = 0,n, a
interpolao polinomial consiste em obter um polinmio P(x) que passe por estes pontos,
isto :
P ( xi ) = f ( xi ) ( xi , x0 xi xn , i = 0, n )
Para os demais pontos, tem-se que:
P ( x) f ( x) ( x ( x , x ) )
0 n
Dados xi R e f(xi) R, com i = 0,n. Deseja-se obter P(x) tal que P(xi) = f(xi) para i = 0,n.
Sendo:
n
P ( x ) = ak x k
k =0
a0 + a1 x0 + a2 x02 + + an x0n = f 0
a0 + a1 x1 + a2 x1 + + an x1 = f1
2 n
a0 + a1 xn + a2 xn2 + + an xnn = f n
1 x0 x02 x0n
1 x1 x12 x1n
X =1 x2 x2
x2n
2
1 xn x2
xnn
n
3
n 1 n
det X = ( x j xi )
i = 0 j = i +1
n
f ( k ) ( x0 )
Pn ( x) = ( x x0 )
k
k =0 k!
onde f(k) representa a derivada de ordem k da funo interpolada f(x), sendo avaliada em x =
x0. O elemento Pn(x) chamado de Polinmio de Taylor de grau n. Tomando-se o limite de Pn
para n , obtm-se a chamada srie de Taylor com f centrada em x0.
A partir de uma representao em polinmios de Taylor para uma funo f(x) qualquer,
obtm-se uma aproximao para uma funo dada em um ponto especfico. Com isso, a
preciso da interpolao ser satisfatria apenas na regio prxima ao ponto x0.
P0 ( x0 = 0) = 1 P1 ( x0 = 0) = 1 + x
x2 x 2 x3
P2 ( x0 = 0) = 1 + x + P3 ( x0 = 0) = 1 + x + +
2 2 6
x 2 x3 x 4 x 2 x3 x 4 x5
P4 ( x0 = 0) = 1 + x + + + P5 ( x0 = 0) = 1 + x + + + +
2 6 24 2 6 24 120
Sendo:
f ( x ) = x 1 f ( x) = x 2
f ( x ) = ( 1) .2 x 3 f ( k ) ( x ) = ( 1) k ! x k 1
2 k
n
f ( k ) (1) n
Pn ( x) = ( x 1) = ( 1) ( x 1)
k k k
k =0 k! k =0
n 0 1 2 3 4 5 6 7
Pn(3) 1 -1 3 -5 11 -21 43 -85
A determinao de um polinmio de 1 grau que passe pelos pontos (x0, y0) e (x1, y1) uma
situao similar aproximao de uma funo f(x) para a qual f(x0) = y0 e f(x1) = y1 usando a
tcnica de interpolao com um polinmio de 1 grau que concorde com os valores de f nos
pontos dados (ver figura abaixo). Assim, define-se:
P ( x) = L0 ( x) f ( x0 ) + L1 ( x) f ( x1 )
5
onde:
x x1 x x0
L0 ( x ) = L1 ( x ) =
x0 x1 x1 x0
Como L0(x0) = 1, L0(x1) = 0, L1(x0) = 0 e L1(x1) = 1, conclui-se que P(x) a nica funo linear
que passa por (x0, y0) e (x1, y1).
Generalizando, para um polinmio de grau n (ou pelo menos n) que passe por n + 1 pontos
[(x0, f(x0)); (x1, f(x0));...; (xn, f(xn))] necessrio obter uma funo Ln,k para cada k (k = 0,n)
com as seguintes propriedades (ver figura abaixo):
Ln , k ( xi ) = 0 (i k )
Ln , k ( xi ) = 1 (i = k )
Para satisfazer a condio Ln,k(xi) = 0 para cada i k, o numerador de Ln,k(x) deve ser expresso
por:
( x x0 )( x x1 ) ( x xk 1 )( x xk +1 ) ( x xn )
( x x0 ) ( x xk 1 )( x xk +1 ) ( x xn )
Ln ,k ( xi ) =
( xk x0 ) ( xk xk 1 )( xk xk +1 ) ( xk xn )
sendo:
( x x0 ) ( x xk 1 )( x xk +1 ) ( x xn )
Lk ( x ) =
( xk x0 ) ( xk xk 1 )( xk xk +1 ) ( xk xn )
ou seja:
n
( x xi )
Lk ( x) =
i=0 ( xk xi )
(i k )
7
Exemplo 1: para os dados abaixo, calcule uma aproximao para a funo f(x) em x = 2,3
usando interpolao por polinmios de Lagrange.
i xi f(xi)
0 2,0 0,31495
1 2,4 0,02056
2 2,6 -0,09682
3 2,8 -0,18505
onde:
8
( x x1 )( x x2 )( x x3 )
L0 ( x) =
( x0 x1 )( x0 x2 )( x0 x3 )
(2, 3 2, 4)(2,3 2, 6)(2, 3 2,8)
L0 (2,3) = = 0, 078125
(2, 0 2, 4)(2, 0 2, 6)(2, 0 2,8)
( x x0 )( x x2 )( x x3 )
L1 ( x) =
( x1 x0 )( x1 x2 )( x1 x3 )
(2,3 2, 0)(2, 3 2, 6)(2,3 2,8)
L1 (2, 3) = = 1, 40625
(2, 4 2, 0)(2, 4 2, 6)(2, 4 2,8)
( x x0 )( x x1 )( x x3 )
L2 ( x) =
( x2 x0 )( x2 x1 )( x2 x3 )
(2,3 2, 0)(2,3 2, 4)(2,3 2,8)
L2 (2,3) = = 0, 625
(2, 6 2, 0)(2, 6 2, 4)(2, 6 2,8)
( x x0 )( x x1 )( x x2 )
L3 ( x) =
( x3 x0 )( x3 x1 )( x3 x2 )
(2, 3 2, 0)(2, 3 2, 4)(2, 3 2, 6)
L3 (2, 3) = = 0,140625
(2,8 2, 0)(2,8 2, 4)(2,8 2, 6)
Assim:
xi -2 -1 1
f(xi) -11 5 0,75
onde:
( x x1 )( x x2 )
L0 ( x ) =
( x0 x1 )( x0 x2 )
( x + 1)( x 1) x2 1
L0 ( x ) = =
( 2 + 1)( 2 1) 3
9
( x x0 )( x x2 )
L1 ( x) =
( x1 x0 )( x1 x2 )
( x + 2)( x 1) x2 + x 2
L1 ( x) = =
(1 + 2)(1 1) 2
( x x0 )( x x1 )
L2 ( x) =
( x2 x0 )( x2 x1 )
( x + 2)( x + 1) x 2 + 3 x + 2
L2 ( x) = =
(1 + 2)(1 + 1) 6
Portanto, tem-se:
x2 1 x2 + x 2 x2 + 3x + 2
P2 ( x ) = ( 11) + .5 + .0, 75
3 2 6
P2 ( x ) = ( 3, 6667 x 2 + 3, 6667 ) + ( 2, 5 x 2 2, 5 x + 5 ) + ( 0,125 x 2 + 0,375 x + 0, 25 )
Seja f(x) uma funo definida nos pontos x0, x1, ..., xn e supondo que m1, m2, ..., mk sejam k
nmeros inteiros distintos com 0 mi n, o polinmio de Lagrange que concorda com f(x)
nos k pontos xm1, xm2, ..., xmk pode ser descrito por:
Pk ( xi , xi +1 , , xi + k ) =
( x xi + k ) Pk 1 ( xi , xi +1 ,, xi + k 1 ) + ( xi x ) Pk 1 ( xi +1 , xi + 2 , , xi + k )
( xi xi + k )
10
Exemplo 3: obter o valor da funo f(x) em x = 1,5 a partir dos dados fornecidos na tabela
abaixo usando polinmios de Lagrange pelo mtodo recursivo de Neville.
i xi f(xi)
0 1,0 0,7651977
1 1,3 0,6200860
2 1,6 0,4554022
3 1,9 0,2818186
4 2,2 0,1103623
Na tabela abaixo se pode constatar que a coluna referente aos polinmios de grau zero
(constantes) que representam a funo f(x) em x = 1,5 preenchida pelos prprios valores
f(xi). Os valores dos polinmios para grau 1 so dados por:
P1 ( xi , xi +1 ) =
( x xi +1 ) P0 ( xi ) + ( xi x ) P0 ( xi +1 )
( xi xi +1 )
P1 ( x0 , x1 ) =
(1,5 1, 3) P0 (1, 0) + (1, 0 1, 5 ) P0 (1, 3) = 0, 5233449
(1, 0 1,3)
P1 ( x1 , x2 ) =
(1,5 1, 6 ) P0 (1, 3) + (1,3 1,5 ) P0 (1, 6) = 0, 5102968
(1, 3 1, 6 )
P1 ( x2 , x3 ) =
(1,5 1, 9 ) P0 (1, 6) + (1, 6 1, 5 ) P0 (1, 9) = 0, 5132634
(1, 6 1, 9 )
P1 ( x3 , x4 ) =
(1,5 2, 2 ) P0 (1, 9) + (1,9 1, 5) P0 (2, 2) = 0, 5233449
(1,9 2, 2 )
Os polinmios de grau 2 so dados por:
11
P2 ( xi , xi +1 , xi + 2 ) =
( x xi + 2 ) P1 ( xi , xi +1 ) + ( xi x ) P1 ( xi +1 , xi + 2 )
( xi xi + 2 )
P2 ( x0 , x1 , x2 ) =
(1,5 1, 6 ) P1 ( x0 , x1 ) + (1, 0 1,5 ) P1 ( x1 , x2 ) = 0,5124715
(1, 0 1, 6 )
P2 ( x1 , x2 , x3 ) =
(1,5 1,9 ) P1 ( x1 , x2 ) + (1, 3 1, 5 ) P1 ( x2 , x3 ) = 0, 5112857
(1, 3 1, 9 )
P2 ( x2 , x3 , x4 ) =
(1,5 2, 2 ) P1 ( x2 , x3 ) + (1, 6 1, 5 ) P1 ( x3 , x4 ) = 0,5137361
(1, 6 2, 2 )
Os polinmios de grau 3 so dados por:
P3 ( xi , xi +1 , xi + 2 , xi +3 ) =
( x xi +3 ) P2 ( xi , xi +1 , xi + 2 ) + ( xi x ) P2 ( xi +1 , xi + 2 , xi +3 )
( xi xi +3 )
P3 ( x0 , x1 , x2 , x3 ) =
(1, 5 1,9 ) P2 ( x0 , x1 , x2 ) + (1, 0 1, 5 ) P2 ( x1 , x2 , x3 ) = 0, 5118127
(1, 0 1, 9 )
P3 ( x1 , x2 , x3 , x4 ) =
(1, 5 2, 2 ) P2 ( x1 , x2 , x3 ) + (1, 3 1, 5 ) P2 ( x2 , x3 , x4 ) = 0,5118302
(1, 3 2, 2 )
Por fim, o polinmio de grau 4 dados por:
P4 ( xi , xi +1 , xi + 2 , xi +3 , xi + 4 ) =
( x xi + 4 ) P3 ( xi , xi +1 , xi + 2 , xi +3 ) + ( xi x ) P3 ( xi +1 , xi + 2 , xi +3 , xi + 4 )
( xi xi + 4 )
P4 ( x0 , x1 , x2 , x3 , x4 ) =
(1,5 2, 2 ) P3 ( x0 , x1 , x2 , x3 ) + (1, 0 1,5 ) P3 ( x1 , x2 , x3 , x4 ) = 0,5118200
(1, 0 2, 2 )
i xi P0 P1 P2 P3 P4
0 1,0 0,7651977 0,5233449 0,5124715 0,5118127 0,5118200
1 1,3 0,6200860 0,5102968 0,5112857 0,5118302 -
2 1,6 0,4554022 0,5132634 0,5137361 - -
3 1,9 0,2818186 0,5104270 - -
4 2,2 0,1103623 - - -
Portanto, considerando que o resultado exato para 7 casas decimais f(x = 1,5) = 0,5118277,
os 3 resultados mais prximos obtidos so P4(x0, x1, x2, x3, x4) = 0,5118200, P3(x1, x2, x3, x4) =
12
0,5118302 e P3(x0, x1, x2, x3) = 0,5118127. Para obter um valor mais preciso, seria necessrio
acrescentar um novo ponto x e determinar o polinmio P5(x0, x1, x2, x3, x4, x5).
Supondo que Pn(x) seja o polinmio de Lagrange de grau n e que concorde com a funo f(x)
em diferentes posies x0, x1, ..., xn, as diferenas divididas de f(x) com relao a x0, x1, ..., xn
podem ser utilizadas para expressar Pn(x) na seguinte forma:
Pn ( x) = a0 + a1 ( x x0 ) + a2 ( x x0 )( x x1 ) + + an ( x x0 )( x x1 ) ( x xn 1 )
Pn ( x0 ) = f ( x0 ) = a0
Pn ( x1 ) = f ( x1 ) = f ( x0 ) + a1 ( x1 x0 )
Logo:
f ( x1 ) f ( x0 )
a1 =
x1 x0
A diferena dividida de grau zero da funo f(x) em relao a xi, representada por f[xi],
dada por:
f [ xi ] = f ( xi )
A diferena dividida de 1 ordem de f(x) em relao a xi e xi+1, representada por f[xi, xi+1],
definida por:
f [ xi +1 ] f [ xi ]
f [ xi , xi +1 ] =
xi +1 xi
A diferena dividida de 2 ordem de f(x) em relao a xi, xi+1 e xi+2, representada por f[xi, xi+1,
xi+2], definida por:
f [ xi +1 , xi + 2 ] f [ xi , xi +1 ]
f [ xi , xi +1 , xi + 2 ] =
xi + 2 xi
Generalizando, a diferena dividida de ordem k de f(x) em relao a xi, xi+1, ..., xi+k, dada
por:
13
f [ xi +1 , xi + 2 , , xi + k ] f [ xi , xi +1 , , xi + k 1 ]
f [ xi , xi +1 , , xi + k ] =
xi + k xi
onde identificam-se f[x0, x1, ..., xk] = ak e f[x0] = a0. A frmula acima conhecida como
frmula interpoladora das diferenas divididas de Newton, na qual o valor f[x0, x1, ..., xk]
independe da ordem dos nmeros x0, x1, ..., xk. Os pontos xi podem ter espaamento
qualquer, no necessitando que estejam dispostos de forma equidistante.
Exemplo 1: obtenha as diferenas divididas para uma funo f(x) representada pelos dados
fornecidos abaixo:
i xi f(xi) f[xi, xi+1] f[xi, xi+1, xi+2] f[xi, xi+1, xi+2, xi+3]
0 1,5 2,30 0,6 0,2 0,222
1 1,8 2,48 0,7 0,333 -
2 2,0 2,62 0,8 - -
3 2,1 2,70 - - -
x = x0 + sh
sendo:
h = xi +1 xi (i = 0, n 1)
Assim, a diferena x xi pode ser expressa por x xi = (s i)h. Logo, o polinmio interpolador
Pn(x) vem dado por:
Pn ( x ) = Pn ( x0 + sh)
Pn ( x0 + sh) = f [ x0 ] + shf [ x0 , x1 ] +
s ( s 1) h 2 f [ x0 , x1 , x2 ] + + s ( s 1)( s n + 1) h n f [ x0 , x1 , , xn ]
n
Pn ( x0 + sh) = s ( s 1) ( s k + 1) h k f [ x0 , x1 , , xk ]
k =0
s s ( s 1) ( s k + 1)
=
k k!
n
s
Pn ( x) = Pn ( x0 + sh) = f [ x0 ] + k !h k f [ x0 , x1 , , xk ]
k =1 k
f ( xi ) = f ( xi +1 ) f ( xi ) (diferena de 1 ordem)
2 f ( xi ) = ( f ( xi ) ) = ( f ( xi +1 ) f ( xi ) ) = f ( xi +1 ) f ( xi ) = f ( xi + 2 ) 2 f ( xi +1 ) + f ( xi )
(diferena de 2 ordem)
n f ( xi ) = n 1 ( f ( xi ) ) = n 1 ( f ( xi +1 ) f ( xi ) ) = n 1 f ( xi +1 ) n 1 f ( xi )
(diferena de n-sima ordem)
Uma vez definidas as diferenas ascendentes nf(x) de uma funo f(x) em x = xi, relaes
com as respectivas diferenas divididas de ordem n podem ser estabelecidas atravs das
seguintes expresses:
f ( xi +1 ) f ( xi ) 1
f [ xi , xi +1 ] = = f ( xi ) (1 ordem)
xi +1 xi h
1 f ( xi +1 ) f ( xi ) 1
f [ xi , xi +1 , xi + 2 ] = = 2 2 f ( xi ) (2 ordem)
2h h 2h
1
f [ xi , xi +1 , , xk ] = k f ( xi ) (ordem k)
k !h k
n
s
Pn ( x) = f [ x0 ] + k f ( x0 )
k =1 k
Se os pontos x0, x1, ..., xn encontram-se dispostos de forma descendente, ou seja, xn, xn-1, ...,
x0, a frmula para o polinmio interpolador Pn(x) dada por:
Pn ( x) = f [ xn ] + f [ xn , xn 1 ] ( x xn ) + f [ xn , xn 1 , xn 2 ] ( x xn )( x xn 1 ) + +
f [ xn , , x0 ] ( x xn )( x xn 1 ) ( x x1 )
Dada uma funo f(x) qualquer, a diferena descendente f(xn) definida por:
f ( xn ) = f ( xn ) f ( xn 1 ) (n 1) (diferena de 1 ordem)
k f ( xn ) = k ( k 1 f ( xn ) ) (k 2) (diferena de ordem k)
Assim, tem-se:
1 1 2
f [ xn , xn 1 ] = f ( xn ) f [ xn , xn 1 , xn 2 ] = f ( xn )
h 2h 2
16
1
f [ xn , xn 1 , , xn k ] = k f ( xn )
k !h k
s ( s + 1) 2 s ( s + 1) ( s + n 1) n
Pn ( x ) = f [ xn ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 n!
s s ( s 1) ( s k + 1) s ( s + 1) ( s + k 1)
= = (1) k
k k! k!
Logo:
s s s
Pn ( x) = f [ xn ] + (1)1 f ( xn ) + (1) 2 2 f ( xn ) + + (1)n n f ( xn )
1 2 n
n
s
Pn ( x) = f [ xn ] + (1) k k f ( xn )
k =1 k
Escolhendo um ponto x0 localizado prximo ao ponto no qual se deseja obter f(x), definem-
se os pontos x1, x2,... como aqueles localizados diretamente acima de x0 e os pontos x-1, x-2,...
como aqueles diretamente abaixo de x0. Assim, a frmula de diferenas centradas de Stirling
obtida e expressa da seguinte forma:
Pn ( x) = P2 m +1 ( x) = f [ x0 ] +
sh
2
( f [ x1 , x0 ] + f [ x0 , x1 ]) + s 2 h2 f [ x1 , x0 , x1 ] +
s ( s 2 1)h3
2
( f [ x2 , x1 , x0 , x1 ] + f [ x1 , x0 , x1 , x2 ]) + +
( )
s 2 ( s 2 1)( s 2 4) s 2 ( m 1) h 2 m f [ x m , , xm ] +
2
s ( s 2 1) ( s 2 m 2 )h 2 m +1
2
( f [ x m1 , , xm ] + f [ x m , , xm+1 ])
onde n = 2m + 1 um nmero mpar. Para n = 2m par, tem-se:
17
Pn ( x) = P2 m ( x) = f [ x0 ] +
sh
2
( f [ x1 , x0 ] + f [ x0 , x1 ]) + s 2 h 2 f [ x1 , x0 , x1 ] +
s ( s 1)h3
2
2
( f [ x2 , x1 , x0 , x1 ] + f [ x1 , x0 , x1 , x2 ]) + +
( )
s 2 ( s 2 1)( s 2 4) s 2 ( m 1) h 2 m f [ x m , , xm ]
2
Exemplo 4: Para os dados abaixo, determinar o valor de f(x) em x = 1,1 e x = 2,0 usando um
polinmio interpolador de Newton com grau mximo para os dados fornecidos.
xi f(xi)
1,0 0,7651977
1,3 0,6200860
1,6 0,4554022
1,9 0,2818186
2,2 0,1103623
x = x0 + sh 1,1 = 1, 0 + s.0, 3 s =1 3
1
P4 (1,1) = P4 1, 0 + 0,3.
3
f [ xi +1 ] f [ xi ]
f [ xi , xi +1 ] =
xi +1 xi
f [ xi +1 , xi + 2 ] f [ xi , xi +1 ]
f [ xi , xi +1 , xi + 2 ] =
xi + 2 xi
f [ xi +1 , xi + 2 , xi +3 ] f [ xi , xi +1 , xi + 2 ]
f [ xi , xi +1 , xi + 2 , xi +3 ] =
xi +3 xi
f [ xi +1 , xi + 2 , xi +3 ] f [ xi , xi +1 , xi + 2 ]
f [ xi , xi +1 , xi + 2 , xi +3 ] =
xi +3 xi
18
i xi f[xi] f[xi, xi+1] f[xi, xi+1, xi+2] f[xi, xi+1, xi+2, xi+3] f[xi, xi+1, xi+2, xi+3, xi+4]
0 1,0 0,7651977 -0,4837057 -0,1087339 0,0658784 0,0018251
1 1,3 0,6200860 -0,5489460 -0,0494433 0,0680685 -
2 1,6 0,4554022 -0,5786120 0,0118183 - -
3 1,9 0,2818186 -0,5715210 - - -
4 2,2 0,1103623 - - - -
n
s
Pn ( x) = f [ x0 ] + k !h k f [ x0 , x1 , , xk ]
k =1 k
4
1 3
P4 (1,1) = f [1, 0] + k !(0,3) k f [ x0 , x1 , , xk ]
k =1 k
1 1 2
P4 (1,1) = 0, 7651977 + (0,3)(0, 4837057) + (0, 3) 2 (0,1087339) +
3 3 3
1 2 5 1 2 5 8
(0,3) (0, 0658784) + (0, 3) (0, 0018251)
3 4
3 3 3 3 3 3 3
P4 (1,1) = 0, 7196460
x = xi + sh 2, 0 = 2, 2 + s.0, 3 s = 2 3
2
P4 (2, 0) = P4 2, 2 0,3.
3
i xi f[xi] f[xi, xi+1] f[xi, xi+1, xi+2] f[xi, xi+1, xi+2, xi+3] f[xi, xi+1, xi+2, xi+3, xi+4]
0 2,2 0,1103623 -0,5715210 0,0118183 0,0680685 0,0018251
1 1,9 0,2818186 -0,5786120 -0,0494433 0,0658784 -
2 1,6 0,4554022 -0,5489460 -0,1087339 - -
3 1,3 0,6200860 -0,4837057 - - -
4 1,0 0,7651977 - - - -
2 21
P4 (2, 0) = 0,1103623 (0, 3)(0,5715210) (0,3) 2 (0, 0118183)
3 3 3
2 1 4 2 1 4 7
(0,3) (0, 0680685) (0,3) (0, 0018251)
3 4
3 3 3 3 3 3 3
P4 (2, 0) = 0, 2238754
Exemplo 5: a tabela abaixo fornece a demanda diria mxima de energia eltrica em uma
cidade. Determinar a data de pico mximo e o valor mximo correspondente.
n
s
Pn ( x) = f [ x0 ] + k f ( x0 )
k =1 k
Assim, tem-se:
s s ( s 1) 2 s ( s 1)( s 2) 3
P3 ( x) = f ( x0 ) + .f ( x0 ) + f ( x0 ) + f ( x0 )
1! 2! 3!
P3 ( x ) = f ( x0 ) +
( x x0 ) .f ( x ) + ( x x0 )( x x1 ) 2 f ( x ) + ( x x0 )( x x1 )( x x2 ) 3 f ( x )
0 0 0
1! h 2!h 2 3! h3
Logo:
P3 ( x ) = 10 +
( x 0 ) .5 + ( x 0 )( x 10 ) .0 + ( x 0 )( x 10 )( x 20 ) .(12)
10 2!10 2 3!103
20
P3 ( x ) = 0, 002 x 3 + 0, 06 x 2 + 0,1x + 10
Para obter o ponto de mximo, determina-se o valor x para o qual dP(x)/dx = 0, ou seja:
d
P3 ( x ) = 0, 006 x 2 + 0,12 x + 0,1 x1 = 20,80 x2 = 0,80123
dx
Como d2P(x)/dx2 < 0 em x = 20,80, este o ponto de mximo. Logo, o pico mximo na
demanda ocorre entre 25 e 26 de outubro e o valor correspondente :
xi f(xi)
1,5 2,30
1,8 2,48
2,0 2,62
2,1 2,70
Usando a frmula das diferenas divididas de Newton, tem-se a seguinte expresso para o
polinmio interpolador:
n
Pn ( x ) = f [ x0 ] + f [ x0 , x1 , , xk ] ( x x0 ) ( x xk 1 )
k =1
i xi f[xi] f[xi+1, xi] f[xi+2, xi+1, xi] f[xi+3, xi+2, xi+1, xi]
0 1,5 2,30 0,6 0,2 0,2222
1 1,8 2,48 0,7 0,3333 -
2 2,0 2,62 0,8 - -
3 2,1 2,70 - - -
P3 ( x) = f [ x0 ] + f [ x1 , x0 ] . ( x x0 ) + f [ x2 , x1 , x0 ] . ( x x0 ) . ( x x1 ) +
f [ x3 , x2 , x1 , x0 ] . ( x x0 ) . ( x x1 ) . ( x x2 )
P3 ( x) = 2, 30 + 0, 6. ( x 1, 5 ) + 0, 2. ( x 1,5 ) . ( x 1,8 ) +
0, 2222. ( x 1,5 ) . ( x 1,8 ) . ( x 2, 0 )
21
Supondo que sejam dados n + 1 pontos diferentes x0, x1, ..., xn no intervalo [a, b] e nmeros
inteiros no negativos m0, m1, ..., mn com m = mx{m0, m1, ..., mn}, define-se o polinmio
intermedirio como aquele que representa a funo f(x) em xi (i = 0, ..., n) tal que f(x) Cm[a,
b], sendo o polinmio de menor grau que concorda com f(x) e todas as suas derivadas de
ordem menor ou igual a mi em xi. O grau mximo deste polinmio ser:
n
M = mi + n
i=0
n
uma vez que o nmero de condies a serem satisfeitas igual a m + (n + 1) .
i =0
i
Portanto, o polinmio intermedirio que representa uma funo f(x) deve ser o polinmio
de menor grau tal que:
dk dk
P ( x ) = f ( xi ) (i = 0, n; k = 0, mi )
dx k dx k
Considerando uma funo f(x) C1[a, b] com x0, x1, ..., xn [a, b] e distintos valores, o nico
polinmio de grau mnimo concordante com f(x) e f(x) nos pontos xi o polinmio de
Hermite de grau pelo menos 2n + 1, dado por:
n n
H 2 n +1 ( x) = f ( x j ) H n , j ( x) + f ( x j ) H n , j ( x)
j =0 j =0
sendo:
H n , j ( x) = 1 2 ( x x j ) Ln, j ( x j ) L2n , j ( x )
H n , j ( x ) = ( x x j ) L2n , j ( x )
( x x0 ) ( x xk 1 )( x xk +1 ) ( x xn ) n
( x xi )
Ln ,k ( x) = =
( xk x0 ) ( xk xk 1 )( xk xk +1 ) ( xk xn ) i = 0 ( xk xi )
(i k )
( x x0 ) 2 ( x xn )2 (2 n+ 2)
f ( x) = H 2 n +1 ( x) + f ( )
(2n + 2)!
Exemplo 1: usando o polinmio de Hermite determine o valor f(x) em x = 1,5 a partir dos
dados abaixo, os quais descrevem a funo f(x) e sua derivada primeira em pontos discretos
xi.
xk f(xk) f(xk)
1,3 0,6200860 -0,5220232
1,6 0,4554022 -0,5698959
1,9 0,2818186 -0,5811571
Como os dados esto dispostos em trs pontos, tem-se que n = 2. Logo, obtm-se:
n n
H 2 n +1 ( x) = f ( x j ) H n , j ( x) + f ( x j ) H n , j ( x)
j =0 j =0
2 2
H 5 ( x) = f ( x j ) H 2, j ( x) + f ( x j ) H 2, j ( x)
j =0 j =0
sendo:
H 2, j ( x) = 1 2 ( x x j ) L2, j ( x j ) L22, j ( x )
H 2, j ( x ) = ( x x j ) L22, j ( x )
L2,0 ( x) =
( x x1 )( x x2 ) = 50 x 2 175 x + 152
( x0 x1 )( x0 x2 ) 9 9 9
L2,1 ( x) =
( x x0 )( x x2 ) = 100 x 2 + 320 x 247
( x1 x0 )( x1 x2 ) 9 9 9
L2,2 ( x) =
( x x0 )( x x1 ) = 50 x 2 145 x + 104
( x2 x0 )( x2 x1 ) 9 9 9
23
100 175
( x) =
L2,0 x
9 9
200 320
( x) =
L2,1 x+
9 9
100 145
( x) =
L2,2 x
9 9
2
100 2 320 247
H 2,1 ( x) = 1 x + x
9 9 9
2
50 145 104
H 2,2 ( x) = 10(2 x) x 2 x+
9 9 9
2
50 175 152
H 2,0 ( x) = ( x 1, 3) x 2 x+
9 9 9
2
100 2 320 247
H 2,1 ( x) = ( x 1, 6 ) x + x
9 9 9
2
50 145 104
H 2,2 ( x) = ( x 1,9 ) x 2 x+
9 9 9
Finalmente, obtm-se:
4 64 5
H 5 ( x) = 0, 6200860. + 0, 4554022. + 0, 2818186.
27 81 81
4 32 2
0,5220232. 0,5698959. 0, 5811571.
405 405 405
H 5 ( x) = 0,5118277
Uma forma alternativa mais simples para a construo de polinmios de Hermitte pode ser
obtida utilizando-se a frmula de diferenas divididas de Newton em x0, x1, ..., xn, ou seja:
24
n
Pn ( x ) = f [ x0 ] + f [ x0 , x1 , , xk ] ( x x0 ) ( x xk 1 )
k =1
possvel demonstrar que se f(x) Cn[a, b] com x0, x1, ..., xn sendo nmero distintos
contidos no intervalo [a, b], existe um nmero no intervalo (a, b) para o qual:
f ( n ) ( )
f [ x0 , x1 , , xk ] =
n!
Supondo que estejam disponveis os valores f(x) e f(x) em pontos distintos x0, x1, ..., xn,
define-se um sequncia de pontos z0, z1, ..., z2n+1 onde:
z2 i = z2i +1 = xi (i = 0, n)
Ao calcular as diferenas divididas utilizando-se os pontos z0, z1, ..., z2n+1, verifica-se que no
possvel definir f[z2i, z2i+1]. No entanto, pode-se demonstrar que neste caso possvel
empregar a seguinte relao:
f [ z2 i , z 2i +1 ] = f ( z2i ) = f ( xi )
Para as diferenas divididas restantes podem ser utilizadas as frmulas usuais. O polinmio
de Hermite dado pela seguinte expresso:
2 n +1
H 2 n +1 ( x) = f [ z0 ] + f [ z0 ,..., zk ] ( x z0 ) ( x zk 1 )
k =1
xk f(xk) f(xk)
1,3 0,6200860 -0,5220232
1,6 0,4554022 -0,5698959
1,9 0,2818186 -0,5811571
H 5 ( x) = f [ z0 ] + f [ z0 , z1 ] ( x z0 ) + f [ z0 , z1 , z2 ] ( x z0 )( x z1 ) +
f [ z0 , z1 , z2 , z3 ] ( x z0 )( x z1 )( x z2 ) +
f [ z0 , z1 , z2 , z3 , z4 ] ( x z0 )( x z1 )( x z2 )( x z3 )
f [ z0 , z1 , z2 , z3 , z4 , z5 ] ( x z0 )( x z1 )( x z2 )( x z3 )( x z4 )
Assim, chega-se a:
H 5 (1,5) = 0, 5118277
2.1.5 Splines
Uma alternativa dividir o intervalo fechado no qual est definido um nico polinmio
interpolador em vrios subintervalos com seus respectivos polinmios interpoladores, ou
seja, empregando polinmios secionados.
A forma mais bsica de representao de uma funo f(x) qualquer por polinmios
secionados utilizando polinmios locais lineares. Entretanto, esta opo traz a
desvantagem de no apresentar continuidade nas derivadas das funes polinomiais
adjacentes junto aos extremos dos subintervalos. Este problema pode ser resolvido
26
Para evitar a necessidade de informaes sobre derivadas da funo f(x) a ser representada
utilizam-se polinmios de partes criteriosas. A forma mais simples obtida usando-se
polinmios quadrticos definidos em pares de pontos xi sucessivos que definem os
subintervalos dentro do intervalo total [x0, xn]. Assim, polinmios quadrticos so
construdos nos subintervalos [xi, xi+1], os quais concordam com a funo a ser representada
nos pontos extremos dos subintervalos. Como um polinmio quadrtico tem 3 constantes
arbitrrias para 2 condies a serem satisfeitas nos extremos de cada subintervalo, h
flexibilidade para escolher o polinmio de tal forma que a funo interpoladora tenha uma
derivada contnua no intervalo [x0, xn]. Entretanto, quando condies devem ser
especificadas sobre a derivada do polinmio interpolador nos pontos extremos x0 e xn, o
nmero de constantes existentes no suficiente.
A forma mais comum de representao utilizando polinmios de partes criteriosas faz uso
de polinmios cbicos entre cada par sucessivo de pontos xi (interpolao por spline cbico).
Um polinmio cbico genrico tem quatro constantes, de modo que o procedimento com
splines cbicos tem flexibilidade suficiente para assegurar que a funo interpoladora no s
seja continuamente derivvel no intervalo, mas tambm que ele tenha uma derivada de 2
ordem contnua. A construo do spline cbico no garante, contudo, que as derivadas do
polinmio interpolador concordem com as derivadas da funo que est sendo
representada, mesmo nos pontos xi.
Dada uma funo f(x) definida no intervalo [a, b] e um conjunto de pontos x0 < x1 < ... < xn,
sendo x0 = a e xn = b, um spline cbico interpolador S(x) uma funo que satisfaz as
seguintes condies:
a) S(x) um polinmio cbico, sendo Sj(x) definido no subintervalo [xj, xj+1] para j = 0, n 1;
necessrio conhecer as derivadas nos pontos extremos do intervalo [xn, xn+1] ou, pelo menos,
uma aproximao acurada destes valores.
Um spline cbico interpolador de uma funo dada f(x) pode ser representado por:
S j ( x) = a j + b j ( x x j ) + c j ( x x j ) + d j ( x x j )
2 3
( j = 0, n 1)
a j +1 = S j +1 ( x j +1 ) = S j ( x j +1 )
a j +1 = a j + b j ( x j +1 x j ) + c j ( x j +1 x j ) + d j ( x j +1 x j )
2 3
( j = 0, n 2)
a j +1 = a j + b j h j + c j h 2j + d j h3j ( j = 0, n 1)
S j ( x j +1 ) = b j + 2c j ( x x j ) + 3d j ( x x j )
2
b j +1 = b j + 2c j h j + 3d j h 2j ( j = 0, n 1)
c j +1 = c j + 3d j h j ( j = 0, n 1)
Resolvendo a equao acima para dj, obtm-se novas expresses para aj+1 e bj+1 da seguinte
forma:
h 2j
a j +1 = a j + b j h j +
3
( 2c j + c j +1 ) ( j = 0, n)
b j +1 = b j + h j ( c j + c j +1 ) ( j = 0, n)
( a j +1 a j ) ( 2c j + c j +1 )
1 hj
bj =
hj 3
h j 1c j 1 + 2 ( h j 1 h j ) c j + h j c j +1 = ( a j +1 a j ) ( a j a j 1 )
3 3
( j = 1, n 1)
hj h j 1
S ( xn )
cn = =0
2
S ( x0 ) = 0 0 = 2c0 + 6d 0 ( x0 x0 )
1 0 0 0
h0 2 ( h0 + h1 ) h1
0 h1 2 ( h1 + h2 ) h2
A=
0
hn 2 2 ( hn 2 + hn 1 ) hn 1
0 0 0 1
0
3 3
( a2 a1 ) ( a1 a0 ) c0
h1 h0 c
b= x = 1
3 3
( an an1 ) ( an 1 an 2 ) cn
hn 1 hn 2
0
i) Dados necessrios: n + 1 pontos xi e n + 1 valores f(xi) com i = 0, n, onde x0 < x1 < ... <
xn.
iii) Montar a matriz A e o vetor b de acordo com as definies acima e resolver o sistema
de equaes linear para a obteno de cj (j = 0, n), observando que c0 = cn = 0.
( a j +1 a j ) ( 2c j + c j +1 )
1 hj
bj = ( j = 0, n 1)
hj 3
dj =
1
3h j
( c j +1 c j ) ( j = 0, n 1)
S j ( x) = a j + bj ( x x j ) + c j ( x x j ) + d j ( x x j )
2 3
( j = 0, n 1; x j x x j +1 )
Por outro lado, se a funo interpoladora em spline cbico deve satisfazer a condio de
contorno restrito, S(x0) = f(x0) e S(xn) = f(xn), o sistema de equaes acima deve tambm
sofrer alteraes para levar em conta estas condies. Assim, considera-se, inicialmente, a
seguinte expresso:
( a j +1 a j ) j ( 2c j + c j +1 )
1 h
bj = ( j = 0, n 1)
hj 3
Como f(x0) = S(x0) = b0, da equao acima se obtm a seguinte expresso para j = 0:
1 h
f ( x0 ) = ( a1 a0 ) 0 ( 2c0 + c1 )
h0 3
Logo:
3
2h0 c0 + h0 c1 = ( a1 a0 ) 3 f ( x0 )
h0
Da mesma forma, considerando que f(xn) = S(xn) = bn e a equao bj+1 = bj + hj(cj + cj+1)
deduzida mais acima, obtm-se:
f ( xn ) = bn 1 + hn 1 ( cn 1 + cn )
( a j +1 a j ) ( 2c j + c j +1 )
1 hj
bj = ( j = 0, n 1)
hj 3
para j = n 1, obtm-se:
30
1 h
f ( xn ) = ( an an 1 ) n1 ( 2cn1 + cn ) + hn1 ( cn 1 + cn )
hn 1 3
1 h
f ( xn ) = ( an an 1 ) + n 1 ( cn1 + 2cn )
hn 1 3
3
hn 1cn 1 + 2hn 1cn = 3 f ( xn ) ( an an1 )
hn 1
h j 1c j 1 + 2 ( h j 1 h j ) c j + h j c j +1 = ( a j +1 a j ) ( a j a j 1 )
3 3
hj h j 1
3
2h0 c0 + h0 c1 = ( a1 a0 ) 3 f ( x0 )
h0
3
hn 1cn 1 + 2hn 1cn = 3 f ( xn ) ( an an 1 )
hn 1
2h0 h0 0 0
h0 2 ( h0 + h1 ) h1
0 h1 2 ( h1 + h2 ) h2
A=
0
hn 2 2 ( hn 2 + hn 1 ) hn 1
0 0 hn 1 2hn 1
3
( a1 a0 ) 3 f ( x0 )
h0
3 3
( a2 a1 ) ( a1 a0 ) c0
h1 h0 c
b= x = 1
3 ( a a ) 3 ( a a )
hn 1 n n 1
hn 2
n 1 n2
cn
3
3 f ( xn ) ( an an 1 )
hn 1
i) Dados necessrios: n + 1 pontos xi e n + 1 valores f(xi) com i = 0, n, onde x0 < x1 < ... <
xn, alm de f(x0) e f(xn).
iii) Montar a matriz A e o vetor b de acordo com as definies acima e resolver o sistema
de equaes linear para a obteno de cj (j = 0, n).
( a j +1 a j ) ( 2c j + c j +1 )
1 hj
bj = ( j = 0, n 1)
hj 3
dj =
1
3h j
( c j +1 c j ) ( j = 0, n 1)
S j ( x) = a j + bj ( x x j ) + c j ( x x j ) + d j ( x x j )
2 3
( j = 0, n 1; x j x x j +1 )
xi 0,9 1,3 1,9 2,1 2,6 3,0 3,9 4,4 4,7 5,0 6,0 7,0 8,0 9,2 10,5 11,3 11,6 12,0 12,6 13,0 13,3
f(xi) 1,3 1,5 1,85 2,1 2,6 2,7 2,4 2,15 2,05 2,1 2,25 2,3 2,25 1,95 1,4 0,9 0,7 0,6 0,5 0,4 0,25
32
Como no h informaes sobre o valor das derivadas nos pontos extremos do intervalo [x0,
xn], utilizam-se as condies de contorno livre, ou seja, S(x0) = 0 e S(xn) = 0. Portanto, sero
empregadas aqui as definies do sistema Ax = b correspondentes a este caso. A tabela
abaixo resume os resultados dos parmetros necessrios para a obteno dos polinmios
interpoladores em cada um dos subintervalos j, onde:
S j ( x) = a j + bj ( x x j ) + c j ( x x j ) + d j ( x x j )
2 3
( j = 0, n 1; x j x x j +1 )
j xj aj = f(xj) bj cj dj
0 0,9 1,3 5,40 0,00 -0,25
1 1,3 1,5 0,42 -0,30 0,95
2 1,9 1,85 1,09 1,41 -2,96
3 2,1 2,1 1,29 -0,37 -0,45
4 2,6 2,6 0,59 -1,04 0,45
5 3,0 2,7 -0,02 -0,50 0,17
6 3,9 2,4 -0,50 -0,03 0,08
7 4,4 2,15 -0,48 0,08 1,31
8 4,7 2,05 -0,07 1,27 -1,58
9 5,0 2,1 0,26 -0,16 0,04
10 6,0 2,25 0,08 -0,03 0,00
11 7,0 2,3 0,01 -0,04 -0,02
12 8,0 2,25 -0,14 -0,11 0,02
13 9,2 1,95 -0,34 -0,05 -0,01
14 10,5 1,4 -0,53 -0,10 -0,02
15 11,3 0,9 -0,73 -0,15 1,21
16 11,6 0,7 -0,49 0,94 -0,84
17 12,0 0,6 -0,14 -0,06 0,04
18 12,6 0,5 -0,18 0,00 -0,45
19 13,0 0,4 -0,39 -0,54 0,60
20 13,3 0,25 - - -
2.1.6 Parametrizao
xi = x ( ui ) ; yi = y ( ui ) (i = 0, n)
onde ui indica a coordenada paramtrica do par de pontos (xi, yi), definida no intervalo [u0,
un] com u0 < u1 < ... < un. Embora a definio do intervalo [u0, un] arbitrria, utiliza-se,
geralmente, um intervalo normalizado [0, 1].
34
x ( u ) = cos u; y ( u ) = sen u 0 u
2
Uma forma paramtrica polinomial equivalente pode ser obtida considerando que t =
tan(u/2). Logo:
1 t2 2t
x (t ) = ; y (t ) = ( 0 t 1)
1+ t2 1+ t2
Uma superfcie, por exemplo, pode ser representada por uma funo implcita f(x, y, z) = 0.
Uma esfera de raio unitrio e centrada na origem do sistema x-y-z descrita pela funo x2 +
y2 + z2 = 1. Uma forma paramtrica (no nica) para esta geometria utiliza as seguintes
expresses para as coordenadas x, y e z:
i 0 1 2 3 4
ti 0,0 0,25 0,5 0,75 1,0
xi -1,0 0,0 1,0 0,0 1,0
yi 0,0 1,0 0,5 0,0 -1,0
35
Para obter a funo x(t), emprega-se a frmula do polinmio de Lagrange para grau 4, de
acordo com os dados fornecidos na tabela. Assim, obtm-se:
4 4
(t ti )
P4 (t ) = x(tk )Lk (t ); Lk (t ) =
k =0 i =0 (tk ti )
(i k )
Assim, tem-se:
O mtodo de Bzier aplicado a gerao de curvas pode ser descrito pela seguinte equao:
n
C(u ) = Bi ,n Pi
i =0
onde C(u) define um vetor de coordenadas parametrizadas {x(u); y(u); z(u)}T na posio u do
espao paramtrico normalizado [0, 1] (ou seja, 0 u 1), Pi o vetor de coordenadas {x, y,
z}T dos pontos de controle (ver figura abaixo) e Bi,n so polinmios de Bernstein de grau n
37
n!
Bi ,n (u ) = u i (1 u ) n i (i = 0, n)
i !(n i )!
Os pontos de controle formam o chamado polgono de controle, que tem a finalidade de dar
forma curva. O polgono de controle delimita a curva a ser gerada atravs de um polgono
convexo aberto, aproximando-se da forma da curva medida que se aumenta o nmero de
pontos de controle.
Para a representao de uma reta no plano x-y atravs do mtodo de Bzier, emprega-se n =
1 na frmula de C(u), obtendo-se:
1
C(u ) = Bi ,1Pi = B0,1P0 + B1,1P1
i =0
sendo:
1!
B0,1 (u ) = u 0 (1 u )1 0 = (1 u )
0!(1 0)!
1!
B1,1 (u ) = u1 (1 u )11 = u
1!(1 1)!
P0 = { x0 , y0 } P1 = { x1 , y1}
T T
sendo:
38
2!
B0,2 (u ) = u 0 (1 u ) 2 0 = (1 u ) 2
0!(2 0)!
2!
B1,2 (u ) = u1 (1 u ) 21 = 2u (1 u )
1!(2 1)!
2!
B2,2 (u ) = u 2 (1 u )2 2 = u 2
2!(2 2)!
P0 = { x0 , y0 } P1 = { x1 , y1} P2 = { x2 , y2 }
T T T
Observa-se que o polgono formado por {P0, P1, P2} contm a curva gerada e aproxima a
forma da curva. Alm disso, os pontos de controle nos extremos, P0 e P2, esto localizados
sobre a curva, de tal forma que C(0) = P0 e C(1) = P2 e as tangentes junto aos pontos
extremos P0 e P2 so paralelas aos vetores P1 P0 e P2 - P1.
sendo:
39
3!
B0,3 (u ) = u 0 (1 u )3 0 = (1 u )3
0!(3 0)!
3!
B1,3 (u ) = u1 (1 u )31 = 3u (1 u ) 2
1!(3 1)!
3!
B2,3 (u ) = u 2 (1 u )3 2 = 3u 2 (1 u )
2!(3 2)!
3!
B3,3 (u ) = u 3 (1 u )33 = u 3
3!(3 3)!
P0 = { x0 , y0 } P1 = { x1 , y1} P2 = { x2 , y2 } P3 = { x3 , y3 }
T T T T
Observa-se que o polgono formado por {P0, P1, P2, P3} contm a curva gerada e aproxima a
forma da curva. Alm disso, os pontos de controle nos extremos, P0 e P3, esto localizados
sobre a curva, de tal forma que C(0) = P0 e C(1) = P3 e as tangentes junto aos pontos
extremos P0 e P3 so paralelas aos vetores P1 P0 e P3 P2. Finalmente, verifica-se que a
mudana de direo da curva em u = 0 a mesma da sequncia de pontos de controle
P0P1P2. Igualmente, em u = 1 a mudana de direo da curva segue a sequncia de pontos de
controle P1P2P3.
40
Alm das propriedades observadas para as curvas analisadas acima, verifica-se tambm que
qualquer modificao da forma da curva obtida a partir da modificao da posio do
polgono de controle.
B
i =0
i ,n (u ) = 1 . Verifica-se tambm que B0,n(0) = Bn,n(1) = 1 e que h apenas um nico mximo
Bi ,n = (1 u ) Bi ,n 1 (u ) + uBi 1,n 1 (u )
Portanto, um ponto qualquer sobre uma curva C(u) pode ser obtido por interpolaes
lineares sucessivas. Para exemplificar, toma-se n = 2 e define-se:
2
C(u ) = Bi ,2 Pi = B0,2 P0 + B1,2 P1 + B2,2 P2
i =0
Logo:
P1,0 = (1 u0 ) P0 + u0 P1
P1,1 = (1 u0 ) P1 + u0 P2
n!
Bi ,n (u ) = u i (1 u ) n i (i = 0, n)
i !(n i )!
m!
B j ,m (u ) = u j (1 u ) m j ( j = 0, m)
j !(m j )!
42
O Mtodo de Bzier pode ser aplicado na interpolao de curvas representadas por pontos
discretos [xi, f(xi)] da seguinte forma: supondo que seja fornecido um conjunto de pontos Qi
= {xi, f(xi)}T com i = 0, n e deseja-se interpolar estes pontos com uma curva de Bzier de grau
p. Determinando-se uma coordenada paramtrica uk para cada ponto Qk disponvel,
possvel obter o seguinte sistema de equaes lineares:
n
Q k = C(uk ) = Bi , p (uk ) Pi ( k = 0, n)
i =0
u0 = 0 un = 1
Q k Q k 1
uk = uk 1 + (k = 1, n 1)
d
n
d = Q k Q k 1
k =1
Uma curva paramtrica B-spline de grau p uma curva polinomial por pedaos dada por:
n
C(u ) = N ip (u )Pi
i =0
43
1 se u [ui , ui +1 ]
N i0 (u ) =
0 se u [ui , ui +1 ]
u ui ui + p +1 u
N ip (u ) = N ip 1 (u ) + N ip+11 (u )
ui + p ui ui + p +1 ui +1
Observa-se que cada uma das funes de base N ip (u ) apresenta valores no nulos somente
no intervalo [ui, ui+p+1). Assim, um ponto u em uma curva influenciado por apenas p + 1
pontos de controle, o que caracteriza a propriedade de controle local sobre a geometria da
curva. Sobre os ns ui, as funes de base tm, em geral, continuidade Cp-1, a qual pode ser
reduzida quando mais do que um n definido com o mesmo valor. Sendo ki a
multiplicidade de um dado n ui, a continuidade das funes de base nesta posio fica
definida por Cp-k. No caso de curvas abertas, para forar que elas passem pelos pontos de
controle extremos, usa-se k0 = kn = p+1. A multiplicidade de um n pode ser interpretada de
duas formas: a) a multiplicidade de um n em relao ao vetor de ns; b) a multiplicidade de
um n em relao a uma funo de base.
Como o vetor de ns aberto (k0 = k10 = p+1), tem-se m = 10 (ndice do ltimo n). Logo,
como m = n + p + 1, o ndice do ltimo ponto de controle ser n = m p 1 = 7. Assim, tem-
se m + 1 = 11 ns e n + 1 = 8 pontos de controle.
1 0 u <1 1 1 u < 2
N 20 = N 30 =
0 caso contrrio 0 caso contrrio
1 2u<3 1 3u <4
N 40 = N 50 =
0 caso contrrio 0 caso contrrio
1 4u<5
N 70 =
0 caso contrrio
u 0 0 0u 0
N 01 = N0 + N1 = 0 para < u <
00 00
u 0 0 1 u 0 1 u 0 u <1
N11 = N1 + N2 =
00 1 0 0 caso contrrio
u 0 u <1
u 0 2 u
N 21 = N 20 + N 30 = 2 u 1 u < 2
1 0 2 1 0
casos restantes
45
u 1 1 u < 2
u 1 3 u
N31 = N30 + N 40 = 3 u 2u <3
2 1 3 2 0
casos restantes
u 2 2u<3
u 2 0 4u 0
N =
1
N4 + N5 = 4 u 3u < 4
3 2 43
4
0 casos restantes
u 3 0 4 u 0 u 3 3u < 4
N 51 = N5 + N6 =
43 44 0 caso contrrio
u 4 0 5 u 0 5 u 4u<5
N 61 = N6 + N7 =
44 54 0 caso contrrio
u 4 0 5 u 0 u 4 4u<5
N 71 = N7 + N8 =
54 55 0 caso contrrio
u 5 0 5u 0
N81 = N8 + N9 = 0 para < u <
55 55
u 0 1 1 u 1
N 02 = N0 + N1 = (1 u ) para 0 u < 1
2
00 1 0
3
2u u 2 0 u <1
u 0 1 2u 1 2
N12 = N1 + N2 =
1 0 20 1 ( 2 u )2 1 u < 2
2
46
1 2
2 u 0 u <1
u 0 1 3u 1 3
N2 =
2
N2 + N 3 = + 3u u 2 1 u < 2
20 3 1 2
1
2 (3 u ) 2u<3
2
1
2 ( u 1) 1 u < 2
2
u 1 1 4 u 1 11
N3 =
2
N3 + N 4 = + 5u u 2 2u<3
3 1 42 2
1
2 (4 u) 3u <4
2
1
( u 2) 2u<3
2
u 2 4 u
N 42 = N 41 + N 51 = 2
42 43 16 + 10u 3 u 2 3u < 4
2
u 3 1 5 u 1 ( u 3) 3u < 4
2
N =
2
N5 + N6 =
( 5 u )
43 54
5
4u<5
2
u 4 1 5u 1
N 62 = N6 + N 7 = 2 ( u 4 )( 5 u ) para 4 u < 5
54 54
u 4 1 5u 1
N 72 = N7 + N8 = ( u 4 ) para 4 u < 5
2
54 55
N 02 {0, 0, 0,1}
N 22 {0,1, 2,3}
Uma superfcie B-spline definida pelo produto tensorial de funes de base unidirecionais,
como mostra a expresso abaixo:
n m
S (u , v ) = N ip (u ) N qj (v ) Pi , j
i = 0 j =0
U = {u0 , u1 , , ur }
V = {v0 , v1 , , vs }
48
Para utilizar a formulao B-spline na interpolao de curvas a partir de uma srie de dados
dispostos de forma discreta, ser necessrio determinar a posio dos pontos de controle
que faz com que a curva produzida passe pelos pontos pr-determinados.
n
Q k = C ( uk ) = N ip (uk ) Pi
i =0
u0 = 0 un = 1
Q k Q k 1
uk = uk 1 + (k = 1, n 1)
d
n
d = Q k Q k 1
k =1
Para a definio do vetor de ns U = {u0, u1, ..., um}T pode-se adotar a seguinte metodologia:
u0 = = u p = 0
um p = = um = 1
49
1 k + p 1
uk + p = ui
p i =k
( k = 1, , n p )
3. Aproximao
Ao contrrio da tcnica de interpolao, onde se deseja obter uma funo que passe por
determinados pontos previamente escolhidos, na tcnica de aproximao busca-se uma
funo que seja a mais prxima possvel de uma dada funo ou de um conjunto de dados
discretos. Assim, pode-se dizer que atravs de interpolao obtm-se sempre uma funo
que satisfaz um conjunto de dados ou uma funo conhecida apenas localmente nos pontos
especificados, enquanto que a funo obtida por aproximao ir satisfazer de forma
aproximada os dados existentes de uma forma global.
{
E ( a0 , a1 ) = mx y ( xi ) ( a1 xi + a0 )
1i n
}
O problema acima conhecido como minimax e, normalmente, no pode ser resolvido por
tcnicas elementares.
O valor obtido a partir da expresso acima chamado de desvio absoluto, cujo mnimo
obtido igualando-se a zero a primeira derivada de E1 em relao a a0 e a1, ou seja:
a0
y ( x ) (a x + a ) = 0
i =1
i 1 i 0
n
y ( xi ) ( a1 xi + a0 ) = 0
a1 i =1
Por fim, pode-se empregar a abordagem de mnimos quadrados para o problema, a qual
busca a determinao da melhor equao de aproximao considerando que o erro total
50
envolvido medido pela soma dos quadrados das diferenas entre os valores existentes y(xi)
e os valores dados pela equao de aproximao nestes mesmos pontos xi, isto :
n
E2 ( a0 , a1 ) = y ( xi ) ( a1 xi + a0 )
2
i =1
n n
y ( x ) ( a x + a ) = 2 y ( xi ) a1 xi a0 ( 1) = 0
2
a0
i 1 i 0
i =1 i =1
n n
( i ) ( 1 i 0 ) y ( xi ) a1 xi a0 ( xi ) = 0
2
y x a x + a = 2
a1 i =1 i =1
n n n
a0 xi + a1 xi2 = xi y ( xi )
i =1 i =1 i =1
xi2 y ( xi ) xi y ( xi ) xi
a0 = i =1 i =1 i =1
2
i =1
n
n
n xi2 xi
i =1 i =1
n n n
n xi y ( xi ) xi y ( xi )
a1 = i =1 i =1 i =1
2
n
n
n xi2 xi
i =1 i =1
xi 1 2 3 4 5 6 7 8 9 10
f(xi) 1,3 3,5 4,2 5,0 7,0 8,8 10,1 12,5 13,0 15,6
51
Logo:
385.81 55.572, 4
a0 = = 0, 360
10.385 ( 55 )
2
10.572, 4 55.81
a1 = = 1, 538
10.385 ( 55 )
2
Portanto:
P ( x ) = 1,538 x 0,360 .
Para um conjunto de dados discretos (xi, y(xi)), com i = 1, m, a ser aproximado por um
polinmio algbrico Pn(x) = anxn + an-1xn-1 + ... + a1x + a0, de grau n < m-1, tem-se o erro total
da aproximao em mnimos quadrados dado por:
m
E2 = y ( xi ) Pn ( xi )
2
i =1
Logo:
m m m
E2 = ( y ( xi ) ) 2 Pn ( xi ) y ( xi ) + ( Pn ( xi ) )
2 2
i =1 i =1 i =1
2
m m n m n
E2 = ( y ( xi ) ) 2 a j xi j y ( xi ) + a j xij
2
i =1 i =1 j =1 i =1 j =1
52
m n
m n n m
E2 = ( y ( xi ) ) 2 a j y ( xi ) xij + a j ak xij + k
2
i =1 j =0 i =1 j =0 k =0 i =1
m n
m
E2 = 2 y ( xi ) xi j + 2 ak xi j + k = 0
a j i =1 k =0 i =1
Da expresso acima se obtm um sistema de equaes normais com n + 1 incgnitas aj, isto
:
n
m j +k m
k xi = y ( xi ) xi ( j = 0, n)
j
a
k =0 i =1 i =1
m m m m
a0 xin + a1 xin +1 + + an xi2 n = y ( xi ) xin
i =1 i =1 i =1 i =1
i 1 2 3 4 5
xi 0,0 0,25 0,50 0,75 1,0
f(xi) 1,0000 1,2840 1,6487 2,1170 2,7183
5 5 5 5
a0 xi1 + a1 xi2 + a2 xi3 = y ( xi ) xi1
i =1 i =1 i =1 i =1
5 5 5 5
a0 xi2 + a1 xi3 + a2 xi4 = y ( xi ) xi2
i =1 i =1 i =1 i =1
53
i xi f(xi) (xi)0 (xi)1 (xi)2 (xi)3 (xi)4 f(xi). (xi)0 f(xi). (xi)1 f(xi). (xi)2
1 0,0 1,0000 1,0 0,0 0,0 0,0 0,0 1,0000 0,0 0,0
2 0,25 1,2840 1,0 0,25 0,0625 0,01563 0,0039 1,2840 0,321 0,0803
3 0,50 1,6487 1,0 0,50 0,25 0,125 0,0625 1,6487 0,8244 0,4122
4 0,75 2,1170 1,0 0,75 0,5625 0,4219 0,3164 2,1170 1,5878 1,1908
5 1,0 2,7183 1,0 1,0 1,0 1,0 1,0 2,7183 2,7183 2,7183
- - 5,0 2,5 1,875 1,5625 1,3828 8,7680 5,4514 4,4015
Logo, obtm-se:
i =1
O que corresponde ao mnimo que pode ser obtido a partir de um polinmio de grau 2.
Ao invs de um polinmio, a equao de aproximao pode ter uma forma distinta. Por
exemplo, se os dados disponveis esto relacionados de maneira exponencial ou em funo
de potncia, a funo de aproximao passa a ser dada por:
F ( x ) = be ax
54
ou:
F ( x ) = bx a
Neste caso, o erro total por mnimos quadrados para um conjunto de n dados dispostos de
forma discreta fica definido por uma das seguintes expresses:
n
E2 = y ( xi ) be axi
2
i =1
n
E2 = y ( xi ) bxia
2
i =1
( )
n
E2 = 2 y ( xi ) be axi e axi = 0
b i =1
( )
n
E2 = 2 y ( xi ) be axi bxi e axi = 0
a i =1
ou, ainda:
E2 = 2 y ( xi ) bxia ( xia ) = 0
n
b i =1
E2 = 2 y ( xi ) bxia ( b(Ln xi ) xia ) = 0
n
a i =1
O problema das equaes acima que, geralmente, nenhuma soluo exata pode ser
encontrada para as incgnitas a e b. O mtodo normalmente utilizado consiste em
considerar o logaritmo das equaes aproximativas:
Ln F ( x ) = Ln a + bx para F ( x ) = aebx
Ln F ( x ) = Ln a + b Ln x para F ( x ) = ax b
y ( xi ) = a0 + a1 xi a0 = Ln a; a1 = b; y ( xi ) Ln y ( xi )
ou:
y ( xi ) = a0 + a1 xi a0 = Ln a; a1 = b; y ( xi ) Ln y ( xi ); xi Ln xi
n n n n n n n
xi2 Ln y ( xi ) xi xi Ln y ( xi ) n xi Ln y ( xi ) xi Ln y ( xi )
Ln a = i =1 i =1 i =1 i =1
2
b= i =1 i =1 i =1
2
n
n n
n
n x xi 2
i n x xi
2
i
i =1 i =1 i =1 i =1
ou:
n n n n
( Ln x ) Ln y ( x ) Ln x Ln x Ln y ( x )
2
i i i i i
Ln a = i =1 i =1 i =1 i =1
2
n
n
n ( Ln xi ) Ln xi
2
i =1 i =1
n n n
n Ln xi Ln y ( xi ) Ln xi Ln y ( xi )
b= i =1 i =1 i =1
2
n
n
n ( Ln xi ) Ln xi
2
i =1 i =1
Entretanto, como a abordagem utilizada no exatamente uma aproximao por mnimos
quadrados devido linearizao realizada e, por isso, essa aproximao pode, em alguns
casos, divergir significativamente da aproximao obtida por mnimos quadrados atravs da
soluo de um sistema de equaes no lineares.
A partir dos dados disponveis possvel fazer uma rpida estimativa da forma da curva de
aproximao. Para um conjunto de dados (xi, f(xi)) com i = 0, n, tem-se que:
a funo de aproximao ser uma equao linear (reta) se: fi/xi constante, onde
fi = f(xi+1) - f(xi) e xi = xi+1 xi.
a funo de aproximao ser uma parbola se: 2fi constante, onde 2fi = fi+1 -
fi.
Alm disso, a prpria visualizao da disposio dos pontos sobre o plano x-y ajuda a
identificar a forma da curva de aproximao.
Exemplo 3: para os dados abaixo, determine a funo de aproximao por mnimos
quadrados.
i xi f(xi)
1 1,0 5,10
2 1,25 5,79
3 1,50 6,53
4 1,75 7,45
5 2,00 8,46
56
Avaliando os dados apresentados, verifica-se que Log(fi)/xi constante para i = 1,5, o que
indica que a funo de aproximao tem forma exponencial. Assim, tem-se que:
F ( x ) = aebx Ln F ( x ) = Ln a + bx
y ( xi ) = a0 + a1 xi a0 = Ln a; a1 = b; y ( xi ) Ln y ( xi )
Portanto:
n n n n n n n
xi2 Ln y ( xi ) xi xi Ln y ( xi ) n xi Ln y ( xi ) xi Ln y ( xi )
Ln a = i =1 i =1 i =1 i =1
2
b= i =1 i =1 i =1
2
n
n n
n
n x xi
2
i n x xi
2
i
i =1 i =1 i =1 i =1
Assim, aplicando os dados acima nas frmulas referentes aos parmetros Ln(a) e b, obtm-
se:
O problema bsico da aproximao de funes surge quando se deseja obter uma funo de
aproximao para uma dada funo f(x) j conhecida.
Supondo que f(x) seja uma funo representando uma curva qualquer definida em um
intervalo [a, b] no eixo x, o erro por mnimos quadrados gerado por um polinmio de
aproximao Pn(x) com grau mnimo n em relao quela curva vem dado por:
b
E = f ( x ) Pn ( x ) dx
2
Logo, a fim de minimizar o erro E, os coeficientes a0, a1, ..., an devem ser determinados
empregando-se a seguinte condio necessria:
E =0 ( j = 0, n)
a j
a a k =0 a a k =0
b n b
E = 2 x j f ( x)dx + 2 ak x j + k dx
a j a k =0 a
n b b
ak x j + k dx = x j f ( x)dx
k =0
( j = 0, n)
a a
Para um polinmio de grau 2 tem-se que P2(x) = a0 + a1x + a2x2. O sistema de equaes
normais para este problema fica definido como:
2 1 1
a x
k =0
k
j+k
dx = x j sen( x)dx ( j = 0, 2)
0 0
1 1 1 1
a0 1dx + a1 xdx + a2 x 2 dx = sen( x)dx
0 0 0 0
1 1 1 1
a0 xdx + a1 x 2 dx + a2 x 3 dx = x sen( x) dx
0 0 0 0
1 1 1 1
a0 x 2 dx + a1 x3 dx + a2 x 4 dx = x 2 sen( x) dx
0 0 0 0
1 1 2
a0 + a1 + a2 =
2 3
1 1 1 1
a0 + a1 + a2 =
2 3 4
1 1 1 2 4
a0 + a1 + a2 =
3 4 5 3
Polinmios ortogonais
Uma funo w(x) chamada de funo ponderada em um intervalo I = [a, b] se w(x) 0 para
todo x I e, alm disso, w(x) 0 em qualquer subintervalo de I. O objetivo do uso de
funes ponderadas consiste em atribuir diferentes graus de importncia para as
aproximaes em determinadas regies de um dado intervalo I (ver figura abaixo).
Supondo que {0, 1, ..., n} seja um conjunto de funes linearmente independentes em [a,
b] e w(x) uma funo ponderada, o erro por mnimos quadrados da aproximao P(x) para
uma funo f(x) vlida no intervalo [a, b] dado por:
b
E = w ( x ) f ( x ) P ( x ) dx
2
a ( x)
k =0
k k
b
n
E = 2 w ( x ) f ( x ) akk ( x ) j ( x ) dx = 0 ( j = 0, n)
a j a k =0
b n b
w ( x ) f ( x ) j ( x ) dx = ak w ( x ) k ( x ) j ( x ) dx
a k =0 a
( j = 0, n)
w ( x ) f ( x ) j ( x ) dx = a j w ( x ) j ( x ) dx
2
( j = 0, n)
a a
b
w ( x ) f ( x ) j ( x ) dx = a j j ( j = 0, n)
a
Assim:
b
1
aj =
j w ( x ) f ( x ) ( x ) dx
a
j ( j = 0, n)
0 ( x ) = 1; 1 ( x ) = x B1 ( x [ a , b ])
xw( x) [ ( x)]
2
0 dx
B1 = a
b
w( x) [ ( x)]
2
0 dx
a
e para k 2:
k ( x ) = ( x Bk ) k 1 ( x ) Ckk 2 ( x ) ( x [ a , b ])
61
b b
xw( x) [ ( x ) ] dx xw( x) ( x )k 2 ( x ) dx
2
k 1 k 1
Bk = a
b
Ck = a
b
w( x) [k 1 ( x)] dx w( x) [ ( x ) ] dx
2 2
k 2
a a
onde:
b
w ( x ) f ( x ) ( x ) dxk
ak = a
b
( k = 0, n)
w ( x ) ( x )
2
k dx
a
1 dn 2
n (
x 1)
n
- Legendre: Pn ( x) =
2 n ! dx
n
Exemplo 4: obtenha uma aproximao por mnimos quadrados para a funo f(x) = x2 + 3x +
2 no intervalo [0, 1]. Use um polinmio de aproximao linear e o conceito de
ortogonalidade.
0 ( x ) = 1 ( x [0,1])
1 ( x ) = x B1 ( x [0,1])
b 1
xw( x) [0 ( x)] dx x dx
2
1
B1 = a
b
= 0
1
=
2
w( x) [ ( x)] dx
2
0 dx
a 0
Logo:
1
1 ( x) = x B1 = x
2
62
w ( x ) f ( x ) ( x ) dx
k
ak = a
b
w ( x ) ( x )
2
k dx
a
1 1
( x + 3x + 2 ) 0 ( x ) dx (x + 3 x + 2 ) dx
2 2
23
a0 = 0
1
= 0
1
=
6
( x )
2
0
0 dx dx
0
1 1
( x + 3x + 2 )1 ( x ) dx (x + 3 x + 2 ) x dx
2 2 1
2 13
a1 = 0
1
= 0
1 2
= =4
1 1 12
( x )
2
0
1 dx x 2
0
dx
Assim, tem-se:
1
23 1
P1 ( x ) = ak k ( x ) = a00 ( x ) + a11 ( x ) = + 4 x
k =0 6 2
P1 ( x ) = 1,8333 + 4 x
Polinmios trigonomtricos
1
0 ( x ) =
2
k ( x) = cos(kx) ( k = 1, n)
n + k ( x) = sen( kx) ( k = 1, n 1)
Observa-se que este conjunto ortogonal no intervalo [-, ] em relao a uma funo
ponderada dada por w(x) = 1.
Para uma funo f(x) contnua no intervalo [-, ], deseja-se encontrar a aproximao por
mnimos quadrados para funes em Fn atravs de:
n 1
a0
Sn ( x) = + an cos( nx ) + [ ak cos( kx ) + bk sen( kx ) ]
2 k =1
63
Como o conjunto de funes {0, 1, ... e 2n-1} ortogonal no intervalo [-, ] em relao a
w(x) = 1, os coeficientes ak e bk na expresso acima podem ser obtidos atravs de:
1
ak =
f ( x) cos( kx) dx (k = 0, n)
1
bk =
f ( x)sen( kx) dx (k = 1, n 1)
S ( x ) = lim S n ( x )
n
1 2 2
ak = x cos(kx) dx = x cos(kx ) dx = ( 1) 1 (k = 1, n 1)
k
0
k 2
1
bk =
x sen(kx) dx = 0 ( k = 1, n 1)
( 1) 1
k
2 n
Sn ( x) =
2
+
k =1 k 2
cos( kx )