Baixe o app para aproveitar ainda mais
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
Compartilhar