You are on page 1of 21

UNIVERSIDADE FEDERAL DA BAHIA UFBA

Instituto de Cincias Ambientais e Desenvolvimento Sustentvel ICADS


Componente Curricular: IAD130 Clculo Numrico I







RAFAEL MARQUES M. N. BARBOSA





Interpolao Polinomial:
Mtodo de Lagrange e Splines Cbicos




Docente:
Kennedy Morais Fernandes







Barreiras BA
Julho 2013

2

Sumrio

1.0 Introduo .................................................................................................. 3
2.0 Descrio/Formulao Matemtica ............................................................ 5
2.1 Mtodo de Lagrange ................................................................................ 5
2.2 Mtodo de Splines Cbicos ..................................................................... 9
3.0 Implementao Computacional .................................................................. 12
4.0 Resultados Numricos e Anlises ............................................................. 16
5.0 Consideraes Finais ................................................................................ 20
Referncias Bibliogrficas .................................................................................. 21




























3

1.0 Introduo
Na Engenharia e experimentos prticos de laboratrio, dispe-se habitualmente de
dados experimentais, tabelas estatsticas ou at mesmo funes complexas que no
se tem o dado de certo valor intermedirio. Esse conjunto de dados obtidos
experimentalmente caracteriza-se por no possuir continuidade, portanto, atravs da
interpolao, pode-se obter uma outra funo aproximada quela que caracteriza a
amostragem (CAMPOS, 2007).
Segundo Ruggiero e Lopes, 1988, a interpolao de uma funo f(x) consiste em
aproxim-la por outra funo g(x), escolhida primeiramente entre uma classe de
funes definidas. Dessa forma a funo g(x) ento utilizada em substituio
funo f(x). A Fig. 01 ilustra melhor a afirmao.


Figura 01 Ilustrao grfica da aproximao de f(x) pela funo g(x). (RUGGIERO e LOPES, 1988)

A necessidade de se efetuar tal substituio (interpolao) decorre principalmente
por se conhecer somente os valores numricos de f(x) para um conjunto de pontos
discretos, sendo necessrio calcular o valor de f(x) em um ponto no tabelado. Outra
ocasio seria a funo em estudo possuir uma complexidade de tal forma que seria
difcil operaes como diferenciao ou integrao.
Dentre os diversos mtodos de interpolao polinomial, o presente trabalho ter
como foco o Mtodo de Lagrange e o Mtodo de Splines Cbicos. Ser disposto da
seguinte maneira: a Seo 2.0 descrevendo os dois problemas com as formulaes
matemticas, a Seo 3.0 com a implementao dos dois mtodos para cada

4

problema descrito, os Resultados Numricos apresentados na Seo 4.0 e
finalmente as Consideraes Finais apresentada na Seo 5.0.





































5

2.0 Descrio/Formulao Matemtica

2.1 Mtodo de Lagrange
1


Como visto anteriormente, o problema a ser abordado no presente trabalho trata-se
de encontrar um valor correspondente a uma tabela cujo domnio no est explcito.
Existem diversas formas de aproximar uma funo para a funo relativa aos
conjuntos de dados.
Portanto a frmula de Lagrange para a interpolao polinomial pode ser obtida
mediante a realizao de algumas consideraes (FREITAS, 2000):
Considere a funo:

, com j k.

Vamos provar que a Eq. (2.0) tem as seguintes propriedades:

um polinmio de grau n;

{



Observe que

o produto de n fatores do tipo

. Portanto, o produto
de n polinmios de grau 1 e conseqentemente um polinmio de grau n:

, com j k.
Se teremos que

o produto de fatores

;
Se ,

o produto de fatores

, com
que se anula quando , logo

nula.


1
Chamado tambm de Polinmio de Lagrange. Nomeado por razo do matemtico italiano Joseph Louis
Lagrange. o polinmio de interpolao de um conjunto de pontos discretos.
(2.0)
(2.1)

6


Considerando que de grau no superior a n, pois a soma de

que
um polinmio de grau n para , ele pode ser escrito como uma
combinao linear de

, isto (FREITAS, 2000):




Problema A
O Problema A descrito por uma tabela de valores da densidade da gua do mar
correspondente a diferentes valores de temperatura. Para se tornar mais didtico a
descrio, chamemos peso especfico () dado em Kg/m de x e temperatura (T)
dada em graus Celsius de f(x).

Tabela 2.1 Dados discretos do peso especfico da gua do mar relativo temperatura.
___________________________________________________________________
T 4 8 12 16 20
___________________________________________________________________

1000,7794 1000,6427 1000,2805 999,7165 998,9700
__________________________________________________________________

A interpolao de Lagrange consistir em montar inicialmente a estrutura do
polinmio de acordo com a Eq. (2.2):


Percebemos que falta determinar o produtrio da equao (2.1) referente a

;
(2.2)

7


Sabendo-se que a condio vlida:

{




Agora que j sabemos a afeio algbrica dos produtrios de cada componente,
possamos substituir os valores algbricos da Tabela 2.1 nos

e substituir no
polinmio p(x):



As incgnitas x com ndice so os valores da prpria Tabela 2.1 e a incgnita x sem
ndice o valor a ser calculado. Assim temos a noo de como fica a dimenso do
polinmio de Lagrange para o Problema A, tendo em vista que se torna
demasiadamente mais prtico se fazer uma implementao de tal problema para
buscar a interpolao.

Problema B
Para o Problema B foi pego o Exemplo 14 do Captulo 5 de Ruggiero e Lopes, 1988.
Um problema que cita a partir de uma tabela valores de uma funo f(x)
relacionando com seu domnio x:


8

Tabela 2.2 Dados discretos de uma funo f(x) com seu respectivo domnio x.
___________________________________________________________________
X 0 0,5 1,0 1,5 2,0
___________________________________________________________________

3,0 1,8616 -0,5571 -4,1987 -9,0536
__________________________________________________________________


A estruturao do polinmio feita de forma anloga, assim como as condies a
serem observadas.
Primeiramente tomar-se- como ponto de partida o polinmio

como mostrado
na Eq. (2.2). Ento se substitui os valores de f(x) tabelados para se calcular os
produtrios:


Percebe-se que ainda no se tem os valores de

(produtrio) calculado,
tomando-se como partida a condio:

.
Os valores das incgnitas x com os coeficientes esto relacionados com os valores
da tabela, com x comeando com coeficiente

.
Em alguns casos se tem a interpolao por polinmios de elevado grau, levando
assim a resultados equivocados. Observou-se ento que a interpolao por meio de
intervalos de poucos pontos resultava num polinmio de grau inferior, assim como a

9

continuidade de que se precisa. Denominaram essa forma de interpolao de
Splines Cbicos.

2.2 Mtodo de Splines
2
Cbicos

No mtodo de interpolao de Splines possui os tipos: linear, quadrtico e cbico. O
mtodo de Splines Cbicos apresenta vantagens em comparao ao mtodo Linear
pelo fato desta no possuir a derivada contnua nos ns. O mtodo em estudo
tambm apresenta vantagens com relao Quadrtica, pois esta possui derivada
primeira contnua, mas apenas a primeira derivada (RUGGIERO e LOPES, 1988).
Uma spline cbica consiste em uma funo polinomial S
3
(x), por partes, contnua,
onde cada parte, S
k
(x), um polinmio de grau 3 no intervalo [

], k=1, 2, ..., n.
Como pode ser visto na ilustrao da Fig. 02.


Figura 02 Ilustrao grfica da aproximao de f(x) pelo Mtodo de Spline Cbico S
1
(x).
(RUGGIERO e LOPES, 1988)

Esse polinmio S
k
(x) ter a primeira e segunda derivada contnua, sem apresentar
picos ou trocas de curvaturas nos limites de intervalos. Ento deve-se construir um
polinmio interpolador cbico que passe por dois pontos sucessivos (

) e
(

), ou seja o conjunto dos polinmios S


k
(x) utilizado no intervalo
[

], com a forma (CAMPOS, 2007):



2
O nome Spline origina-se dos desenhos tcnicos, onde usava-se uma rgua elstica chamada spline, em
desenhos de engenharia, que pode ser curvada de forma a passar por um dado conjunto de pontos (xi, yi).

10


Satisfazendo as condies:

, i=1, 2,..., n-1 e

, i=1, 2,..., n-2


Tais condies implicam na continuidade do spline e que passem pelos pontos
(

). E para garantir que as inclinaes e curvaturas sejam contnuas


tambm, impe-se:


Desta forma obtm-se de (2.3) n equaes com 4n incgnitas:

. No
entanto, as condies de (2.4) a (2.7) fornecem apenas 4n-2 equaes, sendo
necessrias mais duas equaes para calcular as 4n incgnitas.
Para calcular os coeficientes:
Para

em (2.3) e comparando com (2.4):


, logo,

, i=1, 2,..., n-1


Para

em (2.3) e comparando com (2.5):



E definindo:

so calculados da seguinte maneira:



(2.3)
(2.4)
(2.5)
(2.6)
(2.7)
(2.8)
(2.9)
(2.10)

11

]
Para facilitar no entendimento foi feito a mudana de notao:



Problema A e Problema B
O Problema A e o Problema B consistem nos dados da Tabela 1 e Tabela 2,
respectivamente, como foi visto anteriormente. As fundamentaes terica e
matemtica se resumem nas frmulas dos coeficientes dos polinmios do spline.
Portanto a Eq. (2.8) e Eq. (2.10) a (2.12) resumem bem o fundamento do Mtodo de
Spline Cbico, tendo em vista que para cada

, fica invivel
se calcular algebricamente como foi colocado anteriormente, por isso, na Seo 3.0
foi posto as Implementaes Computacionais a fim de que se tenha eficincia na
interpolao dos dados obtidos.




















(2.11)
(2.12)

12

3.0 Implementao Computacional

Nesta seo sero apresentados os algoritmos utilizados na implementao dos
mtodos de Interpolao de Lagrange e Splines Cbicos para o Problema A e
Problema B apresentados nos itens anteriores. O Algoritmo 1 apresenta a funo
principal de cada algoritmo, enquanto que o algoritmo 2 a subrotina e expressa o
processo de clculos necessrios para a interpolao.

3.1 Interpolao de Lagrange
Problema A
___________________________________________________________________________
Algoritmo 1 Funo Principal (Interpolao de Lagrange)___________________________
1: inteiro n, resultados, entrada, sada
2: caracter auxiliar
3: abra entrada
4: abra resultados
5: leia (entrada,*) auxiliar
6: leia (entrada,*) auxiliar
7: leia (entrada,*) n
8: chamar subrotina lagrange
9: feche resultado
10: feche sada
11: feche entrada
12: fim
______________________________________________________________________
Algoritmo 2 Subrotina Lagrange (n, resultados, entrada, saida)_______________________
1: inteiro i, j, n, resultados, entrada, saida
2: real soma, p, x(n), y(n), xvalor, intervalo
3: caracter auxiliar
4: leia (entrada,*) auxiliar
5: leia (entrada,*) intervalo
6: leia (entrada,*) auxiliar
7: faa i1,n,1
8: escreva (saida,*) x(i), y(i)
9: fim faa
10: xvalor x(1)
11: enquanto (xvalor < = x(n)) faa
12: soma =0

13

13: faa i1,n,1
14: p1
15: faa j1,n,1
16: se (ji) ento
17: pp*(xvalor-x(j)) / (x(i)-x(j))
18: fim se
19: fim faa
20: somasoma+ p*y(i)
21: fim faa
22: escreva (resultados,*) xvalor, soma
23: xvalorxvalor+intervalo
24: fim enquanto
25: fim

Problema B
A implementao computacional para o mtodo de Lagrange segue uma mesma
estrutura de algoritmo, no mudando muito nas funes, podendo sim construir de
forma diferente os algoritmos e ser funcional da mesma maneira, entretanto opta-se
por seguir o mesmo padro por mtodo a fim de que se tenha uma padronizao.
Ento o que se altera do Problema A para o Problema B so apenas os dados de
entrada, que so arquivos no formato txt (texto). Por isso tanto o Algoritmo 1 como o
Algoritmo 2 possuem a mesma estrutura.
___________________________________________________________________________
Algoritmo 1 Funo Principal (Interpolao de Lagrange)____________________________
___________________________________________________________________________
Algoritmo 2 Subrotina Lagrange (n, resultados, entrada, saida)________________________

3.1 Interpolao de Splines Cbicos
Problema A
___________________________________________________________________________
Algoritmo 1 Funo Principal (Interpolao de Splines Cbicos)_______________________
1: real*8 h
2: inteiro n, entrada
3: caracter texto
4: abra entrada
5: leia (entrada,*) texto
6: leia (entrada,*) texto

14

7: leia (entrada,*) n
8: nn - 1
9: chamar subrotina Principal
10: feche entrada
2:fim
______________________________________________________________________
Algoritmo 2 Subrotina Principal ( entrada, n)_______________________
1: inteiro i, j, n, resultados, entrada, saida
2: real*8 soma, p, x(n), y(n), xvalor, intervalo
3: caracter auxiliar
4: abra saida
5: leia (entrada,*) texto
5: leia (entrada,*) h
6: leia (entrada,*) texto
7: faa i0,n,1
8: escreva (saida,*) x(i), y(i)
9: fim faa
10: para i1,n,1
11: para j1,n,1
12: A(i,j)0.0
13: fim para
14: fim para
15: para i1, n-1, 1
16: A(i, i) 4.0*h
17: A(i, i-1) h
18: A(i, i+1) h
19: fim para
20: para i1, n-1, 1
21: B(i) (6/h)*(y(i+1)-2.0*y(i)+y(i-1))
22: fim para
23: escreva (saida,*) Matriz A
24: para i1,n,1
25: escreva (saida,*) A(i,j)
26: fim para
27: escreva (saida,*) Matriz B
28: para i1,n,1
29: escreva (saida,*) B(i)
30: fim para
31: para i0, n-1, 1
32: g(i) 0.0
33: fim para
34: para k1, n, 1
35: para i0, n-2, 1

15

36: g(i)=B(i)
37: para j1, i-1, 1
38: g(i) g(i)-A(i,j)*g(j)
39: fim para
40: g(i) g(i)/A(i,i)
41: fim para
42: zx(0)
43: t0,1
44: para k1, 100, 1
45: a
k
(g(k)-g(k-1))/(6*h)
46: b
k
g(k)/2
47: c
k
(g(k)-g(k-1))/h+ (2*h*g(k)+g(k-1)*h)/6
48: d
k
g(k)
49: escreva (saida,*) Soluo
50: enquanto (z<=x(k)) faa
51: solak*(z-x(k))**3 + bk*(z-x(k))**2+ck*(z-x(k))+dk
52: escreva (saida,*) z,s
53: zz+t
54: fim enquanto
55: fim para
56: feche sada
57: fim
______________________________________________________________________

Problema B
A implementao computacional para o mtodo de Splines Cbicos tambm segue a
mesma estrutura de algoritmo, no mudando muito nas funes, assim como para o
Mtodo de Lagrange no item anterior. Ento o que se altera do Problema A para o
Problema B so apenas os dados de entrada, que so arquivos no formato txt
(texto). Por isso tanto o Algoritmo 1 como o Algoritmo 2 possuem a mesma estrutura.
___________________________________________________________________________
Algoritmo 1 Funo Principal (Interpolao de Splines Cbicos)_______________________
___________________________________________________________________________
Algoritmo 2 Subrotina Principal (entrada, n)________________________




16

4.0 Resultados Numricos e Anlises
Sero apresentados nesta seo apresentados os resultados obtidos a partir da
implementao computacional utilizando o mtodo de interpolao de Lagrange e
Splines Cbicas para o Problema A e Problema B descritos anteriormente. Tais
mtodos tm por finalidade calcular os valores que no esto expostos na Tabela
2.1 e Tabela 2.2, mas que pertencem aos mesmos intervalos impostos. As tabelas
esto agrupadas pelos mtodos de Interpolao e em cada item esto os problemas
em questo.
Foi posto abaixo junto s tabelas comparativas os grficos que representam as
aproximaes de cada mtodo, podendo assim ter melhor entendimento com qual
mtodo obteve melhores aproximaes.
4.1 Problema A
Na Tabela 4.1 esto dispostos os
valores de x e f(x) das funes
interpoladoras em questo. As
lacunas em destaque so os
valores referentes as valores
fornecidos pelo problema com o
objetivo de comparar os dois
mtodos a tais valores fornecidos.
So os valores:
6 = 1000,7409;
10 = 1000,4882;
14 = 1000,0224;
18 = 999,3650.
Percebe-se ento que o Mtodo
de Lagrange, para a aproximao
dada, alcanou exatamente a
aproximao exata dos pontos
interpolados.
Tabela 4.1 - Comparativo das aproximaes para o
Problema A
Interpolao de
Lagrange
Interpolao de Spline
Cbico
x f(x) x f(x)
5,900 1000,7443 5,900 1000,6436
5,950 1000,7426 5,950 1000,6436
6,000 1000,7409 6,000 1000,6436
6,050 1000,7391 6,050 1000,6436
6,100 1000,7374 6,100 1000,6436
9,900 1000,4972 9,900 1000,2825
9,950 1000,4927 9,950 1000,2825
10,000 1000,4882 10,000 1000,2825
10,050 1000,4836 10,050 1000,2824
10,100 1000,4791 10,100 1000,2823
13,900 1000,0365 13,900 999,7190
13,950 1000,0295 13,950 999,7189
14,000 1000,0224 14,000 999,7189
14,050 1000,0153 14,050 999,7189
14,100 1000,0082 14,100 999,7188
17,900 999,3837 17,900 998,9731
17,950 999,3744 17,950 998,9730
18,000 999,3650 18,000 998,9730
18,050 999,3557 18,050 998,9729
18,100 999,3463 18,100 998,9728


17

Em contra partida o Mtodo de Spline Cbico apresentou erro variando de 0,09 at
0,69. Observou-se com os valores de f(x) que o Mtodo de Lagrange teve mudana
mais rpida nos valores, enquanto os valores para Spline Cbico apresentou
mudana mais suave de ponto a ponto.

Grfico 1Ilustrao grfica da interpolao dos dois Mtodos para o conjunto de dados do Quadro 1.


Com a ilustrao do Grfico 1, nota-se como que o comportamento do Mtodo de
Lagrange realmente suave, enquanto o de Spline Cbico possui os ns
destacados e os erros aproximando de zero. Entretanto entre os intervalos, em
relao ao outro mtodo, no se obteve valores considerados.
Na Tabela 4.2 esto relacionados
os erros de cada mtodo para os
pontos fornecidos. Fica claro que o
Mtodo de Lagrange foi mais
eficiente com erros bem menores
do que o Mtodo de Splines
Cbicos.




Tabela 4.2 - Comparativo dos erros
entre os mtodos. Problema A.
Interpolao de
Lagrange
Interpolao de
Spline Cbico
X Erro X Erro
6 0,00001063 6 0,09728000
10 0,00000312 10 0,20570000
14 0,00001562 14 0,30347000
18 0,00002812 18 0,39204000


18

4.2 Problema B

Para o Problema B a forma de
comparao foi anloga ao
Problema A. Pegou-se quatro
pontos igualmente distribudos e
analisa-se que houve maior
discrepncia entre os mtodos
neste caso.
necessrio destacar que tal
problema foi retirado do Exemplo
14, do Captulo 5 de Ruggiero e
Lopes, 1988. Foi dado no exemplo
o valor interpolado de x = 0,25:
X(0,25) = 2,5348
Nota-se que para esse exemplo o
Mtodo Splines Cbico obteve
melhor aproximao para o valor
exato dado, com erro zero.
O Mtodo de Lagrage em contra
partida no teve sua preciso
distanciada do valor exato dado e
atingiu erro para o ponto 0,25 de
0,0615.






Tabela 4.3 - Comparativo das aproximaes para o
Problema B
Interpolao de
Lagrange
Interpolao de Spline
Cbico
x f(x) x f(x)
0,100 2,8791 0,100 2,8256
0,150 2,7982 0,150 2,7342
0,200 2,7039 0,200 2,6378
0,250 2,5963 0,250 2,5348
0,300 2,4754 0,300 2,4234
0,650 1,2669 0,650 1,2817
0,700 1,0435 0,700 1,0581
0,750 0,8076 0,750 0,8205
0,800 0,5593 0,800 0,5693
0,850 0,2986 0,850 0,3053
1,200 -1,8686 1,200 -1,8604
1,250 -2,2268 1,250 -2,2160
1,300 -2,5970 1,300 -2,5845
1,350 -2,9793 1,350 -2,9665
1,400 -3,3737 1,400 -3,3625
1,750 -6,4732 1,750 -6,5285
1,800 -6,9647 1,800 -7,0241
1,850 -7,4684 1,850 -7,5260
1,900 -7,9844 1,900 -8,0326
1,950 -8,5128 1,950 -8,5423


19

Grfico 2Ilustrao grfica da interpolao dos dois mtodos para o conjunto de dados do Quadro 2.

Percebe-se pelo Grfico 2 e a partir da Tabela 2.2, tanto o Mtodo de Lagrange
como o Mtodo de Splines Cbicos esto com os valores de F(X) muito prximos.
Isto , os dois obtiveram sucesso para a interpolao, primeiramente pelo fato de o
erro ter sido baixo em relao ao valor dado pelo exemplo e posteriormente por
notar comportamentos similares pelo grfico.

A Tabela 4.4 exibe os erros
referentes ao ponto 0,25, exposto
no exemplo do livro de Ruggiero e
Lopes, 1988. Comprova a preciso
do Mtodo de Splines Cbicos
adquirindo erro de zero.










Tabela 4.4 - Comparativo dos erros entre os
Mtodos. Problema B.
Interpolao de
Lagrange
Interpolao de
Spline Cbico
X Erro X Erro
0,250 0,0615 0,250 0,0000


20

5.0 Consideraes Finais

A interpolao polinomial de f(x) est bem relacionada com o conjunto de dados
discretos que se tem em mos.
Foi observado que o erro obtido atravs do Mtodo de Spline Cbicos para o
Problema A se apresentou de forma acentuada em relao ao Mtodo de Lagrange,
o que ficou de fato comprovado no Grfico 4.1. Notou-se que entre os intervalos dos
ns a funo permanecia praticamente constante at o limite do n. Posteriormente
a funo se comportava como degrau, decaindo abruptamente no mesmo n.
Para o Problema B os dois mtodos interpolaram os dados da Tabela 2.2 de forma
positiva. O erro obtido pelo Mtodo de Splines Cbicos foi menor em comparao ao
de Lagrange. Entretanto como visto no Grfico 2, os dois mtodos alcanaram de
forma positiva a interpolao dos dados.
















21

REFERNCIAS BIBLIOGRFICAS

ASANO, Claudio Hirofume;COLLI, Eduardo. Clculo Numrico - Fundamentos e
Aplicaes. 2009.

CAMPOS, Frederico Ferreira. Algoritmos Numricos. 2 Ed. Belo Horizonte: LTC
editora, 2007.

FREITAS, Sergio Roberto de. Mtodos Numricos. 2000.

RUGGIERO, Mrcia A. Gomes; LOPES, Vera Lcia da Rocha. Clculo Numrico:
Aspectos Tericos e Computacionais. 2 Ed. So Paulo: Pearson editora. 1988.

You might also like