You are on page 1of 21
UNIVERSIDADE FEDERAL DA BAHIA – UFBA Instituto de Ciências Ambientais e Desenvolvimento Sustentável – ICADS Componente

UNIVERSIDADE FEDERAL DA BAHIA UFBA Instituto de Ciências Ambientais e Desenvolvimento Sustentável ICADS Componente Curricular: IAD130 Cálculo Numérico I

RAFAEL MARQUES M. N. BARBOSA

Interpolação Polinomial:

Método de Lagrange e Splines Cúbicos

Docente:

Kennedy Morais Fernandes

Barreiras BA Julho 2013

Sumário

  • 1.0 Introdução

 

3

  • 2.0 Descrição/Formulação Matemática

5

  • 2.1 Método

de

Lagrange

5

  • 2.2 Método de Splines Cúbicos

9

  • 3.0 Implementação Computacional

12

  • 4.0 Resultados Numéricos e Análises

16

  • 5.0 Considerações Finais

 

20

Referências Bibliográficas

21

1.0 Introdução

Na Engenharia e experimentos práticos de laboratório, dispõe-se habitualmente de dados experimentais, tabelas estatísticas ou até mesmo funções complexas que não se tem o dado de certo valor intermediário. Esse conjunto de dados obtidos experimentalmente caracteriza-se por não possuir continuidade, portanto, através da interpolação, pode-se obter uma outra função aproximada àquela que caracteriza a amostragem (CAMPOS, 2007).

Segundo Ruggiero e Lopes, 1988, a interpolação de uma função f(x) consiste em aproximá-la por outra função g(x), escolhida primeiramente entre uma classe de funções definidas. Dessa forma a função g(x) é então utilizada em substituição à função f(x). A Fig. 01 ilustra melhor a afirmação.

1.0 Introdução Na Engenharia e experimentos práticos de laboratório, dispõe-se habitualmente de dados experimentais, tabelas estatísticas

Figura 01 Ilustração gráfica da aproximação de f(x) pela função g(x). (RUGGIERO e LOPES, 1988)

A necessidade de se efetuar tal substituição (interpolação) decorre principalmente por se conhecer somente os valores numéricos de f(x) para um conjunto de pontos discretos, sendo necessário calcular o valor de f(x) em um ponto não tabelado. Outra ocasião seria a função em estudo possuir uma complexidade de tal forma que seria difícil operações como diferenciação ou integração.

Dentre os diversos métodos de interpolação polinomial, o presente trabalho terá como foco o Método de Lagrange e o Método de Splines Cúbicos. Será disposto da seguinte maneira: a Seção 2.0 descrevendo os dois problemas com as formulações matemáticas, a Seção 3.0 com a implementação dos dois métodos para cada

problema descrito, os Resultados Numéricos apresentados na Seção 4.0 e finalmente as Considerações Finais apresentada na Seção 5.0.

2.0

Descrição/Formulação Matemática

  • 2.1 Método 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 domínio não está explícito. Existem diversas formas de aproximar uma função para a função relativa aos conjuntos de dados.

Portanto a fórmula de Lagrange para a interpolação polinomial pode ser obtida mediante a realização de algumas considerações (FREITAS, 2000):

Considere a função:

=

, com j ≠ k.

(2.0)
(2.0)

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

é um polinômio de grau n;

{

Observe que

é o produto de n fatores do tipo

. Portanto, é o produto

de n polinômios de grau 1 e conseqüentemente um polinômio de grau n:

=

, com j ≠ k.

Se

Se

teremos que

é

o produto de fatores

,

é o produto de fatores

que se anula quando

, logo

é nula.

(2.1)
(2.1)

;

, com

1 Chamado também de Polinômio de Lagrange. Nomeado por razão do matemático italiano Joseph Louis Lagrange. É o polinômio de interpolação de um conjunto de pontos discretos.

Considerando que

 

é de grau não superior a n, pois é a soma de

 

que é

um

polinômio

de

grau

n

para

,

ele

pode

ser

escrito

como

uma

combinação linear de

, isto é (FREITAS, 2000):

  • Problema A

(2.2)
(2.2)

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 didático a

descrição, chamemos peso específico ( ) dado em Kg/m³ de x e temperatura (T) dada em graus Celsius de f(x).

Tabela 2.1 Dados discretos do peso específico da água do mar relativo à temperatura.

___________________________________________________________________

T

12º

16º

20º

___________________________________________________________________

 

1000,7794

1000,6427

1000,2805

999,7165

998,9700

__________________________________________________________________

A interpolação de Lagrange consistirá em montar inicialmente a estrutura do polinômio de acordo com a Eq. (2.2):

Percebemos que falta determinar o produtório da equação (2.1) referente a

;

;

:

;

Sabendo-se que a condição é válida:

{

;

Agora que já sabemos a “afeição” algébrica dos produtórios de cada componente,

possamos substituir os valores algébricos da Tabela 2.1 nos polinômio p(x):

e substituir no

As incógnitas x com índice são os valores da própria Tabela 2.1 e a incógnita x sem índice é o valor a ser calculado. Assim temos a noção de como fica a dimensão do polinômio de Lagrange para o Problema A, tendo em vista que se torna demasiadamente mais prático se fazer uma implementação de tal problema para buscar a interpolação.

  • Problema B

Para o Problema B foi pego o Exemplo 14 do Capítulo 5 de Ruggiero e Lopes, 1988. Um problema que cita a partir de uma tabela valores de uma função f(x) relacionando com seu domínio x:

Tabela 2.2 Dados discretos de uma função f(x) com seu respectivo domínio x.

___________________________________________________________________

X

0

0,5

1,0

1,5

2,0

___________________________________________________________________

 

3,0

1,8616

-0,5571

-4,1987

-9,0536

__________________________________________________________________

A estruturação do polinômio é feita de forma análoga, assim como as condições a serem observadas.

Primeiramente tomar-se-á como ponto de partida o polinômio como mostrado

na

Eq.

(2.2). Então se substitui os valores de f(x) tabelados para se calcular os

produtórios:

Percebe-se que ainda não se tem os valores de tomando-se como partida a condição:

{

(produtório) calculado,

;

;

;

.

Os valores das incógnitas x com os coeficientes estão relacionados com os valores da tabela, com x começando com coeficiente .

Em alguns casos se tem a interpolação por polinômios de elevado grau, levando assim a resultados equivocados. Observou-se então que a interpolação por meio de intervalos de poucos pontos resultava num polinômio de grau inferior, assim como a

continuidade de que se precisa. Denominaram essa forma de interpolação de Splines Cúbicos.

2.2 Método de Splines 2 Cúbicos

No método de interpolação de Splines possui os tipos: linear, quadrático e cúbico. O método de Splines Cúbicos apresenta vantagens em comparação ao método Linear pelo fato desta não possuir a derivada contínua nos nós. O método em estudo também apresenta vantagens com relação à Quadrática, pois esta possui derivada primeira contínua, mas apenas a primeira derivada (RUGGIERO e LOPES, 1988).

Uma spline cúbica consiste em uma função polinomial S 3 (x), por partes, contínua,

onde cada parte, S k (x), é um polinômio de grau 3 no intervalo [

Como pode ser visto na ilustração da Fig. 02.

], k=1, 2, ...

,

n.

continuidade de que se precisa. Denominaram essa forma de interpolação de Splines Cúbicos. 2.2 Método de

Figura 02 Ilustração gráfica da aproximação de f(x) pelo Método de Spline Cúbico S 1 (x). (RUGGIERO e LOPES, 1988)

Esse polinômio S k (x) terá a primeira e segunda derivada contínua, sem apresentar picos ou trocas de curvaturas nos limites de intervalos. Então deve-se construir um polinômio interpolador cúbico que passe por dois pontos sucessivos ( ) e

(

), ou seja o conjunto dos polinômios S k (x) é utilizado no intervalo

[

], com a forma (CAMPOS, 2007):

2 O nome Spline origina-se dos desenhos técnicos, onde usava-se uma régua elástica chamada spline, em desenhos de engenharia, que pode ser curvada de forma a passar por um dado conjunto de pontos (xi, yi).

Satisfazendo as condições:

 
(2.3)
(2.3)

,

i=1,

n-1 e

,

(2.4)
(2.4)
 

, i=1,

n-2

(2.5)
(2.5)

Tais condições implicam na continuidade do spline e que passem pelos pontos

(

).

E para garantir que as inclinações e curvaturas sejam contínuas

também, impõe-se:

Desta forma obtêm-se de (2.3) n equações com 4n incógnitas:

  • (2.6)
    (2.7)

.

No

entanto, as condições de (2.4) a (2.7) fornecem apenas 4n-2 equações, sendo necessárias mais duas equações para calcular as 4n incógnitas.

Para calcular os coeficientes:

Para em (2.3) e comparando com (2.4):

, logo,

, i=1,

n-1

(2.8)
(2.8)

Para

em (2.3) e comparando com (2.5):

E definindo:

,

(2.9)
(2.9)

são calculados da seguinte maneira:

  • (2.10)

Satisfazendo as condições: (2.3) , i=1, n-1 e , (2.4) , i=1, n-2 (2.5) Tais condições

[

]

[ ] (2.11) (2.12) Para facilitar no entendimento foi feito a mudança de notação: e 

(2.11)

[ ] (2.11) (2.12) Para facilitar no entendimento foi feito a mudança de notação: e 

(2.12)

Para facilitar no entendimento foi feito a mudança de notação:

e

  • 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 fundamentações teórica e matemática se resumem nas fórmulas dos coeficientes dos polinômios do spline. Portanto a Eq. (2.8) e Eq. (2.10) a (2.12) resumem bem o fundamento do Método de

Spline Cúbico, tendo em vista que para cada , fica inviável se calcular algebricamente como foi colocado anteriormente, por isso, na Seção 3.0 foi posto as Implementações Computacionais a fim de que se tenha eficiência na interpolação dos dados obtidos.

3.0 Implementação Computacional

Nesta seção serão apresentados os algoritmos utilizados na implementação dos métodos de Interpolação de Lagrange e Splines Cúbicos para o Problema A e Problema B apresentados nos itens anteriores. O Algoritmo 1 apresenta a função principal de cada algoritmo, enquanto que o algoritmo 2 é a subrotina e expressa o processo de cálculos necessários para a interpolação.

3.1 Interpolação de Lagrange

Problema A

___________________________________________________________________________ Algoritmo 1 Função Principal (Interpolação de Lagrange)___________________________

1: inteiro n, resultados, entrada, saída 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 saída 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: faça i

1,n,1

8: escreva (saida,*) x(i), y(i) 9: fim faça

10: xvalor

x(1)

11: enquanto (xvalor < = x(n)) faça

12: soma =

0

13: faça i

1,n,1

14: p

1

15: faça j

1,n,1

16: se (j≠i) então

17: p

p*(xvalor-x(j)) / (x(i)-x(j))

18: fim se 19: fim faça

 

20: soma

soma+ p*y(i)

21: fim faça 22: escreva (resultados,*) xvalor, soma

23: xvalor

xvalor+intervalo

24: fim enquanto 25: fim

Problema B

A implementação computacional para o método de Lagrange segue uma mesma estrutura de algoritmo, não mudando muito nas funções, podendo sim construir de forma diferente os algoritmos e ser funcional da mesma maneira, entretanto opta-se por seguir o mesmo padrão por método a fim de que se tenha uma padronização. Então o que se altera do Problema A para o Problema B são apenas os dados de entrada, que são arquivos no formato txt (texto). Por isso tanto o Algoritmo 1 como o Algoritmo 2 possuem a mesma estrutura.

___________________________________________________________________________ Algoritmo 1 Função Principal (Interpolação de Lagrange)____________________________ ___________________________________________________________________________ Algoritmo 2 Subrotina Lagrange (n, resultados, entrada, saida)________________________

3.1 Interpolação de Splines Cúbicos

Problema A

___________________________________________________________________________ Algoritmo 1 Função Principal (Interpolação de Splines Cúbicos)_______________________

1: real*8 h 2: inteiro n, entrada 3: caracter texto 4: abra entrada 5: leia (entrada,*) texto 6: leia (entrada,*) texto

7: leia (entrada,*) n

8: n

n - 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: faça i

0,n,1

8: escreva (saida,*) x(i), y(i) 9: fim faça

10: para i

1,n,1

11: para j

1,n,1

12: A(i,j) 0.0

13: fim para 14: fim para 15: para i

1, 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 i

1, 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 i 1,n,1

25: escreva (saida,*) A(i,j) 26: fim para 27: escreva (saida,*) ‘Matriz B’ 28: para i 1,n,1 29: escreva (saida,*) B(i) 30: fim para

31: para i

0, n-1, 1

32: g(i) 0.0 33: fim para 34: para k 1, n, 1 35: para i 0, n-2, 1

36: g(i)=B(i) 37: para j

1, 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: z

x(0)

43: t

0,1

44: para k

1, 100, 1

45: a k

(g(k)-g(k-1))/(6*h)

46: b k

g(k)/2

47: c k 48: d k

(g(k)-g(k-1))/h+ (2*h*g(k)+g(k-1)*h)/6 g(k)

49: escreva (saida,*) ‘Solução’ 50: enquanto (z<=x(k)) faça

51: sol

ak*(z-x(k))**3 + bk*(z-x(k))**2+ck*(z-x(k))+dk

52: escreva (saida,*) z,s

53: z

z+t

54: fim enquanto 55: fim para 56: feche saída 57: fim

______________________________________________________________________

Problema B

A implementação computacional para o método de Splines Cúbicos também segue a mesma estrutura de algoritmo, não mudando muito nas funções, assim como para o Método de Lagrange no item anterior. Então o que se altera do Problema A para o Problema B são apenas os dados de entrada, que são arquivos no formato txt (texto). Por isso tanto o Algoritmo 1 como o Algoritmo 2 possuem a mesma estrutura.

___________________________________________________________________________ Algoritmo 1 Função Principal (Interpolação de Splines Cúbicos) _______________________ ___________________________________________________________________________ Algoritmo 2 Subrotina Principal (entrada, n)________________________

4.0

Resultados Numéricos e Análises

Serão apresentados nesta seção apresentados os resultados obtidos a partir da implementação computacional utilizando o método de interpolação de Lagrange e Splines Cúbicas para o Problema A e Problema B descritos anteriormente. Tais

métodos têm por finalidade calcular os valores que não estão expostos na Tabela

  • 2.1 e Tabela 2.2, mas que pertencem aos mesmos intervalos impostos. As tabelas

estão agrupadas pelos métodos de Interpolação e em cada item estão os problemas em questão.

Foi posto abaixo junto às tabelas comparativas os gráficos que representam as aproximações de cada método, podendo assim ter melhor entendimento com qual método obteve melhores aproximações.

4.1 Problema A Tabela 4.1 - Comparativo das aproximações para o Problema A Interpolação de Lagrange
4.1 Problema A
Tabela 4.1 - Comparativo das aproximações para o
Problema A
Interpolação de
Lagrange
Interpolação de Spline
Cúbico
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

Na Tabela 4.1 estão dispostos os

valores de

x

e

f(x) das funções

interpoladoras em

questão.

As

lacunas em destaque são os

valores

referentes

as

valores

fornecidos

pelo problema com

o

objetivo de comparar os dois métodos a tais valores fornecidos. São os valores:

6º = 1000,7409;

10º = 1000,4882;

14º = 1000,0224;

18º = 999,3650.

Percebe-se então que o Método de Lagrange, para a aproximação dada, alcançou exatamente a aproximação exata dos pontos interpolados.

Em contra partida o Método de Spline Cúbico apresentou erro variando de 0,09 até 0,69. Observou-se com os valores de f(x) que o Método de Lagrange teve mudança mais rápida nos valores, enquanto os valores para Spline Cúbico apresentou mudança mais suave de ponto a ponto.

Gráfico 1Ilustração gráfica da interpolação dos dois Métodos para o conjunto de dados do Quadro 1.

Em contra partida o Método de Spline Cúbico apresentou erro variando de 0,09 até 0,69. Observou-se

Com a ilustração do Gráfico 1, nota-se como que o comportamento do Método de Lagrange é realmente suave, enquanto o de Spline Cúbico possui os nós destacados e os erros aproximando de zero. Entretanto entre os intervalos, em relação ao outro método, não se obteve valores considerados.

Tabela 4.2 - Comparativo dos erros entre os métodos. Problema A. Interpolação de Interpolação de Lagrange
Tabela 4.2 - Comparativo dos erros
entre os métodos. Problema A.
Interpolação de
Interpolação de
Lagrange
Spline Cúbico
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

Na Tabela 4.2 estão relacionados

os erros

de cada método para os

pontos fornecidos. Fica claro que o

Método

de

Lagrange

foi

mais

eficiente com erros bem menores do que o Método de Splines

Cúbicos.

4.2 Problema B Tabela 4.3 - Comparativo das aproximações para o Problema B Interpolação de Lagrange
4.2 Problema B
Tabela 4.3 - Comparativo das aproximações para o
Problema B
Interpolação de
Lagrange
Interpolação de Spline
Cúbico
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

Para o Problema

B

a forma

de

comparação

foi

análoga

ao

Problema

A.

Pegou-se

quatro

pontos

igualmente

distribuídos

e

analisa-se

que

houve

maior

discrepância

entre

os

métodos

neste caso.

É necessário

destacar

que

tal

problema foi retirado do Exemplo 14, do Capítulo 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 Método Splines Cúbico obteve melhor aproximação para o valor exato dado, com erro zero.

O Método de Lagrage em contra

partida

não

teve

sua precisão

distanciada do valor exato dado e

atingiu

erro

para o ponto

0,25 de

0,0615.

Gráfico 2Ilustração gráfica da interpolação dos dois métodos para o conjunto de dados do Quadro 2.

Gráfico 2 – Ilustração gráfica da interpolação dos dois métodos para o conjunto de dados do

Percebe-se pelo Gráfico 2 e a partir da Tabela 2.2, tanto o Método de Lagrange como o Método de Splines Cúbicos estão com os valores de F(X) muito próximos. Isto é, os dois obtiveram sucesso para a interpolação, primeiramente pelo fato de o erro ter sido baixo em relação ao valor dado pelo exemplo e posteriormente por notar comportamentos similares pelo gráfico.

Tabela 4.4 - Comparativo dos erros entre os Métodos. Problema B. Interpolação de Interpolação de Lagrange
Tabela 4.4 - Comparativo dos erros entre os
Métodos. Problema B.
Interpolação de
Interpolação de
Lagrange
Spline Cúbico
X
Erro
X
Erro
0,250
0,0615
0,250
0,0000

A

Tabela

4.4

exibe

os

erros

referentes ao ponto 0,25, exposto no exemplo do livro de Ruggiero e Lopes, 1988. Comprova a precisão do Método de Splines Cúbicos adquirindo erro de zero.

5.0 Considerações Finais

A interpolação polinomial de f(x) está bem relacionada com o conjunto de dados discretos que se tem em mãos.

Foi observado que o erro obtido através do Método de Spline Cúbicos para o Problema A se apresentou de forma acentuada em relação ao Método de Lagrange, o que ficou de fato comprovado no Gráfico 4.1. Notou-se que entre os intervalos dos nós a função permanecia praticamente constante até o limite do nó. Posteriormente

a função se comportava como “degrau”, decaindo abruptamente no mesmo nó.

Para o Problema B os dois métodos interpolaram os dados da Tabela 2.2 de forma positiva. O erro obtido pelo Método de Splines Cúbicos foi menor em comparação ao de Lagrange. Entretanto como visto no Gráfico 2, os dois métodos alcançaram de forma positiva a interpolação dos dados.

REFERÊNCIAS BIBLIOGRÁFICAS

ASANO, Claudio Hirofume;COLLI, Eduardo. Cálculo Numérico - Fundamentos e Aplicações. 2009.

CAMPOS, Frederico Ferreira. Algoritmos Numéricos. 2ª Ed. Belo Horizonte: LTC editora, 2007.

FREITAS, Sergio Roberto de. Métodos Numéricos. 2000.

RUGGIERO, Márcia A. Gomes; LOPES, Vera Lúcia da Rocha. Cálculo Numérico:

Aspectos Teóricos e Computacionais. 2ª Ed. São Paulo: Pearson editora. 1988.