Baixe o app para aproveitar ainda mais
Prévia do material em texto
Interpolação Polinomial Interpolar é uma forma de estimar um valor desconhecido a partir de um conjunto de pontos tabelados. • Tabela gerada por uma função conhecida Exemplo: Calcular o valor aproximado de )18cos( o • Tabela gerada por dados experimentais. y: temperatura na sala 180 da FFP no dia 15/10/15 x x0 x1 ? x3 )(xf )( 0xf )( 1xf ? )( 3xf t t0=14h t1=15h 16h t3=17h y=Co Cy o3.420 = Cy o391 = ? Cy o343 = Exemplo: Calcular o valor aproximado de: ∫∫ ≈ 2 1 2 1 )(2 dxxpdxex Exemplo: Na tabela abaixo, está assinalando o número de Rottweilers registrados, no Brasil: Ano 1990 1996 1998 Número de rottweilers 1.200 17.000 26.000 Quantos rottweilers foram registrados no ano 1997?. A interpolação polinomial consiste em determinar um polinômio )(xp que passe pelos pontos tabelados. Este polinômio existe e é único e é chamado de polinômio interpolador. Existem várias formas de achar o polinômio interpolador, como por exemplo: forma de Lagrange, Aitken/Neville, Newton, Hermite, entre outros. Sejam nixi ,...,2,1,0; = números reais distintos, tais que nxxxx <<<< L210 e dados os valores nfff ,,, 10 L tal que nifxf ii ,..,1,0;)( == . Considerando a tabela contendo (n+1) pontos distintos, da forma: Seja x um ponto diferente dos pontos xi, i=0,1,...,n, tal que x ∈ [xi, xi+1], interpolar o ponto x significa calcular o valor aproximado de )()( xfxp ≈ , assim podemos incluir o novo ponto ))(,( xfx à tabela. x x0 x1 .... xn )(xf )( 0xf )( 1xf .... )( nxf Proposição: Dados (n+1) pontos ),(,),,(),,( 1100 nn yxyxyx L tal que nxxx <<< L10 , então existe um único polinômio de grau menor ou igual a n que passa por esses pontos, isto é existe um único polinômio )(xp tal que ii yxp =)( , i=0,1,...,n. Prova: Seja p x a a x a x a xn n( ) ...= + + + +0 1 2 2 um polinômio de grau menor ou igual a n, iin yxpaaa =)( que tal,..,, 10 , para i=0,1,...,n, então temos: 00 2 020100 ...)( yxaxaxaaxp nn =++++= 11 2 121101 ...)( yxaxaxaaxp nn =++++= (5.1) : n n nnnnn yxaxaxaaxp =++++= ...)( 2210 Escrita na forma matricial, { { y n a n X n nnn n n y y y a a a xxx xxx xxx = : : : : ...1 :...::: :...::: ...1 ...1 1 0 1 0 2 1 2 11 0 2 00 444 3444 21 (5.2) XT:matrix de Vandermonde (1735 - 1796). Para provar que o sistema yXa = admite uma única solução, partiremos do absurdo, isto é, vamos supor que ele admite duas soluções distintas a1 e a2 tal que : yXa =1 e yXa =2 , Então 0)( 21 =−=− yyaaX denotando por 21 aaa −= temos o sistema 0=Xa como a ≠ 0, então 0)det( =X , o que contradiz a hipótese, pois 0)det( ≠X . Portanto a1 = a2. Logo a solução é única. 5. Formas para Obter pn(x): 5.1. Resolução do Sistema Uma das formas de interpolar é resolver o sistema citado acima na proposição. Veja o exemplo a seguir: Exemplo 1: Dada a tabela de pontos, : a) que interpola a função )(xf nos pontos tabelados b) Calcule o valor aproximado de )1(f x -1 0 2 )(xf 4 1 -1 Solução: a) Na tabela temos 3 pontos x0, x1 e x2, então o polinômio será de grau 2 (interpolação quadrática): p x a a x a x2 0 1 2 2( ) = + + Nos pontos x0, x1 e x2 temos: p x a a a2 0 0 1 2 21 1 4( ) ( ) ( )= + − + − = p x a a a2 1 0 1 2 20 0 1( ) ( ) ( )= + + = p x a a a2 2 0 1 2 22 2 1( ) ( ) ( )= + + = − Escrevendo na forma matricial e resolvendo pelo método de eliminação de Gauss (ou por qualquer outro método) tem-se: 1 1 1 1 0 0 1 2 4 4 1 1 0 1 2 − = − a a a De onde obtemos: a2= 2/3, a1= -7/3 e a0 = 1 Então o polinômio interpolador é da forma: 2 2 3 2 3 71)( xxxp +−= b) Observe que x=1, não é tabelado. Mas determinar f(1) é equivalente a determinar um valor aproximado, calculando )1(6667.0 3 2 3 2 3 71)1(2 fp ≈−=−=+−= . Portanto 6667.0)1( ≈f Observação: A interpolação por resolução de sistemas, nem sempre é possível determinar o polinômio interpolador, pois sendo X a matriz transposta de Vandermonde, para pontos tabelados x0, x1,...,xn muito próximos o sistema será mal condicionado. Para contornar este problema, estudaremos outros métodos. 5.2. Forma de Lagrange Sejam nxxx ,,, 10 L pontos distintos, tal que ii yxf =)( , i=1,2,...,n e seja pn(x) um polinômio interpolador de f(x) de grau menor ou igual a n , da forma: nnn yxLyxLyxLxp )(...)()()( 1100 +++= (5.3) onde )(xLk são polinômios de grau ≤n, para k=1,..,n. Os polinômios )(xLk devem satisfazer a condição kkn yxp =)( . Então L x se k j se k jk j ( ) = ≠ = 0 1 Substituindo em (5.3) temos: knkkkkn yyyyyyyxp =++++++= +− 0...010...00)( 1110 Lagrange definiu os polinômios )(xLk da seguinte forma: ))...()()...()(( ))...()()...()(()( 1121 1121 nkkkkkkk nkk k xxxxxxxxxx xxxxxxxxxx xL −−−−− −−−−− = +− +− (5.4) Com esta definição observe que: 1))...()()...()(( ))...()()...()(()( 1121 1121 = −−−−− −−−−− = +− +− nkkkkkkk nkkkkkkk kk xxxxxxxxxx xxxxxxxxxx xL Para j ≠ k, temos (por exemplo se j = 1 ≠ k): 0))...()()...()(( ))...()()...()(()( 1121 111112111 1 = −−−−− −−−−− = +− +− nkkkkkkk nkk k xxxxxxxxxx xxxxxxxxxx xL . Exemplo 2: Determine o polinômio interpolador de )(xf pelo método de Lagrange, nos pontos tabelados do exemplo anterior: Solução: Temos x0 = -1, x1=0, x2=2, y0=4, y1= 1 e y2= -1 x -1 0 2 )(xf 4 1 -1 Como são 3 pontos tabelados, o polinômio interpolador será de grau 2 e será da forma: 2211002 )()()()( yxLyxLyxLxp ++= onde, 3 )2( ))(( ))(()( 2010 21 0 − = −− −− = xx xxxx xxxx xL 2 )2)(1( ))(( ))(()( 2101 20 1 −+− = −− −− = xx xxxx xxxx xL 6 )1( ))(( ))(()( 1202 10 2 xx xxxx xxxx xL += −− −− = Substituindo estes polinômios em p2(x) temos: )1.( 6 )2()1.( 2 )2)(1()4.( 3 )2()(2 − + + −+ − − = xxxxxx xp Simplificando 3 2 3 71)( 2 2 xx xp +−= É igual ao polinômio obtido por sistemas. Exemplo 3: Considerando a tabela abaixo a) Determine o polinômio interpolador e calcule f(0.5) b) Determine um polinômio interpolador de grau 1 e calcule f(0.5) Resolução: a) L0(x) = ( )( )( )( )( )( )( )( ) ( )( )( )x x x x x x x xx x x x x x x x x x x x− − − −− − − − = − − −1 2 3 40 1 0 2 0 3 0 4 1 2 3 24 L1(x) = ( )( )( )( )( )( )( )( ) ( )( )( )( )x x x x x x x xx x x x x x x x x x x x− − − −− − − − = + − − −−0 2 3 41 0 1 2 1 3 1 4 1 1 2 3 6 L2(x) = ( )( )( )( )( )( )( )( ) ( )( )( )( )x x x x x x x xx x x x x x x x x x x x− − − −− − − − = + − −0 1 3 42 0 2 1 2 3 2 4 1 2 3 4 x -1 0 1 2 3 )(xf 1 10 -1 -2 L3(x) = ( )( )( )( )( )( )( )( ) ( )( )( )( ) x x x x x x x x x x x x x x x x x x x x− − − − − − − − = + − − − 0 1 2 4 3 0 3 1 3 2 3 4 1 1 3 6 L4(x) = ( )( )( )( )( )( )( )( ) ( )( )( )( )x x x x x x x xx x x x x x x x x x x x− − − −− − − − = + − −0 1 2 34 0 4 1 4 2 4 3 1 1 2 24 Substituindo estes polinômios em p4(x), temos: p4(x)= x x x x( )( )( )− − −1 2 324 (1)+ ( )( )( )( )x x x x+ − − − − 1 1 2 3 6 (1)+ ( )( )( )( )x x x x+ − −1 2 3 4 (0) + ( )( )( )( )x x x x+ − − − 1 1 3 6 (-1) + ( )( )( )( )x x x x+ − −1 1 2 24 (-2) Portanto p4(0.5)=0.5391 que é um valor aproximado de f(0.5). b) Para obter um polinômio interpolador de grau 1, precisamos de 2 pontos. Como o ponto 0.5 está entre 0 e 1 na tabela, escolhemos x0=0 e x1=1, assim y0=1 , y1=0 p1(x) = L0(x)y0 + L1(x)y1 onde L0(x) = ( )( ) ( )x xx x x−− = −−10 1 1 1 L1(x) = ( )( ) ( )x x x x x x − − = = 0 1 0 1 Então p1(x) = -(x-1)1 + x.(0) = -x+1, substituindo x=0.5 temos p1(0.5) = 0.5 Observe a diferença com o valor obtido em p4(0.5)=0.5391 5.3. Forma de Newton Este método é também conhecido pelo método das diferenças divididas em relação aos distintos pontos nxxx ,,, 10 L , tal que nkfxf kk ,...,1,0;)( == O polinômio interpolador da função )(xf de grau ≤ n da forma: )())((...))(()()( 10102010 nnn xxxxxxaxxxxaxxaaxp −−−++−−+−+= L (5.5) onde ka são constantes a determinar. Como nkfxp kk ,...,1,0;)( == , então substituímos para cada k na relação (5.5), da seguinte forma: )()( 0000 xffaxpn === )()()( 101101 xfxxaaxpn =−+= , então 01 01 1 )()( xx xfxf a − − = E assim sucessivamente, os valores das constantes ak tem uma expressão grande, por causa disto se recorre à seguinte notação: E chamada de diferença dividida de ordem zero à expressão: )(][ 00 xfxf = E chamada de diferença dividida de ordem um à expressão: 01 01 10 ][][],[ xx xfxf xxf − − = Assim a diferença dividida de ordem dois é dada por: 02 1021 210 ],[],[],,[ xx xxfxxf xxxf − − = ⁞ A diferença dividida de ordem n: 0 11021 10 ],...,,[],...,,[],...,,[ xx xxxfxxxf xxxf n nn n − − = − Portanto o polinômio da equação (5.5) pode ser escrito como: ],...,[)())((...],,[))((],[)(][)( 0110210101000 nnn xxfxxxxxxxxxfxxxxxxfxxxfxp −−−−++−−+−+= L onde: ],[ 00 xfa = ],[][][ 10 01 01 1 xxf xx xfxf a = − − = ,..., ],...,,[ 10 nn xxxfa = como a construção de pn(x) é trabalhosa, então recorremos à seguinte tabela (diferenças divididas), sem perda de generalidade, suponhamos que n=4: kx yi = f0 f1 f2 f3 f4 0x ][ 00 xfy = ],[ 10 xxf 1x ][ 11 xfy = ],,[ 210 xxxf ],[ 21 xxf ],,,[ 3210 xxxxf 2x ][ 22 xfy = ],,[ 321 xxxf ],,,,[ 43210 xxxxxf ],[ 32 xxf ],,,[ 4321 xxxxf 3x ][ 33 xfy = ],,[ 432 xxxf ],[ 43 xxf 4x ][ 44 xfy = Estimativa do Erro: Uma estimativa do erro cometido na interpolação de Newton é através da fórmula: ],,...,[)())(()( 010 xxxfxxxxxxxE nnn −−−= L (5.6) onde x é o valor a ser interpolado. (Independente de conhecer a forma analítica da função f ) � Quando se conhece a forma analítica da função f, tem-se: Teorema: Se a função é conhecida e f∈C(n+1)(I), para xi∈I, i=1,...,n então: )!1( )(],,..,,[ )1( 10 + ξ = + n f xxxxf x n n tal que ξx ∈]x0,xn[ Exemplo 4: Resolva o exemplo (3), pela forma de Newton: Considerando a tabela abaixo x -1 0 1 2 3 )(xf 1 1 0 -1 -2 a) Determine o polinômio interpolador e calcule f(0.5) b) Determine um polinômio interpolador de grau 1 e calcule f(0.5) Solução: xi yi = f0 f1 f2 f3 f4 10 −=x 1][ 0 =xf f[x0,x1]=0 1x =0 1][ 1 =xf f[x0,x1,x2]= -1/2 f[x1,x2]=-1 f[x0,x1,x2,x3]=1/6 2x =1 0][ 2 =xf f[x1,x2,x3]=0 f[x0,x1,x2,x3,x4]=-1/24 f[x2,x3]=-1 f[x1,x2,x3,x4]=0 3x =2 1][ 3 −=xf f[x2,x3,x4]=0 f[x3,x4]=-1 4x =3 2][ 4 −=xf portanto ],,,,[))()()(( ],,,[))()((],,[))((],[)(][)( 432103210 32102102101010004 xxxxxfxxxxxxxx xxxxfxxxxxxxxxfxxxxxxfxxxfxp −−−−+ −−−+−−+−+= p4(x) = 1 + (x+1)(0)+(x+1)(x)(-0.5) +(x+1)(x)(x-1)(1/6)+(x+1)(x)(x-1)(x-2) (-1/24) = =-x4/24 +x3/4-11x2/24-3x/4+1 p4(0.5) = 69/128 =0.539063 (idem) Neste exemplo podemos determinar o erro, para x=0.5, obtivemos f(0.5)=0.539063 xi yi = f0 f1 f2 f3 f4 f5 x0 =-1 y0 =1 f[x0,x1]=0 x1 =0 y1 = 1 f[x0,x1,x]=- 0.307 f[x1,x]=-0.461 f[x0,x1,x,x2]=-0.116 xi yi = f0 f1 f2 f3 f4 f5 x = 0.5 y=0.5391 f[x1,x,x2]=- 0.539 f[x0,x1,x,x2,x3]=0.09 9 f[x1,x2]=-1 f[x0,x1,x2,x3]=0.18 f[x0,.,x4]=- 0.039 x2 =1 y2 = 0 f[x1,x2,x3]=0 f[x1,x, x2,x3,x4]=- 0.06 f[x2,x3]=-1 f[x1,x2,x3,x4]=0 x3 =2 y3 = -1 f[x2,x3,x4]=0 f[x3,x4]=-1 x4 =3 y4 = -2 Erro= E4(0.5) = (x-x0)(x-x1)....(x-xn) f [x0,x1,...,xn,x] = (0.5+1)(0.5)(0.5-1)(0.5-2)(0.5-3)(-0.039)= 0.0548 (muito grande!) Exemplo: Um ciclista se desloca em linha reta ao longo de uma estrada. Foram cronometrados em determinados pontos do percurso os seguintes dados Tempo t (s) 0 100 200 300 400 Distância (m) 0 80 200 380 500 Velocidade(m/s) 0 20 22 22.5 24 a) Utilizando o polinômio interpolador na forma de Lagrange, determine a distância percorrida em 250 segundos. b) Utilizando o polinômio interpolador na forma de Newton, determine a velocidade aproximada em 250 segundos. c) Em que tempo percorreu 280 m?
Compartilhar