Buscar

Interpolacao polinomial 1pp 1

Prévia do material em texto

1
Computação Científica II
(EEL7031)
Interpolação e Aproximações Polinomiais
2
Objetivos e Tópicos Principais
� Objetivos
� Estudar técnicas de representação de funções ou coleção de dados 
por funções polinomiais, cujas derivadas e integrais são também 
polinômios.
� Tópicos principais
� Introdução
� Interpolação polinomial
� Polinômios de Lagrange
� Diferenças divididas
� Interpolação de Hermite
� Funções Spline em Interpolação
� Curvas paramétricas
� Comentários Finais
3
Introdução
� Aspectos gerais
� Interpolar refere-se a determinação de uma função que representa 
exatamente uma coleção de dados.
� Os objetivos da interpolação polinomial podem ser:
� obter um polinômio para representar uma coleção de dados;
� determinar valores para pontos intermediários aos disponíveis em uma 
coleção de dados;
� representar determinadas variáveis de um problema por funções 
contínuas ou de comportamento suave, que possam ser derivadas ou 
integrados, como é o caso de polinômios.
� Teorema da aproximação de Weierstrass
� Suponha que f seja definida e contínua no intervalo [a,b]. Para , 
existe um polinômio , definido em [a,b], com a seguinte 
propriedade:
0>ε
)(xP
[ ]. ,qualquer ,)()( baxxPxf ∈<− ε [ ]. ,qualquer ,)()( baxxPxf ∈<− ε
4
Introdução
� Interpolação X Polinômio de Taylor
� Pelo teorema de Weierstrass, o polinômio interpolador deve fornecer 
uma aproximação relativamente precisa sobre todo o intervalo [a,b]. 
� A expansão em série de Taylor, ou polinômio de Taylor, fornece uma 
aproximação com boa precisão somente em torno de um ponto 
específico e, em geral, não é adequado como polinômio interpolador.
� Ilustração 
xexf =)( xexf =)(
0 
de tornoem Expansão
0 =x
5
Interpolação polinomial
� Elementos básicos
� Dados os pontos:
� Aproximar por um polinômio de grau .
� Então:
)()()()( 210
210
n
n
xfxfxfxf
xxxx
⋯
⋯
)()()()( 210
210
n
n
xfxfxfxf
xxxx
⋯
⋯
)(xf n≤
n
nn xaxaxaaxP ++++= …
2
210)(
n
nn xaxaxaaxP ++++= …
2
210)( :que tal
nkxPxf knk ,,2,1,0 ),()( …== nkxPxf knk ,,2,1,0 ),()( …==














=++++
=++++
=++++
)(
)(
)(
2
210
11
2
12110
00
2
02010
n
n
nnnn
n
n
n
n
xfxaxaxaa
xfxaxaxaa
xfxaxaxaa
…
⋮
…
…














=++++
=++++
=++++
)(
)(
)(
2
210
11
2
12110
00
2
02010
n
n
nnnn
n
n
n
n
xfxaxaxaa
xfxaxaxaa
xfxaxaxaa
…
⋮
…
…
)(,(,),(,(),(,( 1100 nn xfxxfxxfx … )(,(,),(,(),(,( 1100 nn xfxxfxxfx …
6
Interpolação polinomial
� Elementos básicos (cont.)
� Na forma matricial, tem-se:
� Para distintos, tem-se e, então,o sistema linear 
admite solução única.
� Portanto, existe um único polinômio , de grau , tal que:
















=
















⋅
















)(
)(
)(
)(
1
1
1
1
2
1
0
2
1
0
2
2
2
22
1
2
11
0
2
00
nn
n
nnn
n
n
n
xf
xf
xf
xf
a
a
a
a
xxx
xxx
xxx
xxx
⋮⋮
⋯
⋮⋱⋮⋮⋮
⋯
⋯
⋯
















=
















⋅
















)(
)(
)(
)(
1
1
1
1
2
1
0
2
1
0
2
2
2
22
1
2
11
0
2
00
nn
n
nnn
n
n
n
xf
xf
xf
xf
a
a
a
a
xxx
xxx
xxx
xxx
⋮⋮
⋯
⋮⋱⋮⋮⋮
⋯
⋯
⋯
nxxx ,,, 10 … 0det ≠A
)(xPn n≤
nkxfxP kkn ,,2,1,0 ),()( …== nkxfxP kkn ,,2,1,0 ),()( …== que desde kjxx jk ≠≠ , kjxx jk ≠≠ ,
7
Interpolação polinomial
� Exemplo
� Encontre com grau que interpola os pontos da tabela abaixo: 
� Polinômios de referência
� Então: 
)(2 xP 2≤






−
−
114)(
201
xf
x






−
−
114)(
201
xf
x 2
2102 )( xaxaaxP ++=
2
2102 )( xaxaaxP ++=










++==
++==
++==
2
22210222
2
12110112
2
02010002
)()(
)()(
)()(
xaxaaxfxP
xaxaaxfxP
xaxaaxfxP










++==
++==
++==
2
22210222
2
12110112
2
02010002
)()(
)()(
)()(
xaxaaxfxP
xaxaaxfxP
xaxaaxfxP










++=−
++=
+−=
210
0
210
421
001
4
aaa
a
aaa










++=−
++=
+−=
210
0
210
421
001
4
aaa
a
aaa










−
=










⋅









 −
1
1
4
421
001
111
2
1
0
a
a
a










−
=










⋅









 −
1
1
4
421
001
111
2
1
0
a
a
a










−=










3/2
3/7
1
2
1
0
a
a
a










−=










3/2
3/7
1
2
1
0
a
a
a
2
2
3
2
3
7
1)( xxxP +−= 22
3
2
3
7
1)( xxxP +−=
8
Interpolação polinomial
� Exemplo (cont.)
� Representação gráfica do polinômio interpolador






−
−
114)(
201
xf
x






−
−
114)(
201
xf
x 2
2
3
2
3
7
1)( xxxP +−= 22
3
2
3
7
1)( xxxP +−=
9
Polinômios de Lagrange
� Formulação matemática
� Considere a tabela de pontos:
� Aproximar por um polinômio de grau 
� Sejam os polinômios de grau 
)()()()( 210
210
n
n
xfxfxfxf
xxxx
⋯
⋯
)()()()( 210
210
n
n
xfxfxfxf
xxxx
⋯
⋯
)(xf n≤
n
nn xaxaxaaxP ++++= …
2
210)(
n
nn xaxaxaaxP ++++= …
2
210)( :que tal nkxfxP kkn ,,2,1,0 ),()( …== nkxfxP kkn ,,2,1,0 ),()( …==
)1( +n nkxqk ,,1,0 ),( …= n














−−−=
−−−=
−−−=
− )())(()(
)())(()(
)())(()(
110
201
210
nn
n
n
xxxxxxxq
xxxxxxxq
xxxxxxxq
⋯
⋮
⋯
⋯














−−−=
−−−=
−−−=
− )())(()(
)())(()(
)())(()(
110
201
210
nn
n
n
xxxxxxxq
xxxxxxxq
xxxxxxxq
⋯
⋮
⋯
⋯ ⇔ ( ) nkxxxq
n
kj
j
jk ,,2,1,0 ; )(
0
…=−=∏
≠
=
( ) nkxxxq
n
kj
j
jk ,,2,1,0 ; )(
0
…=−=∏
≠
=
∴ kjxq
kxq
jk
kk
≠∀=
∀≠
 ,0)(
 ,0)(
Os polinômios são conhecidos como polinômios de Lagrange)(xqk
10
Polinômios de Lagrange
� Formulação matemática (cont.)
� Define-se como uma combinação linear de 
�Portanto: 
�A questão principal é determinar 
�Então:
nkxqk ,,1,0 ),( …=)(xPn
)()()()()( 221100 xqbxqbxqbxqbxP nnn ++++= ⋯ )()()()()( 221100 xqbxqbxqbxqbxP nnn ++++= ⋯ ∑=
=
n
k
kkn xqbxP
0
)()( ∑
=
=
n
k
kkn xqbxP
0
)()(
nkbk ,,1,0 , …=
:que tal nkxfxP kkn ,,2,1,0 ),()( …==














==
==
==
)()()(
)()()(
)()()(11111
00000
nnnnnn
n
n
xqbxfxP
xqbxfxP
xqbxfxP
⋮














==
==
==
)()()(
)()()(
)()()(
11111
00000
nnnnnn
n
n
xqbxfxP
xqbxfxP
xqbxfxP
⋮














=
=
=
)(/)(
)(/)(
)(/)(
1111
0000
nnnn xqxfb
xqxfb
xqxfb
⋮














=
=
=
)(/)(
)(/)(
)(/)(
1111
0000
nnnn xqxfb
xqxfb
xqxfb
⋮
nk
xqf(xb kkkk
,,1,0
),(/)
…=
=
nk
xqf(xb kkkk
,,1,0
),(/)
…=
=
⇔
⇔
11
Polinômios de Lagrange
� Formulação matemática (cont.)
� Portanto: 
� Definindo-se:
� Pode-se escrever:
� Na forma compacta, o polinômio interpelador de Lagrange é dado por:
)(
)(
)(
)(
)(
)(
)(
)(
)(
)(
)(
)(
)( 2
22
2
1
11
1
0
00
0 xq
xq
xf
xq
xq
xf
xq
xq
xf
xq
xq
xf
xP n
nn
n
n ++++= ⋯ )(
)(
)(
)(
)(
)(
)(
)(
)(
)(
)(
)(
)( 2
22
2
1
11
1
0
00
0 xq
xq
xf
xq
xq
xf
xq
xq
xf
xq
xq
xf
xP n
nn
n
n ++++= ⋯
)())(())((
)())(())((
)(
)(
)(
1110
1110
,
nkkkkkkk
nkk
kk
k
kn
xxxxxxxxxx
xxxxxxxxxx
xq
xq
xL
−−−−−
−−−−−
==
+−
+−
⋯⋯
⋯⋯
)())(())((
)())(())((
)(
)(
)(
1110
1110
,
nkkkkkkk
nkk
kk
k
kn
xxxxxxxxxx
xxxxxxxxxx
xq
xq
xL
−−−−−
−−−−−
==
+−
+−
⋯⋯
⋯⋯
)()()()()()()( ,1,10,0 xLxfxLxfxLxfxP nnnnnn +++= ⋯ )()()()()()()( ,1,10,0 xLxfxLxfxLxfxP nnnnnn +++= ⋯
∑
=
=
n
k
knkn xLxfxP
0
, )()()( ∑
=
=
n
k
knkn xLxfxP
0
, )()()(
( )
( )∏
∏
≠=
≠=
−
−
=
n
kj
jk
n
kj
j
kn
xx
xx
xL
,0
,0
, )(
( )
( )∏
∏
≠=
≠=
−
−
=
n
kj
jk
n
kj
j
kn
xx
xx
xL
,0
,0
, )(
:onde
12
Polinômios de Lagrange
� Exemplo
� Encontre com grau que interpola os pontos da tabela abaixo 
usando o polinômio interpolador de Lagrange 
� Determinar os coeficientes do polinômio 
)(2 xP 2≤






−
−
114)(
201
xf
x






−
−
114)(
201
xf
x
2 0 2,0 1 2,1 2 2,2( ) ( ) ( ) ( ) ( ) ( ) ( )P x f x L x f x L x f x L x= + +2 0 2,0 1 2,1 2 2,2( ) ( ) ( ) ( ) ( ) ( ) ( )P x f x L x f x L x f x L x= + +
1 2
2,0
0 1 0 2
( )( )
( )
( )( )
x x x x
L x
x x x x
− −
=
− −
1 2
2,0
0 1 0 2
( )( )
( )
( )( )
x x x x
L x
x x x x
− −
=
− − )21)(01(
)2)(0(
−−−−
−−
=
xx
)21)(01(
)2)(0(
−−−−
−−
=
xx
3
22 xx −
=
3
22 xx −
=
0 2
2,1
1 0 1 2
( )( )
( )
( )( )
x x x x
L x
x x x x
− −
=
− −
0 2
2,1
1 0 1 2
( )( )
( )
( )( )
x x x x
L x
x x x x
− −
=
− − )20))(1(0(
)2))(1((
−−−
−−−
=
xx
)20))(1(0(
)2))(1((
−−−
−−−
=
xx
2
22
−
−−
=
xx
2
22
−
−−
=
xx
0 1
2,2
2 0 2 1
( )( )
( )
( )( )
x x x x
L x
x x x x
− −
=
− −
0 1
2,2
2 0 2 1
( )( )
( )
( )( )
x x x x
L x
x x x x
− −
=
− − )02)(12(
)0)(1(
−+
−+
=
xx
)02)(12(
)0)(1(
−+
−+
=
xx
6
2 xx +
=
6
2 xx +
=
2,0 2,1 2,2( ), ( ) e ( )L x L x L x
13
Polinômios de Lagrange
� Exemplo (cont.)
� Portanto: 
� Aproximação para 






−
−
114)(
201
xf
x






−
−
114)(
201
xf
x
2 0 2,0 1 2,1 2 2,2( ) ( ) ( ) ( ) ( ) ( ) ( )P x f x L x f x L x f x L x= + +2 0 2,0 1 2,1 2 2,2( ) ( ) ( ) ( ) ( ) ( ) ( )P x f x L x f x L x f x L x= + +
6
1
2
2
1
3
2
4)(
222
2
xxxxxx
xP
+
−
−
−−
+
−
=
6
1
2
2
1
3
2
4)(
222
2
xxxxxx
xP
+
−
−
−−
+
−
=





+




 −+
−
+




 −−=
2
2
6
1
2
1
3
8
6
1
2
1
3
4
)( 22 xxxP 




+




 −+
−
+




 −−=
2
2
6
1
2
1
3
8
6
1
2
1
3
4
)( 22 xxxP 1
3
7
3
2
)( 22 +




−




= xxxP 1
3
7
3
2
)( 22 +




−




= xxxP
:)1(f
11
3
7
1
3
2
)1( 22 +




−




=P 11
3
7
1
3
2
)1( 22 +




−




=P
3
2
)1(2 −=P
3
2
)1(2 −=P
14
Polinômios de Lagrange
� Fórmula do erro 
� A fórmula do erro do polinômio de Lagrange é dada por:
� Esta fórmula de erro é um importante resultado teórico, visto que os 
polinômios de Lagrange são usados extensivamente para derivar 
métodos de diferenciação e integração numérica. 
� Limites de erro para essas técnicas são obtidos da fórmula de erro de 
Lagrange.
� O uso específico desta fórmula de erro, contudo, está restrito àquelas 
funções cujas derivadas têm limites conhecidos.
)())((
)!1(
))((
)()( 10
)1(
n
n
n xxxxxx
n
xf
xPxf −−−
+
+=
+
⋯
ξ
)())((
)!1(
))((
)()( 10
)1(
n
n
n xxxxxx
n
xf
xPxf −−−
+
+=
+
⋯
ξ
nxxxx ,,, contém que interval dolugar qualquer em se-situa )( onde 10 …ξ
15
Interpolação por Diferenças Divididas
� Diferenças Divididas
� Seja uma função tabelada em , pontos distintos. 
Define-se o operador diferenças divididas como segue: 
)(xf nxxx ,,, 10 … )1( +n
)(][ 00 xfxf = )(][ 00 xfxf =
01
01
01
01
10
)()(][][
],[
xx
xfxf
xx
xfxf
xxf
−
−
=
−
−
=
01
01
01
01
10
)()(][][
],[
xx
xfxf
xx
xfxf
xxf
−
−
=
−
−
=
02
1021
210
],[],[
],,[
xx
xxfxxf
xxxf
−
−
=
02
1021
210
],[],[
],,[
xx
xxfxxf
xxxf
−
−
=
0
11021
10
],,,[],,,[
],,,[
xx
xxxfxxxf
xxxf
n
nn
n −
−
= −
……
…
0
11021
10
],,,[],,,[
],,,[
xx
xxxfxxxf
xxxf
n
nn
n −
−
= −
……
…
⋮⋮
⋮⋮
 
 
⋮⋮
⋮⋮
 
 
k
k
xxx
xfk
xxxf
,,, sobre
)( de ordem de
dividida diferença a é
],,,[
10
10
…
…
k
k
xxx
xfk
xxxf
,,, sobre
)( de ordem de
dividida diferença a é
],,,[
10
10
…
…
16
Interpolação por Diferenças Divididas
� Tabela de Diferenças Divididas
][ 
],[ 
],,[ 
 
][ 
],[ 
],,,[ ],,[ ][ 
],[ 
],,[ ][ 
],[ 
],,[ ][ 
],[ 
][ 
n Ord. 2 Ord. 1 Ord. 0 Ord. x 
1
12
44
43
2104323 3
32
32122
21
21011
10
00
nn
nn
nnn
n
xfx
xxf
xxxf
xfx
xxf
xxxxfxxxfxfx
xxf
xxxfxfx
xxf
xxxfxfx
xxf
xfx
−
−−⋮
⋮
…⋯
⋯
][ 
],[ 
],,[ 
 
][ 
],[ 
],,,[ ],,[ ][ 
],[ 
],,[ ][ 
],[ 
],,[ ][ 
],[ 
][ 
n Ord.2 Ord. 1 Ord. 0 Ord. x 
1
12
44
43
2104323 3
32
32122
21
21011
10
00
nn
nn
nnn
n
xfx
xxf
xxxf
xfx
xxf
xxxxfxxxfxfx
xxf
xxxfxfx
xxf
xxxfxfx
xxf
xfx
−
−−⋮
⋮
…⋯
⋯
:lado ao tabelaa
construir sepode
)(,),(),(
 conhecidos e
 função uma Dada
10
−
nxfxfxf
f(x)
…
:lado ao tabelaa
construir sepode
)(,),(),(
 conhecidos e
 função uma Dada
10
−
nxfxfxf
f(x)
…
ãoInterpolaç
 de polinômio
 o para interesse
 de esCoeficient
17
Interpolação por Diferenças Divididas
� Fórmula de interpolação de diferenças divididas de Newton
� Dado o conjunto de pontos o 
polinômio interpolador de Newton é dado por:
� Na forma compacta, tem-se:
)(,(,),(,(),(,( 1100 nn xfxxfxxfx …
)())(](,,,[ 
))(](,,[)](,[][)(
11010
102100100
−−−−+
+−−+−+=
nn
n
xxxxxxxxxf
xxxxxxxfxxxxfxfxP
⋯…
…
)())(](,,,[ 
))(](,,[)](,[][)(
11010
102100100
−−−−+
+−−+−+=
nn
n
xxxxxxxxxf
xxxxxxxfxxxxfxfxP
⋯…
…
∑
=
−−−−+=
n
k
kkn xxxxxxxxxfxfxP
1
110100 )())(](,,,[][)( ⋯…∑
=
−−−−+=
n
k
kkn xxxxxxxxxfxfxP
1
110100 )())(](,,,[][)( ⋯…
Note que os coeficientes da fórmula de interpolação de diferenças 
divididas de Newton são os elementos da diagonal superior da tabela
18
Interpolação por Diferenças Divididas
� Tabela de Diferenças Divididas
� A tabela abaixo mostra as diferenças divididas de até terceira ordem 
para .),,,,,( 543210 xxxxxx
Note que faltam 2 termos de quarta ordem e 1 de quinta ordem.
191][2
1
][][
],[
3
2],[],[
],,[1][0
3
][][
],[
4][1
2 Ord.1 Ord.)(
22
12
12
21
02
1021
21011
01
01
10
00
−==
−=
−
−
=
=
−
−
===
−=
−
−
=
=−=
xfx
xx
xfxf
xxf
xx
xxfxxf
xxxfxfx
xx
xfxf
xxf
xfx
xfx
Interpolação por Diferenças Divididas
� Exemplo 1:
� Determine que interpola nos pontos dados abaixo, usando a 
fórmula de Newton.
� Tabela de diferenças divididas
)(xf)(2 xP






−
−
114)(
201
xf
x






−
−
114)(
201
xf
x
))((],,[ 
)(],[][)(
10210
01002
xxxxxxxf
xxxxfxfxP
−−⋅
+−⋅+=
))((],,[ 
)(],[][)(
10210
01002
xxxxxxxf
xxxxfxfxP
−−⋅
+−⋅+=
20
Interpolação por Diferenças Divididas
� Exemplo 1 (cont.):
� Portanto:
))((],,[)(],[][)( 1021001002 xxxxxxxfxxxxfxfxP −−⋅+−⋅+= ))((],,[)(],[][)( 1021001002 xxxxxxxfxxxxfxfxP −−⋅+−⋅+=
)0)(1()3/2()1()3(4)(2 −+⋅++⋅−+= xxxxP )0)(1()3/2()1()3(4)(2 −+⋅++⋅−+= xxxxP
xxxxP )3/2()3/2(334)( 22 ++−−= xxxxP )3/2()3/2(334)(
2
2 ++−−=
1
3
7
3
2
)( 22 +−= xxxP 1
3
7
3
2
)( 22 +−= xxxP






−
−
114)(
201
pontos de Tabela
xf
x






−
−
114)(
201
pontos de Tabela
xf
x
21
Interpolação por Diferenças Divididas
� Exemplo 2:
� Monte a tabela de diferenças divididas para o conjunto de dados abaixo:
1
0
1 -1/2
-1 1/6
0 0 -1/24
-1 0
-1 0
-1
-2
01 =x
10 −=x
x
12 =x
23 =x
34 =x
1 Ord. 2 Ord. 3 Ord. 4 Ord.
21011)(
32101
−−
−
xf
x)(xf
22
Interpolação por Diferenças Divididas
� Exemplo 2:
� Monte a tabela de diferenças divididas para o conjunto de dados abaixo:
21011)(
32101
−−
−
xf
x
))()()((],,,,[ 
))()((],,,[ 
))((],,[)(],[][)(
321043210
2103210
1021001004
xxxxxxxxxxxxxf
xxxxxxxxxxf
xxxxxxxfxxxxfxfxP
−−−−⋅+
−−−⋅+
−−⋅+−⋅+=
))()()((],,,,[ 
))()((],,,[ 
))((],,[)(],[][)(
321043210
2103210
1021001004
xxxxxxxxxxxxxf
xxxxxxxxxxf
xxxxxxxfxxxxfxfxP
−−−−⋅+
−−−⋅+
−−⋅+−⋅+=
)2)(1)(0)(1(
24
1
)1)(0)(1(
6
1
)0)(1(
2
1
1)(4 −−−+−−−++−+−= xxxxxxxxxxP )2)(1)(0)(1(
24
1
)1)(0)(1(
6
1
)0)(1(
2
1
1)(4 −−−+−−−++−+−= xxxxxxxxxxP
23
Interpolação de Hermite
� Aspectos gerais
� Os polinômios de Lagrange reproduzem os valores da função para 
pontos específicos. 
� Os valores de são, freqüentemente, determinados da observação e, 
em alguns casos, pode-se determinar também a sua derivada .
� Na interpolação de Hermite determina-se um polinômio que reproduz os 
valores da função e de sua derivada em pontos específicos.
� Suponha que sejam dados os pontos
� Suponha ainda que tenha a primeira derivada contínua no intervalo 
[a,b] que contém . 
� O polinômio interpolador de Lagrange deverá ter grau , porém o 
polinômio de Hermite deverá ter grau para poder atender a 
condição adicional dos valores da derivada, .
f
f
f ′
( ) ( ) ( ))(,,,)(,,)(, 1100 nn xfxxfxxfx …
)1( +n
nxxx ,,, 10 …
f
f ′
)12( +n
n
24
Interpolação de Hermite
� Formulação matemática
� Suponha que e que são distintos em .
� O polinômio único de mínimo grau que reproduz os valores de 
para é o polinômio de grau máximo dado por: 
� Note que é o j-ésimo coeficiente de Lagrange do polinômio de 
grau n. 
],[1 baCf ∈
,)(ˆ)()()()(
0
,
0
,12 ∑∑
==
+ ′+=
n
j
jnj
n
j
jnjn xHxfxHxfxH ,)(
ˆ)()()()(
0
,
0
,12 ∑∑
==
+ ′+=
n
j
jnj
n
j
jnjn xHxfxHxfxH
ff ′ e 
],[ banxxx ,,, 10 …
:onde
)12( +n
[ ] )()()(ˆ e )(.)()(21)( 2 ,,2 ,,, xLxxxHxLxLxxxH jnjjnjnjjnjjn −=′−−= [ ] )()()(ˆ e )(.)()(21)( 2 ,,2 ,,, xLxxxHxLxLxxxH jnjjnjnjjnjjn −=′−−=
nxxx ,,, 10 …
)(, xL jn
25
Interpolação de Hermite
� Formulação matemática (cont.)
� Fórmula do erro do polinômio de Hermite:
� Se , então: 
� Comentários
� A determinação do polinômio de Hermite a partir do polinômio de 
Lagrange e suas derivadas torna esse procedimento muito tedioso.
� Existe um procedimento alternativo para a geração das aproximações 
de Hermite, a partir da correlação entre a n-ésima diferença dividida e a 
n-ésima derivada de , descrita a seguir. 
22
0
)22(
12 )()(
)!22(
))((
)()( n
n
n xxxx
n
xf
xHxf −−
+
+=
+
+ ⋯
ξ 22
0
)22(
12 )()(
)!22(
))((
)()( n
n
n xxxx
n
xf
xHxf −−
+
+=
+
+ ⋯
ξ
],[22 baCf n+∈
],[)( algump/ , bax ∈ξ
f
26
Interpolação de Hermite
� Relação entre diferença dividida e derivada
� Se e são distintos em , então existe 
algum , tal que: 
� Polinômio de Hermite usando diferenças divididas
� Se e são distintos em , então: 
],[ baCf n∈ ],[ ba
nkxfzzfxzz kkkkkk ,,1,0 );(],[ e 122122 …=′=== ++ nkxfzzfxzz kkkkkk ,,1,0 );(],[ e 122122 …=′=== ++
nxxx ,,, 10 …
),( em baξ
!
)(
],,,[
)(
10
n
f
xxxf
n
n
ξ
=…
!
)(
],,,[
)(
10
n
f
xxxf
n
n
ξ
=…
],[1 baCf ∈ nxxx ,,, 10 … ],[ ba
∑
+
=
−+ −−+=
12
1
1010012 )(,),](,,,[][)(
n
k
kkn zxzxzzzfzfxH ……∑
+
=
−+ −−+=
12
1
1010012 )(,),](,,,[][)(
n
k
kkn zxzxzzzfzfxH ……
:onde
27
Interpolação de Hermite
� Exemplo: tabela de diferenças divididas para Pol. de Hermite
)(][
)(],[
 
],[],[
],,[)(][
][][
],[
 
],[],[
],,[)(][
)(],[
 
],[],[
],,[)(][
][][
],[],[],[
],,[)(][
)(],[
)(][
 2 Ord. 1 Ord. 
2525
254
35
4354
5432424
34
34
43
24
3243
4321313
132
13
2132
3211212
12
12
21
02
1021
2100101
010
0000
xfzfxz
xfzzf
zz
zzfzzf
zzzfxfzfxz
zz
zfzf
zzf
zz
zzfzzf
zzzfxfzfxz
xfzzf
zz
zzfzzf
zzzfxfzfxz
zz
zfzf
zzf
zz
zzfzzf
zzzfxfzfxz
xfzzf
xfzfxz
f(z)z
==
′=
−
−
===
−
−
=
−
−
===
′=
−
−
===
−
−
=
−
−
===
′=
==
⋯
⋯
⋯
⋯
⋯
210
5
,,
para
)(
xxx
xH
28
Interpolação de Hermite
� Exemplo: tabela de diferenças divididas para Pol. de Hermite
2818186.09.1
5811571.0
0084837.02818186.09.1
0685667.05786120.0
0010020.00290537.04554022.06.1
0027738.00679655.05698959.0
0026663.00698330.04554022.06.1
0663657.05489460.0
0897427.6200860.03.1
5220232.0
6200860.03.1
−
−
−
−
−−
−
−
−
−
2818186.09.1
5811571.0
0084837.02818186.09.1
0685667.05786120.0
0010020.00290537.04554022.06.1
0027738.00679655.05698959.0
0026663.00698330.04554022.06.1
0663657.05489460.0
0897427.6200860.03.1
5220232.0
6200860.03.1
−
−
−
−
−−
−
−
−
−
))()()()((0027738
))()()((0026663.0))()((0663657.0
))((0897427.0)(5220232.06200860.0)(
43210
3210210
1005
zxzxzxzxzx
zxzxzxzxzxzxzx
zxzxzxxH
−−−−−−
−−−−+−−−
+−−−−−=
))()()()((0027738
))()()((0026663.0))()((0663657.0
))((0897427.0)(5220232.06200860.0)(
43210
3210210
1005
zxzxzxzxzx
zxzxzxzxzxzxzx
zxzxzxxH
−−−−−−
−−−−+−−−
+−−−−−=
5118277.0
)5.1(5 =H
5118277.0
)5.1(5 =H
29
Interpolação por Funções Spline
� Aspectos Gerais
� A interpolação polinomial pode apresentar resultados indesejáveis 
quando feita para um número elevado de pontos usando-se polinômios 
de grau relativamente alto.
� Esses resultados indesejáveis são, em geral, grandes flutuações sobre o 
intervalo total de interpolação.
� Uma alternativa é interpolar em grupos de poucos pontos, 
obtendo-se polinômios de grau menor, e impor condições para que a 
função de aproximação seja contínua e tenha derivadas contínuas até 
uma certa ordem.
� Esta técnica é conhecida como aproximação polinomial por partes .
)(xf
30
� Aspectos Gerais (cont.)
� A aproximação linear por partes é a mais simples de todas e consiste 
em unir um conjunto de pontos, , por 
uma série de linhas retas, tal como ilustrado na figura abaixo.
� A desvantagem desta aproximação (linear por partes) é o fato de não 
ser possível a diferenciação nos extremos dos subintervalos, sendo a 
função de interpolação de comportamento não suave nestes pontos.
Interpolação por Funções Spline
( ) ( ) ( ))(,,,)(,,)(, 1100 nn xfxxfxxfx …
31
� Funções Spline Cúbicas
� A funções spline cúbicas utilizam polinômios cúbicos entre pares de 
pontos, sendo a técnica mais comum de aprox. polinomial por partes.
� Um polinômio cúbico padrão envolve 4 constantes e, assim, assegura 
que a função interpolante tenha duas derivadas contínua no intervalo.
� As derivadas das funções spline cúbicas, em geral, não reproduzem as 
derivadas da função original, mesmo para os pontos tabelados (ver 
figura).
Interpolação por Funções Spline
32
� Spline Cúbica Interpolante
� Considere uma função definida em e o conjunto de nós: 
� Uma spline cúbica interpolante, , para , é uma função que 
satisfaz as seguintes condições:
Interpolação por Funções Spline
)(xf ],[ ba
,10 bxxxa n =<<<= ⋯ ,10 bxxxa n =<<<= ⋯
S )(xf
.2,,1,0),()( (e)
.2,,1,0),()( (d)
.2,,1,0),()( (c)
.,,1,0),()( (b)
],[)( cúbico polinômio um é )( ,1,,1,0 cada Para (a)
111
111
111
1
−=∀′′=′′
−=∀′=′
−=∀=
=∀=
∈−=
+++
+++
+++
+
njxSxS
njxSxS
njxSxS
njxfxS
xxxSxSnj
jjjj
jjjj
jjjj
jj
jjj
…
…
…
…
…
fixado). (contorno )()( e )()( (ii) 
natural);ou livre (contorno 0)()( (i) 
:contorno de condições seguintes das uma Satisfazer (f)
00
0
nn
n
xfxSxfxS
xSxS
′=′′=′
=′′=′′
33
� Construção da Spline Cúbica Interpolante
� Aplicam-se as condições definidas no slide anterior, ao polinômio:
� Aplicando-se este resultado à condição , obtém-se:
� Definindo-se e , resulta: 
Interpolação por Funções Spline
1,,1,0 ;)()()()( 32 −=−+−+−+= njxxdxxcxxbaxS jjjjjjjj … 1,,1,0 ;)()()()(
32 −=−+−+−+= njxxdxxcxxbaxS jjjjjjjj …
1,,1,0 );()( −=== njxfaxS jjjj … 1,,1,0 );()( −=== njxfaxS jjjj …
)()( 111 +++ = jjjj xSxS
2,,1,0 );()( 1111 −=== ++++ njxSxSa jjjjj … 2,,1,0 );()( 1111 −=== ++++ njxSxSa jjjjj …
2,,1,0 ;)()()( 31
2
111 −=−+−+−+= ++++ njxxdxxcxxbaa jjjjjjjjjjj … 2,,1,0 ;)()()(
3
1
2
111 −=−+−+−+= ++++ njxxdxxcxxbaa jjjjjjjjjjj …
1,,2,1 );( 1 −=−= + njxxh jjj … )( nn xfa =
1,,1,0 ;321 −=+++=+ njhdhchbaa jjjjjjjj … 1,,1,0 ;
32
1 −=+++=+ njhdhchbaa jjjjjjjj …
34
� Construção da Spline Cúbica Interpolante (cont.)
� De modo similar, defin-se e observe que:
� Aplicando-se este resultado à condição , obtém-se:
� Também de modo similar, definindo-se e aplicando-se a 
condição , obtém-se: 
Interpolação por Funções Spline
1,,1,0 ;)(3)(2)( 2 −=−+−+=′ njxxdxxcbxS jjjjjj … 1,,1,0 ;)(3)(2)(
2 −=−+−+=′ njxxdxxcbxS jjjjjj …
1,,1,0 ;)( −==′ njbxS jjj … 1,,1,0 ;)( −==′ njbxS jjj …
)()( 111 +++ ′=′ jjjj xSxS
1,,1,0 ;32 21 −=++=+ njhdhcbb jjjjjj … 1,,1,0 ;32
2
1 −=++=+ njhdhcbb jjjjjj …
)( nn xSb ′=
2/)( nn xSc ′′=
)()( 111 +++ ′′=′′ jjjj xSxS
1,,1,0 ;31 −=+=+ njhdcc jjjj … 1,,1,0 ;31 −=+=+ njhdcc jjjj …
35
� Construção da Spline Cúbica Interpolante (cont.)
� Síntese das equações de coeficientes:
� Substituindo-se da equação (iii), nas equações (i) e (ii) resulta:
� Da equação (1), obtém-se, para : 
Interpolação por Funções Spline
1,,1,0 ;3 (iii)
1,,1,0 ;32 (ii) 
1,,1,0 ; (i) 
1
2
1
32
1
−=+=
−=++=
−=+++=
+
+
+
njhdcc
njhdhcbb
njhdhchbaa
jjjj
jjjjjj
jjjjjjjj
…
…
…
1,,1,0 ;3 (iii)
1,,1,0 ;32 (ii) 
1,,1,0 ; (i) 
1
2
1
32
1
−=+=
−=++=
−=+++=
+
+
+
njhdcc
njhdhcbb
njhdhchbaa
jjjj
jjjjjj
jjjjjjjj
…
…
…
jd
( )
( ) 1,,1,0 ; (2) 
1,,1,0 ; 2
3
 (1) 
11
1
2
1
−=++=
−=+++=
++
++
njcchbb
njcc
h
hbaa
jjjjj
jj
j
jjjj
…
…( )
( ) 1,,1,0 ; (2) 
1,,1,0 ; 2
3
 (1) 
11
1
2
1
−=++=
−=+++=
++
++
njcchbb
njcc
h
hbaa
jjjjj
jj
j
jjjj
…
…
( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b ( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b ( ) ( )jjjjj
j
j cc
h
aa
h
b +−−= −
−
−
−
− 1
1
1
1
1 2
3
1 ( ) ( )jjjjj
j
j cc
h
aa
h
b +−−= −
−
−
−
− 1
1
1
1
1 2
3
1
1,,1,0 −= nj …
e
36
� Construção da Spline Cúbica Interpolante (cont.)
� Substituindo-se os últimos resultados na equação (2) e reduzindo-se o 
índice em 1 unidade, resulta:
� Note que este sistema envolve (n+1) incógnitas, , sendo que os 
valores constantessão obtidos pelo espaçamento dos 
nós e dos valores .
� Calculados os valores de , podem ser obtidos os valores de 
e usando-se as seguintes equações: 
Interpolação por Funções Spline
( ) ( ) ( ) 1,,2,1; 332 1
1
11111 −=−−−=+++ −
−
++−−− njaa
h
aa
h
chchhch jj
j
jj
j
jjjjjjj …( ) ( ) ( ) 1,,2,1; 332 1
1
11111 −=−−−=+++ −
−
++−−− njaa
h
aa
h
chchhch jj
j
jj
j
jjjjjjj …
{ }n
jj
c
0=
{ } { } e 
0
1
0
n
jj
n
jj
ah
=
−
=
{ }n
jj
x
0= { }njjxf 0)( = { } 1
0
−
=
n
jj
b
{ } 1
0
−
=
n
jj
d
( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b ( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b
e
1,,2,1 :onde −= nj …
{ }n
jj
c
0=
( ) jjjj hccd 3/1 −= +( ) jjjj hccd 3/1 −= +
37
� Construção da Spline Cúbica Interpolante (cont.)
� Para o caso de spline com contorno natural ou livre devem ser atendidas 
ainda as condições: 
� Para o caso de spline com contorno fixado devem ser atendidas ainda 
as condições:
Interpolação por Funções Spline
0)()( 0 =′′=′′ nxSxS 0)()( 0 =′′=′′ nxSxS 02/)(c e 02/)( n00 =′′==′′= nxSxSc 02/)(c e 02/)( n00 =′′==′′= nxSxSc
)()( e )()( 00 nn xfxSxfxS ′=′′=′ )()( e )()( 00 nn xfxSxfxS ′=′′=′
( )
( )1
1
111
001
0
1000
3
)(32
)(3
3
2
−
−
−−− −−′=+
′−−=+
nn
n
nnnnn aa
h
xfchch
xfaa
h
chch ( )
( )1
1
111
001
0
1000
3
)(32
)(3
3
2
−
−
−−− −−′=+
′−−=+
nn
n
nnnnn aa
h
xfchch
xfaa
h
chch
38
� Exemplo 1:
� Considere a construção da spline cúbica para os pontos:
� Polinômios de grau 3:
� Nós: 
� Determinar Intervalos: 
� Determinar Coeficientes :
Interpolação por Funções Spline
( ) ( ) ( ) ( ) )(, e )(,,)(,,)(, 33221100 xfxxfxxfxxfx
3210 , , , xxxx 3210 , , , xxxx
)( );( );( 232121010 xxhxxhxxh −=−=−= )( );( );( 232121010 xxhxxhxxh −=−=−=
3,2,1,0; =ja j
)( );( );( );( 33221100 xfaxfaxfaxfa ==== )( );( );( );( 33221100 xfaxfaxfaxfa ====
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
39
� Exemplo 1 (cont.):
� Determinar coeficientes : 
�Das condições de contorno natural, , tem-se:
�Da equação geral abaixo resulta o sistema de equações SE para o cálculo 
de :
Interpolação por Funções Spline
( ) ( ) ( ) 2,1; 332 1
1
11111 =−−−=+++ −
−
++−−− jaa
h
aa
h
chchhch jj
j
jj
j
jjjjjjj
( ) ( ) ( ) 2,1; 332 1
1
11111 =−−−=+++ −
−
++−−− jaa
h
aa
h
chchhch jj
j
jj
j
jjjjjjj
( ) ( ) ( )
( ) ( ) ( )












−−−=+++
−−−=+++
12
1
23
2
3222111
01
0
12
1
2111000
33
2
 
33
2
:SE
aa
h
aa
h
chchhch
aa
h
aa
h
chchhch ( ) ( ) ( )
( ) ( ) ( )












−−−=+++
−−−=+++
12
1
23
2
3222111
01
0
12
1
2111000
33
2
 
33
2
:SE
aa
h
aa
h
chchhch
aa
h
aa
h
chchhch
3,2,1,0; =jc j
0)()( 0 =′′=′′ nxSxS
02/)(c e 02/)( 3300 =′′==′′= xSxSc
 e 21 cc
40
� Exemplo 1 (cont.):
� Determinar coeficientes :
� Determinar coeficientes :
� Montar os polinômios com os coeficientes calculados:
Interpolação por Funções Spline
2,1,0; =jb j ( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b ( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b
2,1,0; =jd j
( )jj
j
j cc
h
d −= +1
3
1 ( )jj
j
j cc
h
d −= +1
3
1
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
41
� Exemplo 2:
� Determine a spline cúbica livre para usando os nós:
� Polinômios de grau 3:
� Determinar Intervalos: 
� Determinar Coeficientes :
Interpolação por Funções Spline
xxxf 4sin)( =
25.0)( 010 =−= xxh 25.0)( 010 =−= xxh
3,2,1,0; =ja j
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
6.0 ;4.0 ;25.0 ;0 3210 ==== xxxx 6.0 ;4.0 ;25.0 ;0 3210 ==== xxxx
15.0)( 121 =−= xxh 15.0)( 121 =−= xxh 20.0)( 232 =−= xxh 20.0)( 232 =−= xxh
0)( 00 == xfa 0)( 00 == xfa 2104.0)( 11 == xfa 2104.0)( 11 == xfa
3998.0)( 22 == xfa 3998.0)( 22 == xfa 4043.0)( 33 == xfa 4043.0)( 33 == xfa
42
� Exemplo 2 (cont.):
� Determinar coeficientes : 
�Das condições de contorno natural:
� Equações para o cálculo de :
Interpolação por Funções Spline
( ) ( ) ( )
( ) ( ) ( )












−−−=+++
−−−=+++
12
1
23
2
3222111
01
0
12
1
2111000
33
2
 
33
2
:SE
aa
h
aa
h
chchhch
aa
h
aa
h
chchhch ( ) ( ) ( )
( ) ( ) ( )












−−−=+++
−−−=+++
12
1
23
2
3222111
01
0
12
1
2111000
33
2
 
33
2
:SE
aa
h
aa
h
chchhch
aa
h
aa
h
chchhch
3,2,1,0; =jc j
02/)(c e 02/)( 3300 =′′==′′= xSxSc
 e 21 cc
( ) ( ) ( )
( ) ( ) ( )











−−−=+++
−−−=+++
2104.03998.0
15.0
3
3998.04043.0
20.0
3
20.020.015.0215.0
 02104.0
25.0
3
2104.03998.0
15.0
3
15.015.025.0225.0
:SE
321
210
ccc
ccc ( ) ( ) ( )
( ) ( ) ( )











−−−=+++
−−−=+++
2104.03998.0
15.0
3
3998.04043.0
20.0
3
20.020.015.0215.0
 02104.0
25.0
3
2104.03998.0
15.0
3
15.015.025.0225.0
:SE
321
210
ccc
ccc






−=+
=+
7873.370.015.0
 2632.115.08.0
:SE
21
21
cc
cc






−=+
=+
7873.370.015.0
 2632.115.08.0
:SE
21
21
cc
cc
09894.5
7020.20
32
10
=−=
==
cc
cc
09894.5
7020.20
32
10
=−=
==
cc
cc
43
� Exemplo 2 (cont.):
� Determinar coeficientes :
� Determinar coeficientes :
Interpolação por Funções Spline
2,1,0; =jb j
( ) ( )
11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b ( ) ( )11 2
3
1
++ +−−= jj
j
jj
j
j cc
h
aa
h
b
2,1,0; =jd j ( ) jjjj hccd 3/1 −= +( ) jjjj hccd 3/1 −= +
( ) ( )1000010 2)3/(/ cchhaab +−−=
( ) ( )2111121 2)3/(/ cchhaab +−−=
( ) ( )3222232 2)3/(/ cchhaab +−−=
( ) ( )7020.2)0(2)3/25.0(25.0/02104.00 +−−=b
( ) ( )9894.5)7020.2(2)3/15.0(15.0/2104.03998.01 −−−=b
( ) ( )0)9894.5(2)3/20.0(20.0/3998.04043.02 +−−−=b
8211.02919.16164.0 210=== bbb 8211.02919.16164.0 210 === bbb
( ) 0010 3/ hccd −=
( ) 1121 3/ hccd −=
( ) 2232 3/ hccd −=
( ) )25.0*3/(07020.20 −=d
( ) )15.0*3/(7020.29894.51 −−=d
( ) )20.0*3/()9894.5(02 −−=d 9823.9
3142.19 
6027.3
2
1
0
=
−=
=
d
d
d
9823.9
3142.19 
6027.3
2
1
0
=
−=
=
d
d
d
44
� Exemplo 2 (cont.):
� Quadro resumos dos coeficientes e nós:
� Polinômios:
Interpolação por Funções Spline
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
3
22
2
222222
3
11
2
111111
3
00
2
000000
)()()()(
)()()()(
)()()()(
xxdxxcxxbaxS
xxdxxcxxbaxS
xxdxxcxxbaxS
−+−+−+=
−+−+−+=
−+−+−+=
8211.02919.16164.0 210 === bbb 8211.02919.16164.0 210 === bbb
9823.93142.196027.3 210 =−== ddd 9823.93142.196027.3 210 =−== ddd09894.5
7020.20
32
10
=−=
==
cc
cc
09894.5
7020.20
32
10
=−=
==
cc
cc
4043.03998.0
2104.00
32
10
==
==
aa
aa
4043.03998.0
2104.00
32
10
==
==
aa
aa 6.0 ;4.0 ;25.0 ;0 3210 ==== xxxx 6.0 ;4.0 ;25.0 ;0 3210 ==== xxxx
45
� Exemplo 2 (cont.):
� Polinômios:
Interpolação por Funções Spline
32
2
32
1
32
0
)4.0(9823.9)4.0(9894.5)4.0(8211.03998.0)(
)25.0(3142.19)25.0(7020.2)25.0(2919.12104.0)(
)0(6027.3)0(0)0(6164.00)(
−+−−−+=
−−−+−+=
−+−+−+=
xxxxS
xxxxS
xxxxS
32
2
32
1
32
0
)4.0(9823.9)4.0(9894.5)4.0(8211.03998.0)(
)25.0(3142.19)25.0(7020.2)25.0(2919.12104.0)(
)0(6027.3)0(0)0(6164.00)(
−+−−−+=
−−−+−+=
−+−+−+=
xxxxS
xxxxS
xxxxS
32
2
32
1
3
0
9823.99861.174041.105258.1)(
3142.191876.176805.33581.0)(
6027.36164.0)(
xxxxS
xxxxS
xxxS
+−+−=
−+−=
+=
32
2
32
1
3
0
9823.99861.174041.105258.1)(
3142.191876.176805.33581.0)(
6027.36164.0)(
xxxxS
xxxxS
xxxS
+−+−=
−+−=
+=
Recomenda-se refazer o processo para uma spline cúbica interpolante 
de contorno fixado, expressar graficamente e comparar os resultados.
46
Interpolação por Funções Spline
� Exemplo 3:
� Considere o pato em vôo mostrado na figura abaixo. Aproxime os 
pontos ao longo do topo do perfil do pato apresentados na tabela: 
� Note que nos intervalos em que a curva varia rapidamente são 
utilizados mais pontos que em outros intervalos.
47
Interpolação por Funções Spline
� Exemplo 3 (cont.):
� A partir destes dados e usando-se a metodologia apresentada são 
gerados os coeficientes da spline cúbica apresentados a seguir: 
48
Interpolação por Funções Spline
� Exemplo 2 (Comparação):
� A figura abaixo ilustra os resultados obtidos usando-se o polinômio de 
Lagrange para interpolar esses mesmos pontos. 
� Note que pelo fato de haver 21 pontos, o polinômio de Lagrange é de 
grau 20 e apresenta um comportamento oscilatório ao longo de todo o 
intervalo.
49
� Aspectos gerais
� Curvas paramétricas são representações que 
utilizam um parâmetro comum para representar 
simultaneamente duas variáveis coordenadas 
distintas, por exemplo , conforme 
ilustrado pela figura ao lado.
� As técnicas de interpolação estudas não podem 
ser aplicadas diretamente a esse caso. 
Curvas Paramétricas
yx e 
� Uma alternativa natural para se determinar uma aproximação 
polinomial que conecte os pontos é usar 
um parâmetro , e construir funções de 
aproximações com:
),(,),,(),,( 1100 nn yxyxyx …
nn tttttt <<<∋∈ ⋯100 ],,[
nityytxx iiii ,,1,0 ; )( e )( …=== nityytxx iiii ,,1,0 ; )( e )( …===
50
� Exemplo:
� Construir um par de polinômios de Lagrange para aproximar a curva 
apresentada no slide anterior, usando dados dos pontos assinalados.
� Foram escolhidos os pontos , igualmente espaçados em [0,1], 
conforme apresentados na tabela.
� Para os dados , obtém-se, respectivamente 
os seguintes polinômios de Lagrange: 
Curvas Paramétricas
{ }it 
105.010
10101
175.05.025.00
43210
−
−
֏
֏
֏
֏
i
i
i
y
x
t
i
105.010
10101
175.05.025.00
43210
−
−
֏
֏
֏
֏
i
i
i
y
x
t
i
4,3,2,1,0 , ),( e ),( =iytxt iiii
1
3
14
60
3
352
64)( −





−





+




 −= tttttx 1
3
14
60
3
352
64)( −





−





+




 −= tttttx ttttty 





+





−




 +−= 11
3
116
48
3
64
)( ttttty 





+





−




 +−= 11
3
116
48
3
64
)(e
51
� Exemplo:
� Representação gráfica para os polinômios obtidos.
Curvas Paramétricas
1
3
14
60
3
352
64)( −





−





+




 −= tttttx 1
3
14
60
3
352
64)( −





−





+




 −= tttttx ttttty 





+





−




 +−= 11
3
116
48
3
64
)( ttttty 





+





−




 +−= 11
3
116
48
3
64
)(e
�Note que a aproximação obtida tem precisão 
relativamente baixa.
�Melhores resultados poderão ser obtidos com 
um maior número de pontos, aumentando o 
custo computacional.
�De modo similar também podem ser gerados 
polinômios de Hermite e curvas spline.
52
� Aplicações em Computação Gráfica
� As aplicações em computação gráfica exigem a geração rápida de 
curvas suaves que possam ser facilmente e rapidamente modificadas.
� Por razões estéticas e computacionais, alterações em uma porção da 
curva devem ter pouco ou nenhum efeito em outras porções, eliminando 
o uso de spline e polinômios interpolantes.
� Em geral, a curva escolhida para uso em computação gráfica é uma 
forma de polinômio cúbico de Hermite por partes.
� Cada porção do polinômio cúbico de Hermite é completamente 
determinado a partir da especificação dos pontos extremos e das 
derivadas para esses pontos, permitindo alterações em uma porção , 
mantendo-se o restante.
� Somente as porções adjacentes devem ser alteradas quando se quer 
assegurar suavidade para os pontos extremos.
Curvas Paramétricas
53
� Aplicações em Computação Gráfica (cont.)
� O problema da interpolação de Hermite é a necessidade de se 
especificar as derivadas para os pontos extremos da secção da curva.
� Suponha uma curva com (n+1) pontos de dados 
� Então, se , devem ser especificados 
também .
� Por simplicidade, considere a determinação de um par dos polinômios 
cúbicos de Hermite usando o parâmetro t , quando , 
conhecidos os pontos extremos e as 
derivadas .
� Note que o conjunto acima constitui-se de 6 condições e cada polinômio 
cúbico exige 4 condições, totalizando 8 condições para este caso. Isto 
fornece flexibilidade na escolha do par de polinômios cúbicos.
� A curva de Hermite explícita em x e y exige somente a especificação 
dos quocientes .
Curvas Paramétricas
),(,),,( 00 nn yxyx …
( ) nitytxyx iiii ,,1,0,)(),(),(…=∀=
)( e )( ii tytx ′′
1 e 0 10 == tt
( ))1(),1( e ))0(),0(( yxyx
)1/p( / e )0/p( / == tdxdytdxdy
)1(
)1(
)1/( e 
)0(
)0(
)0/(
x
y
tp
dx
dy
x
y
tp
dx
dy
′
′
==
′
′
==
54
� Aplicações em Computação Gráfica (cont.)
� A derivada para um ponto extremo é especificada graficamente 
definindo-se um segundo ponto, denominado ponto-guia, em uma linha 
tangente desejada.
� Quanto mais afastado o ponto guia estiver do nó, maior será o fator de 
escala e maior será a proximidade entre a curva e alinha tangente 
próximo ao nó.
� Na figura abaixo, os nós são e os pontos-guia são, 
respectivamente, 
Curvas Paramétricas
),( e ),( 1100 yxyx
),( e ),( 11110000 βαβα −−++ yxyx
55
� Aplicações em Computação Gráfica (cont.)
� O polinômio único no intervalo [0,1] deve satisfazer as condições: 
� Tabela de diferenças divididas: 
Curvas Paramétricas
)(tx
1010 )1( e ,)0( ,)1( ,)0( αα =′=′== xxxxxx
1313
132
011
3211212
001011
3210
01
21
001
2100101
010
0000
][1
)1(],[
1
],,[][1
1
)()(
],,,[
)01(
],[
1
],,[][0
)0(],[
][0
3.2.1.][
xzftz
xzzf
xx
zzzfxzftz
xxxx
zzzzf
xx
zzf
xx
zzzfxzftz
xzzf
xzftz
OrdOrdOrdzfz
===
=′=
+−
====
−−−+−
=
−
−
=
−−
====
=′=
===
α
α
αα
α
α
))()(](,,,[ 
))(](,,[)](,[][)(
2103210
102100100
ztztztzzzzf
ztztzzzfztzzfzftx
−−−
+−−+−+=
56
� Aplicações em Computação Gráfica (cont.)
� Realizando-se as operações indicadas e rearranjando os termos 
semelhantes, obtém-se:
� De modo similar, o polinômio único , em [0,1], deve satisfazer as 
seguintes condições ,sendo 
dado por:
Curvas Paramétricas
[ ] [ ] 002010131010 .)2()(3.)()(2)( xttxxtxxtx +++−−+++−= ααααα[ ] [ ] 002010131010 .)2()(3.)()(2)( xttxxtxxtx +++−−+++−= ααααα
1010 )1( e ,)0( ,)1( ,)0( ββ =′=′== yyyyyy
[ ] [ ] 002010131010 .)2()(3.)()(2)( yttyytyyty +++−−+++−= βββββ[ ] [ ] 002010131010 .)2()(3.)()(2)( yttyytyyty +++−−+++−= βββββ
)(ty
57
� Ilustração Gráfica
� As figuras abaixo mostram algumas possibilidades que ocorrem quando 
os nós são (0,0) e (1,0) e as inclinações desses nós são 1 e -1, 
respectivamente.
� A especificação de inclinação para os pontos extremos requer somente 
que , dando as inclinações para esquerda e 
direita, respectivamente. 
Curvas Paramétricas
1/ e 1/ 11 00 −== βαβα
58
� Ilustração Gráfica (cont.)
� O procedimento padrão para se determinar curvas em um modo gráfico 
iterativo utiliza um equipamento de entrada, tal como o mouse, para 
especificar os nós e pontos-guia que irão gerar a primeira aproximação 
para a curva, sem a exigência de qualquer conhecimento analítico pelo 
usuário. Os nós e pontos-guia podem ser manipulados para se obter o 
formato desejado.
Curvas Paramétricas
59
� Polinômios de Bézier
� Os programas computacionais gráficos populares usam esse tipo de 
técnica de interpolação para a construção de gráficos, porém com a 
aplicação de um fator de escala igual a 3 no cálculo das derivadas dos 
pontos extremos. 
� Os polinômios cúbicos de Hermite assim gerados são denominados de 
polinômios de Bézier e descritos matematicamente, para , 
como segue:
� Curvas para 3 dimensões também podem ser geradas de modo similar, 
incluindo-se uma terceira componente, para os nós e, para os 
pontos-guia, .
Curvas Paramétricas
[ ] [ ] 002010131010 3.)2(3)(3.)(3)(2)( xttxxtxxtx +++−−+++−= ααααα[ ] [ ] 002010131010 3.)2(3)(3.)(3)(2)( xttxxtxxtx +++−−+++−= ααααα
[ ] [ ] 002010131010 3.)2(3)(3.)(3)(2)( yttyytyyty +++−−+++−= βββββ[ ] [ ] 002010131010 3.)2(3)(3.)(3)(2)( yttyytyyty +++−−+++−= βββββ
10 e zz
10 ≤≤ t
1100 e γγ ++ zz

Continue navegando