Documente Academic
Documente Profesional
Documente Cultură
Sumrio
Sumrio 1 Tcnica de Interpolao Polinomial de Lagrange.
1.1 Implementao da interpolao polinomial de Lagrange . . . . . . . . . . . . . . . . . 1.1.1 Programa em fortran-90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 3
6 10
13
13 15
3 Diferenas Divididas
3.1 3.2 DDF uma relao recursiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Frmula de Newton para o pilinmio interpolador . . . . . . . . . . . . . . . . . . . .
17
18 19
21 22
(x0 ,y0 ), (x1 ,y1 ), . . . , (xn , yn ) em que x0 = x1 = = xn . Definamos inicialmente um intervalo [a,b] R e uma funo f : [a,b] R. Basicamente, o processo de interpolao pode ser entendido
dada por uma como sendo o ato de avaliar a funo f (x), x [a,b], quando faz-se substituio da funo f (x)
p(xi ) = f (xi ), i = 0, . . . , n.
(1.1)
[a,b]. Para entendermos melhor o funcionamento do processo de aproximao nesse contexto, vamos
inicialmente determinar um polinmio de grau 1, que passa pelos pontos distintos (x0 ,y0 ) e (x1 ,y1 ). De sada, j sabemos que f (x0 ) = y0 e que f (x1 ) = y1 . Definimos os como segue
Por essa forma, sabemos os valores que a funo f assume nos pontos cujas as abscissas x0 , . . . , xn
Polinmios Interpoladores
L0 (x) =
x x1 x0 x1
L 1 ( x) =
x x0 x1 xo
(1.2)
Agora, avaliemos o que acontece na definio acima ao atribuirmos valores tais que x = x0 , x1 :
L0 (x0 ) =
x0 x1 = 1, x0 x1
L0 (x1 ) =
x1 x1 = 0, x0 x1
L1 (x0 ) =
x 0 x0 x1 x0 = 0 e L1 (x1 ) = =1 x1 xo x1 xo
x x1 x x0 f (x0 ) + f (x1 ). x0 x1 x1 xo
(1.3)
CAPTULO 1.
Essa combinao linear de elementos construda acima nos fornece os seguintes resultados:
y = f (x1 )
y = P (x) y = f (x)
y = f (x0 )
x0
x1
Figura 1.1: Interpolao linear de uma funo f (x) para um polinmio P (x) de grau 1 dado.
construmos acima pode ser generalizada para polinmios de grau n arbitrrio que passam por n + 1 pontos da funo f considerada como ilustra a Fig.(1.2). Nessa generalizao devemos construir, para cada k = 0, 1, . . . , n, um polinmio de grau n, que denotaremos por Ln,k (x) que as seguintes propriedades:
Ln,k (xi ) = 0 se i = k
e
Ln,k (xi ) = 1 se i = k
Agora, importante analisarmos que, para que Ln,k (xi ) = 0 para cada i = k , o numerador da
5
y
y = P (x) y = f (x)
x0
xn
Figura 1.2: Interpolao linear de uma funo f (x) para um polinmio P (x) de grau n 1 dado. sendo que para Ln,k (xk ) = 1, o denominador de Ln,k (x) deve conter x = xk e ser da forma
Ln,k (x) =
(x x0 )(x x1 ) . . . (x xk1 )(x xk+1 ) . . . (x xn ) . (xk x0 ) . . . (xk xk1 )(xk xk+1 ) . . . (xk xn )
(1.4)
Estamos nas condies de enunciar o seguinte teorema para fundamentarmos as ideias expostas anteriormente em bases slidas:
Teorema 1 Seja f (x) uma funo cujos valores conhecemos nos pontos x0 , . . . ,xn . Existe um nico
polinmio P (x) de grau menor ou igual a n tal que
p(xi ) = f (xi ), para i = 0, . . . , n
Prova.
Considere inicialmente o polinmio
n k=0
f (xk )Ln,k
(1.5)
( x xi ) (xk xi ) Suponhamos que existam dois polinmios interpoladores P1 (x) e P2 (x). De Eq.(1.5) temos que n
i=0,i=k
CAPTULO 1.
P1 (x) P2 (x) = 0.
Donde segue a unicidade. O teorema que segue nos d uma estimativa do erro do polinmio interpolador.
funo com (n + 1) derivadas contnuas em [a,b]. O erro do polinmio interpolador de f (x) nos
1 , 1 + x2
(1.6)
cujo grfico apresentado na Fig(1.3). Ao aplicarmos a interpolao polinomial lagrangiana, trabalhamos com polinmios interpoladores de grau zero at grau 4.
1.1.
0.5
-0.5 -10
-5
10
1.5
0.5
-0.5 -10
-5
10
Figura 1.4: Grfico da funo f (x) com o polinmio interpolador de primeiro grau l1 (x), presente no programa.
CAPTULO 1.
1.5
0.5
-0.5 -10
-5
10
Figura 1.5: Grfico da funo f (x) com o polinmio interpolador de segundo grau l2 (x), presente no programa.
1.5
0.5
-0.5 -10
-5
10
Figura 1.6: Grfico da funo f (x) com o polinmio interpolador de terceiro grau l3 (x), presente no programa.
1.1.
1.5
0.5
-0.5 -10
-5
10
Figura 1.7: Grfico da funo f (x) com o polinmio interpolador de quarto grau l4 (x), presente no programa.
1.5
0.5
-0.5 -10
-5
10
Figura 1.8: No mesmo plano, plotamos o grfico da funo f (x) e todos os polinmio interpoladores vistos anteriormente.
10
1.1.1
CAPTULO 1.
Programa em fortran-90
Segue abaixo o cdigo do programa em fortran que implementamos. Com o mesmo foi possvel gerar os dados necessrios para a plotagem dos grficos. *******************************************
******************************************* * * Implementao do mtodo lagrangiano. * * ******************************************* program lagrange real*8 a, b, D, h integer i, p character *30 line !defina coisas que vai usar apenas! open ( 100,file = "print.dat") data line / "(1x,49(-))"/ write(*,*) "Digite o extremo inferior do intervalo:" read(*,*) a write(*,*) "Digite o extremo superior do intervalo:" read(*,*) b write(*,*) "Digite a quentidade de subintervalos: " read(*,*) p D = (b-a)/p h=a do i= 1, p write(100,*) i, h, fn(h), l1(h), l2(h), l3(h), l4(h) h= h + D end do end ********************************* ********************************* function fn(x) real*8 x f=1.d0/(1.d0+x**2.d0) return end function fn ******************************** ******************************** function l1(x) implicit real*8 (a-h,o-z) p1= 0.0099009d0*((x+10.d0)/20.d0 +
1.1.
11
(x-10.d0)/(-20.d0)) return end function l1 ********************************* ********************************* function l2(x) implicit real*8 (a-h,o-z) p2= 0.0099009d0*(x**2.d0-10.d0*x)/(200.d0) + (x**2.0-100.d0)/(-100.d0) + 0.0099009d0*(x**2.d0+10.d0*x)/(200.d0) return end function l2 ********************************* ********************************* function l3(x) implicit real *8 (a-h,o-z) p3 = 0.0099009d0*(x+5.d0)*(x-5.d0)*(x-10.d0)/(-1500.d0) + 0.038461538d0*(x+10.d0)*(x-5.d0)*(x-10.d0)/(750.d0) + 0.038461538d0*(x+10.d0)*(x+5.d0)*(x-10.d0)/(-750.d0) + 0.0099009d0*(x+10.d0)*(x+5.d0)*(x-5.d0)/(1500.d0) return end function l3 ********************************* ********************************* function l4(x) implicit real*8 (a-h,o-z) p4 = 0.0099009d0*(x+5.d0)*x*(x-5.d0)*(x-10.d0)/(15000.d0) + 0.038461538d0*(x+10.d0)*x*(x-5.d0)*(x-10.d0)/(-3750.d0) + (x+10.d0)*(x+5.d0)*(x-5.d0)*(x-10.d0)/(2500.d0) + 0.038461538d0*(x+10.d0)*(x+5.d0)*x*(x-10.d0)/(-3750.d0) + 0.0099009d0*(x+10.d0)*(x+5.d0)*(x-10.d0)*(x-5.d0)/(15000.d0)
12 return
CAPTULO 1.
end function l4
Definio 1 Seja I = [a,b] um subconjunto da reta real. Uma partio do intervalo I ser definida
pelos pontos x0 , x1 , . . . , xm , tais que,
: a = x0 < x1 < x2 < < xm1 < xm = b.
(2.1)
Os splines so polinmios definidos em cada subintervalo (xi1 , xi ), i = 1 : m, oriundos da partio definida inicialmente. Dessa maneira, cada sobintervalo possui um pedao desses polinmios que so unidos de forma convenientes, de modo que a regularidade exigida do problema seja satisfeita. Cada ponto x1 da partio tambm chamado de n. Percebemos que alguns conhecimentos de lgebra Linear so exigidos no estudo da interpolao polinomial por splines. De fato, o conjunto de funes polinomiais, ou seja, o conjunto das funes splines de grau n, associadas partio (2.1), resultam em um espao vetorial cuja dimenso depende de n e do nmero de ns da da partio considerada. As referncias nos mostram que splines lineares associados partio (2.1) com m 13
14
y
CAPTULO 2.
x0
x1
x2
x3
x4
x0
x1
x2
x3
x4
Figura 2.1: Exemplos de splines lineares (n = 1) e splines cbicas (n = 3). pontos formam um espao vetorial de dimenso m + 1. Agora, no caso de splines cbicas associadas a esta partio, o espao vetorial teria dimenso m + 3. Evocando uma das propriedades de espaos vetoriais, considere {i }k i=1 uma base para o espao vetorial de splines, ento qualquer elemento deste espao vetorial pode ser escrito na forma
(2.2)
donde C1 , C2 , . . . , Ck so os coeficientes da combinao linear considerada e k a dimenso do espao vetorial. Splines que geram, em cada subintervalo da partio, sistemas esparsos quase sempre resultam em melhores propriedades de estabilidade na sua soluo numrica, mais detalhes em [4]. O uso de splines geram espaos de dimenso finita que, em algum sentido, se aproximam de espaos de problemas que tem dimenso infinita. De fato, vamos considerar um exemplo relativamente simples. O conjunto das funes contnuas em [0,1], que um espao de funes de dimenso infinita, pode ser interpolado pelo splines lineares associados partio de [0,1], como ilustra a Fig.(2.2). O estudo do sobre o erro de interpolao cometido com aproximaes por splines pode ser encontrado em [4].
y
g (x)
2.1.
ALGUMAS DEFINIES
15
2.1.1
Faremos aqui uma breve explanao sobre splines lineares. Uma apresentao mais aprofundada pode ser encontrada na bibliografia espacializada tambm em relao a splines de ordem superior. Com efeito, consideremos uma funoli (x) definida em cada n xi de uma partio, como feito em (2.1),por
leneares que so polinmios de grau n = 1 definidos em cada subintervalo da partio, de modo que cada uma destas funes no nula apenas em dois subintervalos vizinhos. Estas funes tambm recebem o nome de funes chapu. No que segue, temos que a funo spline linear
N 1(x)
0 1 2
1
3 4
N 2(x)
0 1 2
1
4
N 3(x)
1 x
16
CAPTULO 2.
x f ( x)
x0 1 1
x1 2 2
x2 5 3
x3 7 2.5
Tabela 2.1: Tabela referente a um certo experimento realizado, adaptado de [3]. De acordo com a definio de interpolao por spline linear, temos que proceder da seguinte maneira
s1 (x) = f (x0 ) =
x x0 2x x1 x1 x + f (x1 ) =1 +2 = 2 x + 2x 2 = x, x [1,2]; x1 x0 x 1 x0 21 21
s2 (x) = f (x1 ) =
e
x2 x x x1 5x x2 2 1 + f ( x2 ) =2 +3 = (5 x) + x 2 = (x + 4), x [2,5]; x2 x1 x2 x1 52 52 3 3
s3 (x) = f (x2 ) =
Definio 2 Seja yy = f (x) uma funo que contm os pontos distintos (x i, yi ), i = 0, 1,2, . . . , n.
A derivada primeira de funo f (x) em um ponto x0 definida por:
f (x0 ) = lim f ( x) f ( x0 ) x x0
xx0
(3.1)
No que segue, a diferena dividida de primeira ordem ser definida em termos da derivada primeira, ou melhor, como uma aproximao da derivada primeira:
f [x,x0 ] =
f ( x) f ( x0 ) . x x0
(3.2)
Em nossa pesquisa notamos que alguns autores adotam as seguintes notaes para o operador de diferenas divididas finitas:
f [ ], [ ] ou y.
Nessa linha, se tomarmos x = x1 na equao Eq.(3.1), teremos a diferena dividida de primeira ordem nos argumentos x0 e x1 :
y0 = f [x0 ,x1 ] =
f (x) f (x0 ) , x x0
Generalizando esta ideia, segue que a diferena dividida de primeira ordem pode ser definida por:
yi = f [xi , xi+1 ] =
17
(3.3)
18
CAPTULO 3.
DIFERENAS DIVIDIDAS
Tomando-se yi = f (xi ), vem que a relao Eq.(3.3) pode ser reescrita assim
yi+1 yi . xi+1 xi
(3.4)
0 yi = f [xi ] = f (x i) = yi .
(3.5)
donde segue que, consequentemente, o operador de diferena dividida de primeira ordem pode ser reescrito em funo da diferena dividida de ordem zero. De fato,
yi =
(3.6)
n yi =f [xi , xi+1 , . . . , xi+n ] = f [xi+1 , xi+2 , . . . , xi+n ] f [xi , xi+1, , . . . , xi+n1 ] xi + n xi n1 n1 yi yi+1 = xi+n xi
(3.7)
Teorema 3 Se f(x) uma funo polinomial de grau n, que passa pelos pontos (x0 , y0 ), (x1 ,y1 ), . . . , (xk ,yk ), . . .
ento a diferena dividida de ordem k , f [x, xi , xi+1 , . . . , xi+k1 ] um polinmio de grau n k .
Prova.
Vamos provas este teorema por induo sobre k. Com efeito, o teorema verdadeiro para k = 1 pois pela diferena dividida de primeira ordem segue que
f [x,xi ] =
f (x) f (xi ) x xi
3.2.
19
Dessa meneira, f [x,xi ] um polinmio de grau n 1(n k ), pois f (x) de grau n, donde (x xi ) que o teorema seja vlido para k = p 1, ou seja, que a diferena dividida de ordem p 1, onde que esta ltima afirmao vlida para k = p. Sabemos que, por definio, a diferena dividida de
de primeiro grau e f (xi ) constante. Com efeito, tomemos nossa hiptese de induo. Supondo
f [x, xi , xi+1 , . . . , xi+p2 ] , por construo, um polinmio de grau n (p 1). Vamos provar agora
ordem p dada por
Devemos observar agora que f [x, xi , xi+1 , . . . , xi+p2 ] uma constante, pois a varivel independente
x no est presente; temos ainda que f [x,xi , . . . , xi+p2 ] de grau n (p 1) pois se trata de uma
diferena dividida de ordem p 1, da hiptese de induo, e (x xi+p1 ) de primeiro grau. Assim,
P [x, x0 ] =
Pn (x) Pn (x0 ) , x x0
(3.8)
que um polinmio de grau 1. Das referncias [2, 3] , temos que um polinmio interpolador, nesse contexto, de grau n pode ser escrito assim:
y0
i1 j =0
(x xj )
Exemplo 2 Determinar o valor aproximado de f (0.4), usando todos os pontos tabelados da fubo
f (x) abaixo.
Contruo da tabela de operaes: Assim,
(3.10)
20 i 0 1 2 3 4
CAPTULO 3.
DIFERENAS DIVIDIDAS
Tabela 3.1: Tabela referente a um certo experimento realizado. i Difi = (x xi ) P rodj = i j =0 (x xj ) 0 0.4 0.4 1 0.2 0.08 2 0.1 0.008 3 -0.1 -0.008
Salientamos aqui, que se um procedimento fosse feito pelo mtodo de diferenas divididas, o custo computacional seria consideravelmente maior em relao ao que fizemos agora com diferenas e produtos, [2].
21
Referncias Bibliogrficas
[1]
[2]
Editora da
[3]
[4] [5]
SHULTZ, M., Spline Analysis. Prentice Hall Inc. 1973 STEWART, James. Clculo
Vol. 2, 5a edio. Cenage Learning, 2005
22