Baixe o app para aproveitar ainda mais
Prévia do material em texto
86 unesp CAMPUS DE GUARATINGUETÁ Computação e Cálculo Numérico: Elementos de Cálculo Numérico Prof. G.J. de Sena - Depto. de Matemática – Rev. 2008 CAPÍTULO 4 INTERPOLAÇÃO 4.1 INTRODUÇÃO Considere a seguinte tabela relacionando calor específico da água(c) e temperatura (T): T (oC) 25 30 35 40 c 0.99852 0.99826 0.99818 0.99828 Suponha se queira determinar: (i) c para T = 32.5 oC (ii) T para c = 0.99825 Este tipo de problema pode ser resolvido com a ajuda da interpolação. Interpolar uma função f(x) consiste em "substituir" esta função por outra função, g(x), que é uma aproximação da função dada. Há a necessidade de se efetuar uma interpolação em várias situações, como por exemplo: (a) quando a função é conhecida apenas em um conjunto finito e discreto de pontos, não se dispondo de sua forma analítica; (b) quando a forma analítica da função é tal que operações como a diferenciação e a integração são difíceis (ou mesmo impossíveis) de serem realizadas. 4.2 PROBLEMA GERAL DE INTERPOLAÇÃO Sejam nxxx ,,, 10 K , )1( +n pontos distintos, chamados pontos de interpolação e sejam )(,),(),( 10 nxfxfxf K os valores de )(xf nesses pontos. Objetiva-se obter uma função de interpolação g(x) para a função f(x), a partir dos pontos de interpolação, com a condição de que os valores numéricos de f e g sejam coincidentes nesses pontos de interpolação, ou seja: )()(),()(),()( 1100 nn xfxgxfxgxfxg === L 87 Graficamente: Obs.: (a) A função g(x) pode pertencer à classe das funções exponenciais, logarítmicas, trigonométricas ou polinomiais; (b) Para o caso da interpolação polinomial, há as formas dadas, por exemplo, pela fórmula de Taylor e pelos polinômios de Hermite, em que as condições de interpolação são outras. 4.3 INTERPOLAÇÃO POLINOMIAL 4.3.1 EXISTÊNCIA E UNICIDADE DO POLINÔMIO INTERPOLADOR Dados os pontos ))(,(,)),(,()),(,( 1100 nn xfxxfxxfx K , portanto 1+n pontos, queremos aproximar ( )xf por um polinômio de grau ( )xPn n,≤ , tal que: ( ) ( ) nkxPxf knk ,...,2,1,0== Dado que ( )xPn é da forma n nxaxaxaa ++++ ... 2 210 obter ( )P xn significa obter os coeficientes naaaa ,...,,, 210 Da condição ( ) ( )kkn xfxP = , obtém-se o sistema linear: 88 ( ) ( ) ( ) =++++ =++++ =++++ + n n nnnn n n n n n xfxaxaxaa xfxaxaxaa xfxaxaxaa S L MMMMM L L 2 210 11 2 12110 00 2 02010 1 com n+1 equações e n+1 variáveis: naaa ,,, 10 L . A matriz A dos coeficientes: = n n n n nn x x x xx xx xx A M L MMM L L 1 0 2 2 11 2 00 1 1 1 é uma matriz de Vandermonde. Portanto, desde que x0, x1, ..., xn sejam pontos distintos, tem-se que det A ≠ 0 e que o sistema admite solução única. Concluindo: se x x j kk j≠ ≠, , então existe um único polinômio )(xPn , de grau ≤ n, tal que nkxfxP kkn ,...,2,1,0),()( == . Exemplo: Obter um polinômio de grau ≤ 2 que interpole os pontos da tabela x 1.0 1.1 1.2 f(x) 2.718 3.004 3.320 Determinar o valor aproximado de f(1.05) Solução: Forma do polinômio: 2 212 )( xaxaaxP o ++= Condição de interpolação: 2,1,0)()(2 == kxfxP kk 320.3)2.1()2.1()2.1()2.1()( 004.3)1.1()1.1()1.1()1.1()( 718.2)0.1()()0.1()( 2 210222 2 210212 0210202 ==++== ==++== ===++==∴ faaaPxP faaaPxP fxfaaaPxP Os coeficientes ao, a1 e a2 são obtidos, portanto, da solução do sistema: 89 =++ =++ =++ 320.3a44.1a2.1a 004.3a21.1a1.1a 718.2aaa :S 210 210 210 3 Usando o dispositivo prático para o método de eliminação de Gauss, obtém-se: a0 a1 a2 1 1 1 1 1.1 1.2 1 1.21 1.44 2.718 3.004 3.320 a 2 0 003 0 002 15= =. . . 0.1 0.2 0.21 0.44 0.286 0.602 29.0 1.0 )5.1)(21.0(286.0 a1 −= − = 0.002 0.003 a0 = 2.718 - 1.5 + 0.29 = 1.508 2 2 5.129.0508.1)( xxxP +−=∴ 85725.2)05.1)(5.1()05.1)(29.0(508.1)05.1()05.1( 22 =+−=≅ Pf Obs.: sabendo-se que xexf =)( , tem-se que 8576511.2)05.1( 05.1 == ef A matriz A dos coeficientes pode ser, no caso geral, mal condicionada. Portanto, não será sempre conveniente obter o polinômio de interpolação da forma indicada no exemplo. 4.3.2 OBTENÇÃO DE )(xPn - FORMA DE LAGRANGE Sejam nxxx ,,, 10 K , )1( +n pontos distintos, e )( ii xfy = , ni ,,2,1,0 K= . Seja )(xPn o polinômio de grau ≤ n que interpola f em nxxx ,,, 10 K . Supor que )(xPn é da forma: )(...)()()( 1100 xLyxLyxLyxP nnn +++= onde cada ),...,2,1,0(),( nkxLk = , é um polinômio de grau ≤ n. Da condição de interpolação: iin yxP =)( vem que iinnii yxLyxLyxLy =+++ )(...)()( 1100 Esta condição será satisfeita se se impuser: 90 ≠ = = ikse ikse xL ik ,0 ,1)( o que é obtido com a seguinte definição de Lk(x): ))...()()...()(( ))...()()...()(()( 1110 1110 nkkkkkkk nkk k xxxxxxxxxx xxxxxxxxxx xL −−−−− −−−−− = +− +− pois: kisexL exL ik kk ≠= = 0)( 1)( Como Lk(x) tem n fatores da forma (x - xi), )(xLk é um polinômio de grau n. Assim, )(xPn é um polinômio de grau ≤ n. Esta é a forma de Lagrange para o polinômio interpolador: ∑ = = n k kkn xLyxP 0 )()( onde )( )( )( 0 0 ik n ki i i n ki i k xx xx xL − − = ≠ = ≠ = pi pi Exemplo: Seja )(xfy = uma função definida através da tabela a seguir. Para esta função pede-se, utilizando a forma de Lagrange, com interpolação quadrática: (a) O valor aproximado para )05.1(f ; (b) O polinômio de interpolação na forma 22102 )( xaxaaxP ++= . x 1.0 1.1 1.2 f(x) 2.718 3.004 3.320 Resolução: (a) )()()()( 2211002 xLyxLyxLyxP ++= )2.10.1)(1.10.1( )2.1)(1.1( ))(( ))(()( 2010 21 0 −− −− = −− −− = xx xxxx xxxx xL )2.10.1)(1.10.1( )2.105.1)(1.105.1()05.1(0 −− −− =L )2.11.1)(11.1( )2.1)(1( ))(( ))(()( 2101 20 1 −− −− = −− −− = xx xxxx xxxx xL )2.11.1)(11.1( )2.105.1)(105.1()05.1(1 −− −− =L 91 )1.12.1)(12.1( )1.1)(1( ))(( ))(()( 1202 10 2 −− −− = −− −− = xx xxxx xxxx xL )1.12.1)(12.1( )1.105.1)(105.1()05.1(2 −− −− =L )05.1(32.3)05.1(004.3)05.1(718.2)05.1()05.1( 2102 LLLPf ++=≅ 375.0)2.10.1)(1.10.1( )2.105.1)(1.105.1()05.1(0 = −− −− =L 75.0)2.11.1)(11.1( )2.105.1)(105.1()05.1(1 = −− −− =L 125.0)1.12.1)(12.1( )1.105.1)(105.1()05.1(2 = −− −− =L 85725.2)125.0(32.375.0004.3375.0718.2)05.1(2 =−×+×+×=∴ P (b) Obtenção de 22102 )( xaxaaxP ++= )()()()( 2211002 xLyxLyxLyxP ++= 6611550)2.10.1)(1.10.1( )2.1)(1.1()( 20 +−= −− −− = xx xx xL 120220100)2.11.1)(11.1( )2.1)(1()( 21 −+−= −− −− = xx xx xL 5510550)1.12.1)(12.1( )1.1)(1()( 22 +−= −− −− = xx xx xL )5510550(320.3)120220100(004.3)6611550(718.2)( 2222 +−+−+−++−=∴ xxxxxxxP ⇒ = − +P x x x2 215 0 29 1508( ) . . . Observação: 320.3508.1)2.1)(29.0()2.1)(5.1()2.1( 004.3508.1)1.1)(29.0()1.1)(5.1()1.1( 718.2508.1)1)(29.0()1)(5.1()0.1( 2 2 2 2 2 2 =+−= =+−= =+−= P P P Exemplo: (interpolação linear)(a) Obter, utilizando a forma de Lagrange, o polinômio P1 (x) que interpole os pontos ))(,( 00 xfx e ))(,( 11 xfx . (b) Comparar com a equação da reta que passa por estes pontos. Resolução: (a) )()()( 11001 xLyxLyxP += x 0x 1x f(x) oy 1y 92 L x x x x x 0 1 0 1 ( ) ( )( )= − − L x x x x x 1 0 1 0 ( ) ( )( )= − − 4342143421 ba xx xyxy x xx yy xx xxy xx xxy xx xxy xx xxyxP )( )( )( )( )( )( )( )( )( )( )( )()( 01 0110 01 01 01 0 1 01 1 0 01 0 1 10 1 01 − − + − − = − − + − − = − − + − − =∴ (b) 0 01 01 01 )( xx yxP xx yy tg − − = − − =α 00 01 01 1 )()( )()( yxx xx yy xP +− − − =⇒ )( )()( )( )()( 01 001010 01 01 1 xx yxxxyy x xx yy xP − −+− + − − =⇒ 4342143421 ba xx xyxy x xx yy xP )( )( )( )()( 01 0110 01 01 1 − − + − − =⇒ Exemplo: Seja a função )(xfy = conhecida apenas nos pontos tabelados: x 0 0.1 0.3 0.6 1 f(x) 1 2.001 4.081 8.296 21 Determinar o valor aproximado para )20.0(f aplicando-se a fórmula de Lagrange: a) Com interpolação linear; b) Com interpolação quadrática; c) Utilizando todos os pontos da tabela. Resolução: a) Interpolação Linear Neste caso são necessários dois pontos. Trabalharemos com os pontos a seguir: x 0.1 0.3 f(x) 2.001 4.081 Uma vez que 0.20 está neste intervalo. O polinômio de interpolação é dado por: )()()( 11001 xLyxLyxP += 93 ( ) )1.03.0( )1.0()081.4()3.01.0( )3.0(001.2)(1 − − + − − = xx xP Substituindo 20.0=x , obtém-se: ( ) 041.3)1.03.0( )1.02.0()081.4()3.01.0( )3.02.0(001.2)2.0(1 = − − + − − =P 041.3)20,0( ≅∴ f b) Interpolação Quadrática Neste caso são necessários três pontos. Trabalharemos com os pontos a seguir: x 0.1 0.3 0.6 f(x) 2.001 4.081 8.296 Uma vez que 20.0=x está neste intervalo. Neste caso poderíamos também ter escolhido os três pontos a seguir, dado que 0.2 é ponto médio do intervalo [ ]3.0,1.0 : x 0 0.1 0.3 f(x) 1 2.001 4.081 Retornaremos à questão de escolha dos pontos mais adiante. O polinômio de interpolação é dado por: )()()()( 2211002 xLyxLyxLyxP ++= ( ) )3.06.0)(1.06.0( )3.0)(1.0()296.8()6.03.0)(1.03.0( )6.0)(1.0()081.4()6.01.0)(3.01.0( )6.0)(3.0(001.2)(2 −− −− + −− −− + −− −− = xxxxxx xP Substituindo 20.0=x , obtém-se: ( ) )3.06.0)(1.06.0( )3.02.0)(1.02.0()296.8()6.03.0)(1.03.0( )6.02.0)(1.02.0()081.4()6.01.0)(3.01.0( )6.02.0)(3.02.0(001.2)2.0(2 −− −− + −− −− + −− −− =P 968.2)2.0(2 =⇒ P 968.2)20,0( ≅∴ f c) Interpolação utilizando todos os pontos da tabela ( ) + −−−− −−−− + −−−− −−−− = ++++= )11.0)(6.01.0)(3.01.0)(01.0( )1)(6.0)(3.0)(0()001.2()10)(6.00)(3.00)(1.00( )1)(6.0)(3.0)(1.0(1 )()()()()()( 44332211004 xxxxxxxx xLyxLyxLyxLyxLyxP ( ) ( ) ( ) )6.01)(3.01)(1.01)(01( )6.0)(3.0)(1.0)(0(21 )16.0)(3.06.0)(1.06.0)(06.0( )1)(3.0)(1.0)(0(296.8)13.0)(6.03.0)(1.03.0)(03.0( )1)(6.0)(1.0)(0(081.4 −−−− −−−− + −−−− −−−− + −−−− −−−− xxxx xxxxxxxx 94 016.3)6.01)(3.01)(1.01( )6.02.0)(3.02.0)(1.02.0)(2.0()21( )16.0)(3.06.0)(1.06.0)(6.0( )12.0)(3.02.0)(1.02.0(2.0()296.8()13.0)(6.03.0)(1.03.0)(3.0( )12.0)(6.02.0)(1.02.0)(2.0()081.4( )11.0)(6.01.0)(3.01.0)(1.0( )12.0)(6.02.0)(3.02.0)(2.0()001.2()6.0)(3.0)(1.0( )12.0)(6.02.0)(3.02.0)(1.02.0( )20,0()20,0( 4 = −−− −−− + −−− −−− + −−− −−− + −−− −−− + −−−− = =≅∴ Pf 016.3)20,0( ≅∴ f Exercício: Usar a forma de Lagrange para obter um polinômio de grau ≤ 3 que interpole os pontos da tabela: x 0 1 3 4 f(x) -5 1 25 55 Calcular )4()3(),1(),0( 3333 PePPP , utilizando Briot-Ruffini. Resp.: 572)( 233 −+−= xxxxP Exercício: Seja a função )(xfy = conhecida apenas nos pontos tabelados: x 0 0.2 0.4 0.5 f(x) 0 2.008 4.064 5.125 Determinar o valor aproximado para f(0.3) aplicando-se a fórmula de Lagrange. 4.3.3 OBTENÇÃO DE )(xPn - FORMA DE GREGORY - NEWTON PARA O POLINÔMIO INTERPOLADOR 4.3.3.1 TABELA DE DIFERENÇAS FINITAS Definição: Sejam K,,, 210 xxx pontos que se sucedem com passo h, isto é, jhxx j += 0 . Define-se o operador de diferenças finitas como segue: 95 )()()( )()()( )()()( )()( 11 2 0 xfhxfxf xfhxfxf xfhxfxf xfxf nnn −− ∆−+∆=∆ ∆−+∆=∆ −+=∆ =∆ M Conhecidos os valores de )(xf em nxxxx K,,, 210 , constrói-se a seguinte tabela de diferenças finitas: x f(x) ∆∆∆∆f(x) ∆∆∆∆2f(x) 0x f(x0) ∆f(x0) 1x f(x1) ∆2f(x0) ∆f(x1) ... 2x f(x2) ∆2f(x1) ∆f(x2) M 3x f(x3) M M M Exemplo: Seja f(x) dada na forma tabular: x -1 0 1 2 3 f(x) 2 1 2 5 10 A tabela de diferenças finitas para esta função é mostrada a seguir: x f(x) ∆f(x) ∆2f(x) ∆3f(x) ∆4f(x) -1 2 -1 0 1 2 1 0 1 2 2 0 3 0 2 5 2 5 3 10 96 4.3.2 O POLINÔMIO DE INTERPOLAÇÃO Estabelece-se a seguinte forma para o polinômio de interpolação (forma de Gregory- Newton): !. )())...()((... 2 )())(()()()()( 01102 0 2 10 0 00 nh xf xxxxxx h xf xxxx h xf xxxfxP n n nn ∆ −−−++ ∆ −−+ ∆ −+= − Observar que os pontos de interpolação devem ser igualmente espaçados (por um valor de “passo” h). Exemplo: Para os dados da função f(x), apresentada abaixo na forma tabular a seguir, pede-se obter, usando a forma de Gregory-Newton: a) Uma aproximação para f(1.05) b) O polinômio )(2 xP que interpola f(x) x 1.0 1.1 1.2 f(x) 2.718 3.004 3.320 Solução: (a) Construção da tabela das diferenças finitas x f(x) ∆f(x) ∆2f(x) x0 = 1 2.718 0.286 1.1 3.004 0.03 0.316 1.2 3.320 2 0 2 10 0 002 2 )())(()()()()( h xf xxxx h xf xxxfxP ∆−−+∆−+= 2.)1.0( 03.0)1.1)(1( 1.0 286.0)1(718.2)( 22 −−+−+=∴ xxxxP 2.)1.0( 03.0)1.105.1)(105.1( 1.0 286.0)105.1(718.2)05.1()05.1( 22 −−+−+=≅ Pf 85725.2)05.1( ≅f 97 (b) obtenção de P2(x): 2.)1.0( 03.0)1.1)(1( 1.0 286.0)1(718.2)( 22 −−+−+= xxxxP )65.186.2718.2()15.386.2(5.1)( )1.11.2(5.186.286.2718.2)( 2 2 2 2 +−+−+=⇒ +−+−+=⇒ xxxP xxxxP 508.129.05.1)( 22 +−=⇒ xxxP Exemplo: Dada a função )(xfy = , conhecida pelos pontos da tabela abaixo, obter uma aproximação para )25.0(f , empregando a fórmula de Gregory-Newton com: a) Interpolação linear b) Interpolação quadrática x 0.10 0.20 0.30 0.40 0.50 f(x) 0.125 0.064 0.027 0.008 0.001 Resolução: (a) Construção da tabela de diferenças finitas: x f(x) ∆f(x) ∆2f(x) ∆3f(x) ∆4f(x) 0.10 0.125 -0.061 0.20 0.064 0.024 -0.037 -0.006 0.30 0.027 0.018 0.000 -0.019 -0.006 0.40 0.008 0.012 -0.007 0.50 0.001 Obtenção de uma aproximação para )25.0(f utilizando interpolação linear ( )(1 xP ): x f(x) ∆f(x) =0x 0.20 0.064 -0.037 0.30 0.027 98 O passo h corresponde ao espaçamento entre os pontos, ou seja, 10.020.030.0 =−=h . h xf xxxfxP )()()()( 0001 ∆ −+= 1.0 )037.0()20.0(064.0)(1 − −+=⇒ xxP 1.0 )037.0()20.025.0(064.0)25.0()25.0( 1 − −+=≅ Pf 0455.0)25.0(≅⇒ f (b) Obtenção de uma aproximação para )25.0(f com interpolação quadrática ( )(2 xP ): x f(x) ∆f(x) ∆2f(x) =0x 0.10 0.125 -0.061 0.20 0.064 0.024 -0.037 0.30 0.027 2 0 2 10 0 002 2 )())(()()()()( h xf xxxx h xf xxxfxP ∆−−+∆−+= 10.010.020.020.030.0 =−=−=h . 22 )10.0)(2( 024.0)2.0)(1.0( 10.0 )061.0()1.0(125.0)( −−+−−+=∴ xxxxP 2 05.015.015.0 2 )10.0)(2( 024.0)02.025.0)(10.025.0( 10.0 )061.0()10.025.0(125.0)25.0()25.0( 484764847648476 −−+ − −+=≅ Pf 0425.0)25.0( ≅∴ f Observe-se que poderiam também ser utilizados os pontos a seguir, para a obtenção de )(2 xP : x f(x) ∆f(x) ∆2f(x) 0.20 0.064 -0.037 0.30 0.027 0.018 -0.019 0.40 0.008 22 )10.0)(2( 018.0)30.0)(20.0( 10.0 )037.0()20.0(064.0)( −−+−−+= xxxxP 99 22 )10.0)(2( 018.0)30.025.0)(20.025.0( 10.0 )037.0()20.025.0(064.0)25.0()25.0( −−+−−+=≅ Pf 04325.0)25.0( ≅∴ f Exercício: dada a função )(xfy = , conhecida pelos pontos da tabela abaixo, calcular uma aproximação para f(3.7), empregrando a fórmula de Gregory-Newton. x 1 2 3 4 Obs.: f(x) 0 0.6931 1.0986 1.3863 f(x) = ln x Exercício: obter, usando a fórmula de Gregory-Newton, uma aproximação para f(0.7), onde f é uma função conhecida apenas nos pontos tabelados a seguir: x 0 0.5 1 1.5 2.0 f(x) 0.0 1.1487 2.7183 4.9811 8.3890 4.3.4 OBTENÇÃO DE )(xPn - FORMA DE NEWTON COM DIFERENÇAS DIVIDIDAS 4.3.4.1 TABELA DE DIFERENÇAS DIVIDIDAS Definição: Seja )(xfy = uma função tabelada em ( )1 ,,,, 10 +nxxx nK pontos distintos. Define-se o operador de diferenças divididas como segue: [ ] ( ) [ ] [ ] [ ] ( ) ( ) 01 01 01 01 10 00 , xx xfxf xx xfxf xxf xfxf − − = − − = = [ ] [ ] [ ] [ ] [ ] [ ] 03 210321 3210 02 1021 210 ,,,, ,,, ,, ,, xx xxxfxxxf xxxxf xx xxfxxf xxxf − − = − − = [ ] [ ] [ ] 0 11021 210 ,,,,,, ,,,, xx xxxfxxxf xxxxf n nn n − − = − KK K M 100 Define-se [ ]kxxxf ,,, 10 K como sendo a diferença dividida de ordem k da função f(x) sobre os (k+1) pontos: kxxx ,,, 10 K Tabela de diferenças divididas Conhecidos os valores de )(xfy = em ,,,, 10 nxxx K , constrói-se a seguinte tabela de diferenças divididas. x ordem 0 ordem 1 ordem 2 ordem 3 ... ordem n 0x [ ]f x 0 [ ]f x x0 1, 1x [ ]f x1 [ ]f x x x0 1 2, , [ ]f x x1 2, [ ]f x x x x0 1 2 3, , , 2x [ ]f x 2 [ ]f x x x1 2 3, , O [ ]f x x2 3, [ ]f x x x x1 2 3 4, , , 3x [ ]f x 3 [ ]f x x x2 3 4, , [ ]f x x3 4, M [ ]f x x x xn0 1 2, , , ,K 4x [ ]f x 4 N M M M M [ ]f x x x xn n n n− − −3 2 1, , , [ ]f x x xn n n− −2 1, , [ ]f x xn n−1 , nx [ ]f x n Exemplo: Construir a tabela de diferenças divididas para a função f( x ) tabelada a seguir: x -1 0 1 2 3 f(x) 1 1 0 -1 -2 Resolução: 101 x ordem 0 ordem 1 ordem 2 ordem 3 ordem 4 -1 1 ( ) 1 1 0 1 0− − − = 0 1 ( ) − − − − = − 1 0 1 1 1 2 0 1 1 0 1− − = − ( ) ( ) 0 1 2 2 1 1 6 − − − − = 1 0 ( )− − − − = 1 1 2 0 0 ( ) 0 1 6 3 1 1 24 − − − = − − − − = − 1 0 2 1 1 0 0 3 0 0− − = 2 -1 ( )− − − − = 1 1 3 1 0 ( )− − − − = − 2 1 3 2 1 3 -2 4.3.4.2 FORMA DE NEWTON PARA O POLINÔMIO INTERPOLADOR A forma de Newton para o polinômio )(xPn que interpola f(x) em ,,,, 10 nxxx K )1( +n pontos distintos, é a seguinte: ( ) ( ) ( ) [ ] ( )( ) [ ] ( )( ) ( ) [ ]nn n xxxfxxxxxx xxxfxxxxxxfxxxfxP ,,, ,, , 10110 210101000 KK K − −−−+ +−−+−+= Exemplo: Obter, utilizando a forma de Newton com diferenças divididas, o polinômio )(2 xP que interpola )(xfy = nos pontos dados abaixo: x 1.0 1.1 1.2 f(x) 2.718 3.004 3.320 Resolução: (a) Tabela das diferenças divididas x ordem 0 ordem 1 ordem 2 1.0 2.718 86.2 0.11.1 718.2004.3 = − − 1.1 3.004 3 16 2 86 1 2 1 0 1 5. . . . . − − = 16.3 1.12.1 004.3320.3 = − − 1.2 3.320 102 (b) Obtenção de )(2 xP : ( ) ( ) ( ) [ ] ( )( ) [ ] ( ) ( )( ) ( )( )( ) ( ) 508.129.05.1 65.115.35.186.286.2718.2=5.11.1186.21718.2 ,, , 2 2 2 2 2101010002 +−= +−+−+−−+−+= −−+−+= xxxP xxxxxxxP xxxfxxxxxxfxxxfxP Exemplo: Dada a função )(xfy = , conhecida pelos pontos da tabela abaixo, obter uma aproximação para )25.0(f , através da fórmula de Newton (com diferenças divididas), utilizando: a) Interpolação linear b) Interpolação quadrática x 0.10 0.20 0.30 0.40 0.50 f(x) 0.125 0.064 0.027 0.008 0.001 Resolução: (a) Aproximação com interpolação linear: Construção da tabela de diferenças divididas: x ordem 0 ordem 1 ordem 2 ordem 3 ordem 4 0.10 0.125 10.6−= − − 10.020.0 125.0064.0 0.20 0.064 ( ) 1.2= − −−− 10.030.0 61.037.0 37.0 20.030.0 064.0027.0 −= − − 0 9 1 2 0 40 0 10 . . . . − − = −1 0.30 0.027 ( )− − − − = 0 19 0 37 0 0 20 0 9. . .40 . . ( )− − − − = 1 1 0 50 0 10. . 0 19.0 30.040.0 027.0008.0 −= − − 0 6 0 9 0 50 0 20 1. . . . − − = − 0.40 0.008 ( )− − − − = 0 07 0 19 0 50 0 30 0 6. . . . . 07.0 40.050.0 008.0001.0 −= − − 0.50 0.001 Obtenção de )(1 xP : 103 x ordem 0 ordem 1 =0x 0.20 0.064 -0.37 0.30 0.027 ( ) ( ) ( ) [ ] )37.0)(20.0(064.0, 10001 −−+=−+= xxxfxxxfxP ( ) )37.0)(20.025.0(064.025.0)25.0( 1 −−+=≅ Pf 0455.0)25.0( ≅∴ f (b) Aproximação com interpolação quadrática: x ordem 0 ordem 1 ordem 2 =0x 0.20 0.064 -0.37 0.30 0.027 0.9 -0.19 0.40 0.008 ( ) ( ) ( ) [ ] ( )( ) [ ]2101010002 ,, , xxxfxxxxxxfxxxfxP −−+−+= ( ) ( ) ( )( ) .9)0( 30.020.0)37.0(20.0064.02 −−+−−+=∴ xxxxP ( ) ( ) ( )( ) .9)0( 30.025.020.025.0)37.0(20.025.0064.025.0)25.0( 2 −−+−−+=≅ Pf 04325.0)25.0( ≅f 4.3.4.3 ESTUDO DO ERRO NA INTERPOLAÇÃO Ao se aproximar uma função )(xfy = por um polinômio interpolador de grau ≤ n comete- se um erro, ou seja: ( ) ( ) ( ) [ ]nnn xxxxPxfxE , , 0∈∀−= Teorema 1: Sejam ( )1 ,210 +<<<< nxxxx nK pontos, e seja )(xfy = com derivadas até ordem ( ) [ ]nxxxn , ,1 0∈∀+ . Seja Pn(x) o polinômio interpolador de f(x) nos pontos nxxx ,,, 10 K . Então, [ ],, 0 nxxx ∈∀ tem-se que: ( ) ( ) ( ) ( )( )( ) ( ) ( )( )( )!1 1 210 + −−−−=−= + n f xxxxxxxxxPxfxE x n nnn ε K onde ( )nx xx , 0∈ε 104 Observe-se que a fórmula anterior para ( )xEn tem uso limitado na prática, dado que são raras as situações em que conhecemos ( ) )(1 xf n+ e que o ponto xε nunca é conhecido. Teorema 2: [ ] ( )( )( ) ( ) ( )nxn x n n xxxxx n f xxxxf , e , , !1 ,,,, 00 1 10 ∈∈ + = + ε ε K Observe-se que este teorema mostra a relação existente entre a diferença dividida de ordem ( )1+n e a derivada de ordem ( )1+n . Corolário 1:Sob as hipóteses do Teorema 1, e se ( )( )xf n 1+ for contínua em [ ],,0 nxxI = pode-se escrever a seguinte relação: ( ) ( ) ( ) ( )( ) ( ) ( )!1 1 10 + −−−≤−= + n M xxxxxxxPxfxE nnnn K onde ( )( )xfmáxM n Ix n 1 1 + ∈ + = Se a função )(xfy = é dada na forma de uma tabela, o valor absoluto do erro, ( ) ,xEn somente pode ser estimado. Se construirmos a tabela de diferenças divididas até ordem )1( +n , podemos usar o maior valor (em módulo) das diferenças divididas de ordem (n+1) como uma aproximação para ( )!1 1 + + n Mn no intervalo [ ],, no xx ou seja: ( ) ( )( ) ( ) ( )1+n ordem de divididas 10 diferençasMaxxxxxxxxE nn ×−−−≅ K Exemplo: Seja )(xfy = dada na forma tabelar: x 0.2 0.34 0.4 0.52 0.6 0.72 f(x) 0.16 0.22 0.27 0.29 0.32 0.37 Para esta função, pede-se obter: (a) Uma aproximação para f(0.47) utilizando um polinômio de grau 2 (interpolação quadrática), a partir da forma de Newton com diferenças divididas. (b) Obter uma estimativa para o erro incorrido com esta aproximação. Resolução: (a) Tabelas de diferenças divididas 105 x ordem 0 ordem 1 ordem 2 ordem 3 0.2 0.16 0.4286 0.34 0.22 2.0235 0.8333 -17.8963 =0x 0.4 0.27 -3.7033 0.1667 18.2492 =1x 0.52 0.29 1.0415 0.375 -2.6031 =2x 0.6 0.32 0.2085 0.4167 0.72 0.37 ( ) ( ) ( ) [ ] ( )( ) [ ] =−−+−+= 2101010002 ,, , xxxfxxxxxxfxxxfxP ( )( ) ( )( )( )0415.152.04.00.1667 4.027.0 −−+−+ xxx ( ) ( ) ( )( ) ( )( )( ) ( ) 2780.047.0 0415.152.047.04.047.00.1667 4.047.027.047.047.0 2 ≅∴ −−+−=≅ f Pf (b) ( ) ( )( ) ( ) ( )1+n ordem de divididas 10 diferençasMaxxxxxxxxE nn ×−−−≅ K ( ) ( )( )( ) 3 ordem divididas 2102 diferençasMaxxxxxxxxE ×−−−≅ ( ) ( )( )( )( ) ( ) 32 2 10303.847.0 2492.186.047.052.047.04.047.047.0 −≅∴ −−−≅ xE E 4.3.5 INTERPOLAÇÃO INVERSA Dada a Tabela: x 0x 1x 2x … nx )(xf )( 0xf )( 1xf )( 2xf … )( nxf o problema de Interpolação Inversa consiste em, dado ( ) ( )( )no xfxf , y ∈ , obter ( ) .x que talx yf = FORMAS DE SE RESOLVER ESTE PROBLEMA (I) Obter )(xPn que interpole )(xfy = em ,,,, 10 nxxx K e em seguida encontrar ( ) yPn =x que talx Exemplo: Dada a tabela a seguir, encontrar uma aproximação x para x tal que 2)( =xf . 106 x 0.5 0.6 0.7 0.8 0.9 1.0 f(x) 1.65 1.86 2.01 2.23 2.46 2.72 Utilizando interpolação quadrática sobre 8.0 e ,7.0 ,6.0 21 === xxxo Resolução: Tabela de Diferenças Divididas x ordem 0 ordem 1 ordem 2 0.5 1.65 2.1 0.6 1.86 -3 1.5 0.7 2.01 3.5 2.2 0.8 2.23 2.0 2.3 0.9 2.46 1.5 2.6 1.0 2.72 Polinômio de Interpolação ( ) ( ) ( ) [ ] ( )( ) [ ]2101010002 ,, , xxxfxxxxxxfxxxfxP −−+−+= ( ) ( )( ) ( )( )( ) 43.205.35.35.37.00.6-x+5.16.0+1.86= 22 +−=−− xxxxxP ( ) ( ) 043.0x05.3x5.30.243.2x05.3x5.3 2x0.2x 22 2 =+−⇒=+−∴ ≅⇒= fP 177.0xou 6945.0x == ∴ 6945.0x = (pois )7.0,6.0(6945.0x ∈= ). (II) Interpolação Inversa Se )(xfy = for inversível num intervalo contendo y então fazemos a interpolação de ( ) ( )ygyfx == −1 . Uma condição para que uma função contínua num intervalo [a, b] seja inversível é que seja monótona crescente (ou decrescente) neste intervalo. Se )(xf é dada na forma tabelar, supondo que )(xfy = seja contínua em ( ) ( )xfxx no ,, será considerada monótona crescente se ( ) ( ) ( )no xfxfxf <<< K1 e decrescente se ( ) ( ) ( )no xfxfxf >>> K1 . Exemplo: Para os dados do exemplo anterior, encontrar x tal que ( ) :2xf = , através de interpolação inversa, utilizando interpolação quadrática. Estimar o erro incorrido com esta aproximação. 107 Resolução: Tabela de diferenças divididas: y ordem 0 ordem 1 ordem 2 ordem 3 1,65 0,5 0,4762 =0y 1,86 0,6 0,5291 0,6667 -1,9007 =1y 2,01 0,7 -0,5733 0,4545 0,8823 =2y 2,23 0,8 -0,0439 0,4348 -0,0823 2,46 0,9 -0,1024 0,3846 2,72 1 Obtenção de x (interpolação inversa): ( ) ( ) ( ) [ ] ( )( ) [ ]21112 ,,, yyygyyyyyygyyygyP ooooo −−+−+= ( ) ( )( ) ( )( )( ) ( ) ( )( ) ( )( )( ) 6941.0 6941.0=5733.001.2286.126667.086.126.000.2 5733.001.286.16667.086.16.0 2 2 =∴ −−−+−+=∴ −−−+−+=∴ x P yyyyP Estimativa do erro na aproximação: ( ) ( )( ) ( ) ( )1+n ordem de divididas 10 diferençasMaxyyyyyyyE nn ⋅−−−≅ K ( ) ( )( )( ) 3 ordem divididas 2102 diferençasMaxyyyyyyyE ⋅−−−≅ ( ) ( )( )( )( ) ( ) 0.00061200.29007.123.200.201.200.286.100.200.2 22 ≅⇒−−−≅ EE Exercício: Seja a Tabela: x 0.15 0.20 0.25 0.30 0.35 0.40 f(x) 0.12 0.16 0.19 0.22 0.25 0.27 Usando um polinômio interpolador de grau 2, trabalhe de dois modos diferentes para obter o valor estimado de x para o qual f(x) = 0.23. Dê uma estimativa do erro cometido em cada caso, se possível. Resp.: (I) 0.3166666 (II) 0.3166666; 310666664.1 −≅ xerro Exercício: Construa uma tabela para a função f(x) = cos(x) usando os pontos: 0.8, 0.9, 1.0, 1.1, 1.2, 1.3. Obtenha um polinômio de 3o grau para estimar cos(1.07) Forneça um limitante superior para o erro ao se calcular cos(1.07) pelo polinômio obtido. 108 Resp.: ( ) ( ) 610x2020383.107.1E 4801232.007.1cos −≤ ≅ Exercício: O calor específico da água, como função da temperatura, é dado por: Temperatua, oC Calor Específico 20 0.99907 25 0.99852 30 0.99826 35 0.99818 40 0.99828 45 0.99849 50 0.99878 (a) Use interpolação linear para estimar o calor específico da água a 37oC; (b) Use interpolação quadrática para estimar o calor específico a 37oC. Observação: usar o polinômio interpolante de Newton com diferenças divididas, estimar o erro cometido em cada caso: 4.3.6 INTERPOLAÇÃO LINEAR DUPLA Seja determinar uma aproximação para ( )cc y,xf , utilizando a teoria de Interpolação. Supor que xc e yc satisfaçam às restrições: ici jcj yyy xxx ≤≤ ≤≤ − − 1 1 Graficamente: Inicialmente interpolamos ( )yxfz j ,1−= e obtemos uma expressão para ( )cj yxf ,1−r , onde ( ) cj yxf ,1− r é uma aproximação para ( )cj yxf ,1− . Depois interpolamos ( )yxfz j ,= e 109 obtemos uma expressão para ( ) cj yxf , . Interpolamos então ( )cyxfz ,= e obtemos então uma expressão para ( )cc y,xf . O detalhamento segue: ( ) ( ) ( ) ( )[ ]111 1 1 111 ,,,, −−− − − −−− − − − += ijij ii ic ijcj yxfyxfyy yyyxfyxf ( ) ( ) ( ) ( )[ ]1 1 1 1 ,,,, − − − − − − − += ijij ii ic ijcj yxfyxfyy yyyxfyxf ( ) ( ) ( ) ( )[ ]cjcj jj jc cjcc yxfyxf xx xx yxfyxf ,,,, 1 1 1 1 − − − − − − − += Notar que as expressões para ( )cj yxf ,1− e ( )cj yxf , são obtidas a partir da interpolação de z como função de y, mantidos constantes os correspondentes valores de x. Notar também que a expressão para ( )cc yxf , é obtida a partir da interpolação de z como função de x, em y constante é igual a cy . Observar, por final, que os valores para ( )cj yxf ,1−r e ( )cj yxf , , calculados através das duas primeiras expressões, são utilizados no cálculo de ( )cc yxf , . Exemplo: A integral elíptica de primeira espécie é definida como sendo: ( ) ∫ Θ−=Θ ϕ ϕ ϕϕ 0 22 sensen1 , dF Mostra-se, a seguir, uma tabela parcial do valor desta função: 50 60 70 80 9050 0.9401 0.9647 0.9876 1.0044 1.0107 55 1.0500 1.0848 1.1186 1.1444 1.1542 60 1.1643 1.2125 1.2619 1.3014 1.3170 65 1.2833 1.3489 1.4199 1.4810 1.5065 70 1.4068 1.4944 1.5959 1.6918 1.7354 75 1.5345 1.6492 1.7927 1.9468 2.0276 80 1.6660 1.8125 2.0119 2.2653 2.4362 Seja determinar ( )F o o73 77, , utilizando interpolação linear dupla. Resolução: Notação utilizada: 90,80,70,60,50 54321 ===== xxxxx 110 80,75,70,65,60,55,50 7654321 ======= yyyyyyy Cálculo de uma aproximação para ( )77,73f ( ) ( ) ( ) ( ) 2653.280,80 9468.175,80 0119.280,70 7927.175,70 = = = = f f f f (i) ( ) ( ) 8804.17927.10119.2 7580 75777927.177,70 =− − − +=f (ii) ( ) ( ) 0742.29468.12653.2 7580 75779468.177,80 =− − − +=f (iii) ( ) ( ) 9385.18804.10742.2 7080 70738804.177,73 =− − − +=f 4.3.7 ASPECTOS COMPUTACIONAIS: IMPLEMENTAÇÃO DO MÉTODO DE NEWTON COM DIFERENÇAS DIVIDIDAS Esquema para construção da tabela de diferenças divididas: X 0 ordem ordem 1 ordem 2 ordem (N-1) ordem N X(0) D(0,0) )0()1( )0,0()0,1( )1,0( XX DD D − − = )0()2( )1,0()1,1( )2,0( XX DD D − − = .. )0()1( )2,0()2,1( )1,0( XNX NDND ND −− −−− =− )0()( )1,0()1,1( ),0( XNX NDND ND − −−− = X(1) D(1,0) )1()2( )0,1()0,2( )1,1( XX DD D − − = )1()3( )1,1()1,2( )2,2( XX DD D − − = .. )1()( )2,1()2,2( )1,1( XNX NDND ND − −−− =− X(2) D(2,0) )2()3( )0,2()0,3( )1,2( XX DD D − − = )2()4( )1,2()1,3( )2,3( XX DD D − − = X(3) D(3,0) )3()4( )0,3()0,4( )1,3( XX DD D − − = )3()5( )1,3()1,4( )2,4( XX DD D − − = M M M M )1()( )1,1()1,( )2,1( −− −− =− NXNX NDND ND X(N-1) D(N-1,0) )1()( )0,1()0,( )1,( −− −− = NXNX NDND ND X(N) D(N,0) Seja M = N + 1, o número de pontos da tabela. Os elementos de D podem ser obtidos, de uma forma genérica, a partir das expressões: 111 1,...,2,1,0,...,2,1, )()( )1,()1,1(),(,0)),(()0,( +−== −+ −−−+ === JMINJ IXJIX JIDJID JIDNIIXFID O polinômio interpolante de Newton com diferenças divididas, em uma determinada abscissa A, é dado por: ),0())1())...(1())(0(()1,0())2())...(1())(0(( ...)2,0())1())(0(()1,0())0(()0,0()( NDNXAXAXANDNXXXAXA DXAXADXADAP −−−−+−−−−−+ +−−+−+= ( ) ( ) 1)( ),0()( 1 0 0 1 0 =− −= − = = − = ∑ kXAcom JDKXA K N J J K pi pi Segue o algoritmo: Início ! Método de Newton com Diferenças Divididas ! entrada de dados Solicite o número de pontos Leia o número de pontos (M) Solicite os valores de (X,F(X)) N = M – 1 Para I de 0 até N Faça Leia X(I), D(I,0) Fim Para ! construção da tabela de diferenças divididas Para J de 1 até N Faça Para I de 0 até M-J+1 Faça )()( )1,()1,1(),( IXJIX JIDJID JID −+ −−−+ = Fim para Fim para ! cálculo do valor aproximado Solicite o valor da abscissa em que se quer aproximar F Leia o valor da abscissa (A) F = 0 Para J de 0 até N Faça P = 1 Para K de 0 até J-1 Faça P = P * (A – X(K)) Fim Para F = F + D(0,J)*P Fim para (* saída do valor aproximado *) Escreve ‘Aproximação = ‘, F Fim ! Método de Newton com Diferenças Divididas 112 Exercícios: (1) Considere a função y = f (x) conhecida através dos pontos da tabela: x 0.000 0.100 0.300 0.400 f(x) 1.000 0.761 0.067 -0.376 Através da forma de Lagrange, determine: (a) o valor aproximado de f(0.32) usando um polinômio interpolador de 2o grau, ou seja, calcule P2 (0.32) (b) P3(0.32) Sabendo que a função f(x) é x3 - 4x2 - 2x + 1, calcule f(0.32) exatamente. Obs.: trabalhar com quatro decimais Resp.: P2 (0.32) = -0.0165 P3(0.32) = -0.0168 (2) A tabela a selguir relaciona o calor específico da água (c) em função da temperatura (T). Calcular o calor especifico da água a uma temperatura de 25oC interpolando os pontos da tabela com um polinômio de 3o grau, obtido através: (a) da fórmula de Lagrange. (b) da fórmula de Newton com diferenças divididas. Comparar os resultados obtidos com o valor real 0.99852 T (oC) C 20 30 45 55 0.99907 0.99826 0.99849 0.99919 Resp.: P3(25) = 0.99854 (3) A tabela a seguir relaciona a velocidade (v) de um foguete lançado do solo com o tempo (t). Calcule a velocidade aproximada do foguete 25s após o lançamento, interpolando os pontos da tabela com um polinômio de 4o grau, obtido através da fórmula de Newton com diferenças divididas. t (s) 0 8 20 30 45 v (m/s) 0.000 52.032 160.450 275.961 370.276 Resp.: P4(25) = 219.612 m/s (4) A tabela a seguir relaciona a distância (d) percorrida por uma bala ao longo do cano de um canhão com o tempo (t). Encontrar a distância percorrida pela bala 5 segundos após ter sido disparada, interpolando os pontos da tabela através de um polinômio de 4o grau obtido através da fórmula de Gregory-Newton. t (s) 0 2 4 6 8 d (m) 0.000 0.049 0.070 0.087 0.103 113 Resp.: P4(5) = 0.078 (5) Considerando a tabela a seguir, onde estão representados alguns pontos da função f x x( ) = 3 , determine o valor aproximado de 0.53. x 0.000 0.008 0.064 0.216 0.512 f(x) 0.000 0.200 0.400 0.600 0.800 Agradecimentos: Ao Pólo Computacional, em particular à equipe de digitação, cujo apoio foi essencial para a produção do presente trabalho. Aos colegas do DMA, pelo apoio, críticas e sugestões recebidas. BIBLIOGRAFIA 1. RUGGIERO, M. A. G. & LOPES, V. L. R. Cálculo Numérico: Aspectos Teóricos e Computacionais (2. ed.). São Paulo: MAKRON Books, 1996. 2. FRANCO, N. B. Cálculo Numérico. São Paulo: Pearson Prentice Hall, 2006. 3. CLÁUDIO, D. M.; MARINS, J. M. Cálculo Numérico Computacional: teoria e prática. São Paulo: Atlas, 1994. 4. DORN, W. S.; MAcCRACKEN, D. D. Cálculo Numérico com Estudo de Casos em Fortran IV. Rio de Janeiro: Campus; São Paulo: Ed. Da Universidade de São Paulo, 1989. 5. BARROSO, L. C. et. alii. Cálculo Numérico (com aplicações). São Paulo: Editora Harbra Ltda, 1987. 6. SCHEID, F. Análise Numérica. Lisboa: McGraw-Hill, 1991. 7. ALBRECHT, P. Análise Numérica: um curso moderno. Rio de Janeiro: Livros Técnicos e Científicos, 1973. 8. PACITTI, T.; ATKINSON, C.P. Programação e Métodos Computacionais (Vol. 2 – 2. ed.). Rio de Janeiro: Livros Técnicos e Científicos, 1983. 9. CHAPRA, S.C.; CANALE, R.P. Métodos Numéricos para Engenharia. São Paulo: McGraw-Hill, 2008.
Compartilhar