Você está na página 1de 20

Matemática

Cálculo Numérico

Marcelo Gomes Pereira


Roberto Hugo Bielschowsky
Interpolação polinomial

Aula

10
Apresentação
Nesta aula será utilizada a forma de Lagrange para encontrar o polinômio p tal que
p(x1 ) = y1 , p(x2 ) = y2 , p(x3 ) = y3 . . . , p(xn ) = yn dados os valores
x1 , x2 , x3 . . . , xn e y1 , y2 , y3 . . . , yn

Objetivos
Entender o conceito de interpolação.
1
Utilizar a forma de Lagrange para encontrar um polinômio
2 interpolador.

Aula 10 Cálculo Numérico 223


Introdução

I
magine a situação de um agricultor que descobriu algum minério, digamos ferro, em suas
terras. Antes de largar sua atividade de agricultura e se dedicar à mineração, ele deve
decidir se essa mudança de rumos valerá a pena. Um dos fatores que o ajudará a tomar
essa decisão é saber se a quantidade de ferro extraído será suficiente para cobrir os gastos
com a mineração e se dará mais lucros do que a agricultura. Ou seja, ele precisa ter uma idéia
de quanto minério há embaixo da terra antes de escavar toda a sua propriedade.

Uma tentativa de resolver esse problema é tirar pequenas amostras do terreno, medir
a concentração de minério nelas e estimar a quantidade de ferro no restante da propriedade.
Vamos imaginar que o agricultor separou uma faixa de terra de 1km, ao longo da qual
foram retiradas amostras a cada 250m. Os resultados das medições foram anotados na
seguinte tabela:
Tabela 1 – Valores das concentrações de minério encontradas em cada amostra.

Número da amostra Concentração encontrada (kg/m3)


0 0,5
1 0,8
2 0,3
3 1
4 0,7

A pergunta a ser respondida agora é: o que acontece com as concentrações de minério nos
250 metros que separam cada amostra? A interpolação nos ajuda a responder essa pergunta.

Interpolar uma função f (x) é encontrar uma aproximação sua por outra função g (x).
Uma vez encontrada essa aproximação, ela é usada no lugar de f (x).

No exemplo dado, das concentrações de minério de ferro, f (x) é a função que relaciona
distância (ou o número da amostra) e quantidade de minério. O problema é que para conhecer
o comportamento dessa função em todo o domínio, precisaríamos medir as concentrações de
minério por todo o quilômetro de terra que estamos estudando. Então, uma atitude razoável é
tentar descobrir uma aproximação para esse comportamento que nos ajude a tomar decisões
sobre os investimentos na extração do minério. Esta aula trata de algumas maneiras de
encontrar funções g (x) que aproximam f (x).

224 Aula 10 Cálculo Numérico


Primeiras aproximações
Até agora temos a seguinte situação: conhecemos alguns pontos do gráfico de f (x) e
queremos encontrar uma forma de preencher o restante do gráfico.

D
1

B
0.8
E

0.6
A

0.4
C

0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 1 – Os pontos A, B, C, D e E têm como coordenadas o número de cada amostra e o valor da concentração
de minério encontrado nela.

Cada aproximação feita leva em consideração algumas suposições sobre o comportamento


de f (x). A mais simples é supor que os valores não mudam entre uma amostra e outra. Nesse
caso, nossa aproximação g (x) tem o seguinte gráfico:

D
1

B
0.8
E

0.6
A

0.4
C

0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 2 – Gráfico da aproximação de f, constante por partes.

Aula 10 Cálculo Numérico 225


Outra aproximação pode ser obtida supondo-se que os valores das concentrações de
minério crescem ou decrescem de forma linear. Assim, temos o gráfico:

D
1

B
0.8
E

0.6

A
0.4

C
0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 3 – Gráfico da aproximação de f linear por partes.

Atividade 1

1 Expresse matematicamente as funções descritas nessa seção.

A concentração total de minério é a soma de todos os valores das


2 concentrações em cada local. Para encontrar uma aproximação desse
valor, devemos integrar uma função aproximação g (x). Calcule as
integrais das funções dessa seção e a diferença entre os valores obtidos.

226 Aula 10 Cálculo Numérico


Forma de Lagrange

A
s suposições feitas até agora têm as seguintes características: tornam as funções g (x)
descontínuas ou com derivadas descontínuas. Isso significa que estamos admitindo
que a concentração de minério de ferro, ou sua variação, pode variar bruscamente em
determinados locais.

E se supusermos que essa concentração varie de forma contínua e suave?

Você viu na Aula 10 (Funções Polinomiais) da disciplina Pré-Cálculo a resolução do


seguinte problema:

Sejam x1 , x2 . . . , xn+1 ∈ R, n + 1 pontos distintos de R, isto é,


xi != xj se i != j . Dados n+1 valores reais y1 , y2 . . . , yn+1 .
Obtenha um polinômio g de grau menor ou igual a n, satisfazendo
g (xi ) = yi , i = 1,
1, 2, . . . , n + 1 .

Nessa resolução foi demonstrado que o único polinômio g possível é dado por
y1 y2 yn+1
g(x) = p1 (x) + p2 (x) + . . . + p (x) , onde cada p é definido
p1 (x1 ) p2 (x2 ) pn+1 (xn+1 ) n+1 i

por pi (x) = (x − x1 )(x − x2 ) · · · (x − xi−1 )(x − xi+1 ) · · · (x − xn+1 ) . Essa maneira de

encontrar o polinômio g é chamada de forma de Lagrange para o polinômio interpolador.

Esses resultados podem ser usados para conseguir uma interpolação polinomial para o
caso da estimativa de concentração de minério. A vantagem em usá-los é conseguirmos uma
aproximação por uma função contínua com derivada contínua com um método fácil.

Vamos exemplificá-lo passo a passo:

Passo 1
No nosso caso faremos
x1 = 0, g(x1 ) = 0, 5; x2 = 1, g(x2 ) = 0, 8; x3 = 2, g(x3 ) = 0, 3;

x4 = 3, g(x4 ) = 1; x5 = 4, g(x5 ) = 0, 7.

Então temos n+1 = 5, o que nos diz que o polinômio g terá grau no máximo 4.

Passo 2
Precisamos encontrar os polinômios pi :
p1 (x) = (x − x2 )(x − x3 )(x − x4 )(x − x5 ) = (x − 1)(x − 2)(x − 3)(x − 4)
= 24 − 50x + 35x2 − 10x3 + x4 ;

Aula 10 Cálculo Numérico 227


p2 (x) = (x − x1 )(x − x3 )(x − x4 )(x − x5 ) = (x − 0)(x − 2)(x − 3)(x − 4)
= −24x + 26x2 − 9x3 + x4 ;

p3 (x) = (x − x1 )(x − x2 )(x − x4 )(x − x5 ) = (x − 0)(x − 1)(x − 3)(x − 4)


= −12x + 19x2 − 8x3 + x4 ;

p4 (x) = (x − x1 )(x − x2 )(x − x3 )(x − x5 ) = (x − 0)(x − 1)(x − 2)(x − 4)


= −8x + 14x2 − 7x3 + x4 ;

p5 (x) = (x − x1 )(x − x2 )(x − x3 )(x − x4 ) = (x − 0)(x − 1)(x − 2)(x − 3)


= −6x + 11x2 − 6x3 + x4 ;

Passo 3
Agora avaliamos cada polinômio em seu respectivo xi :
p1 (x1 ) = p1 (0) = 24;
p2 (x2 ) = p2 (1) = −6;

p3 (x3 ) = p3 (2) = 4;
p4 (x4 ) = p4 (3) = −6;

p5 (x5 ) = p5 (4) = 24.

Passo 4
Montamos o polinômio e fazemos as contas:
y1 y2 y3 y4 y5
g(x) = p1 (x) + p2 (x) + p3 (x) + p4 (x) + p (x)
p1 (x1 ) p2 (x2 ) p3 (x3 ) p4 (x4 ) p5 (x5 ) 5
0, 5 ! "
= 24 − 50x + 35x2 − 10x3 + x4
24
0, 8 ! "
+ −24x + 26x2 − 9x3 + x4
−6
0, 3 ! "
+ −12x + 19x2 − 8x3 + x4
4
1 ! "
+ −8x + 14x2 − 7x3 + x4
−6
0, 7 ! "
+ −6x + 11x2 − 6x3 + x4
24


= 0, 5 + 2, 4166667x − 3, 325x2 + 1, 3833333x3 − 0, 175x4

228 Aula 10 Cálculo Numérico


Pronto! Conseguimos o nosso polinômio interpolador, cujo gráfico vemos a seguir.

2.4
2.2
2
1.8
1.6
1.4
1.2
D
1
A B
0.8 E
0.6
0.4 C
0.2
0
0 1 2 3 4
-0.2
-0.4
f

Figura 4 – Gráfico da aproximação polinomial de f.

Atividade 2
Calcule a integral de 0 a 4 da nova aproximação e compare com os
1 valores obtidos na Atividade 1.

Use a forma de Lagrange para encontrar o polinômio interpolador para


2 os pontos (0,1), (1,3), (2,5) e (3,7). Que fato geométrico pode ser
deduzido a partir do polinômio encontrado?

Use a forma de Lagrange para encontrar o polinômio interpolador para


3 os pontos (0,1), (1,1) e (3,10).

Aula 10 Cálculo Numérico 229


1.

2.

3.

230 Aula 10 Cálculo Numérico


Encontrando o polinômio
interpolador com o Scilab
Na Aula 03 (Sistemas de equações lineares) você aprendeu a usar o Scilab para encontrar
um polinômio interpolador. Repetiremos o procedimento descrito lá para resolver o seguinte
exercício:

Exercício resolvido
Encontre um polinômio do terceiro grau, digamos p(x) = c1 + c2x + c3x2+ c4x3
1 e tal que p(–2) = 5; p(2) = 3; p(5) = –1; p(7) = –3.

Esboce um gráfico do polinômio, de forma a incluir os pontos dados explicitados


2 com alguma marca que o identifique.

Faça o mesmo no caso onde o polinômio p(x) = c1 + c2x + ··· + c10x9, de forma
3 a garantir p(1)=b1, ·····, p(15)=b15 , onde b = rand(15,1).

Repita o item anterior para interpolar 30 dados com um polinômio p(x), de forma
4 que p(1) = b1, ··· ,p(30) = b30, onde b = rand(30,1).

Solução

Veja que, nesse caso, ao impormos a condição dada para p(x), obtemos
1 o sistema linear abaixo



 c1 − 2c2 + 22 c3 − 23 c4 =5

 c + 2c
1 2 + 22 c3 + 23 c4 =3


 c1 + 5c2 + 52 c3 + 53 c4 = −1

 c + 7c + 72 c3 + 73 c4 = −3
1 2
, ou seja,
    
1 −2 4 −8 c1 5
    
 1 2 4 8  c2   3 
Ac = 



=
 


 1 5 25 125  c3   −1 
1 7 49 343 c4 −3 .

Aula 10 Cálculo Numérico 231


Com o comando linsolve (A,–b), obtemos os coeficientes do polinômio c:
− −> c = linsolve(A, –b)
c = 4.8888889
- 0.5825397
- 0.2222222
0.0206349

A expressão simbólica do polinômio pode ser obtida com


− −> p = poly (c,”x”,”coeff ”)
p = 4.8888889 – 0.5825397x – 0.2222222x2 + 0.0206349x3
Para obter o gráfico desejado, digitamos no prompt do Scilab:
− −> tt = -2:.01:7; // Vetor de abscissas discretizadas entre -2 e 7
− −> pp = c(1) + c(2)*tt + c(3)*tt.^2 + c(4)*tt.^3; // Correspondentes
valores em p(x)
− −> plot(tt,pp, –2,5,'*',2,3,'*',5,-1,'*',7,-3,'*') // Gráfico correspondente

-1

-2

-3 -2 -1 0 1 2 3 4 5 6 7

Pediremos ao Scilab b = rand(15,1). Analogamente ao que fizemos


3 antes, nossa incógnita é o vetor c ∈ℜ , formada pelos coeficientes
15

de p(x) = c1 + c2x +·······+ c15x14 e cada um dos 15 dados p(i) =


b(i), do problema gerará uma equação do tipo

c1 + c2k +·······+ c15k14 = b(k)

232 Aula 10 Cálculo Numérico


Portanto, a matriz do sistema será a invertível matriz de Vandermonde
(como foi visto na Aula 03):
 
1 1 12 ··· 113 114
 
 1 2 22 ··· 213 214 
 
 1 3 32 ··· 313 314 
 
V ander(x) =  . . .. .. .. .. 
 .. .. . . . . 
 
 
 1 14 142 · · · 1413 1414 
1 15 152 · · · 1513 1514

Certifique-se que você pode obter o polinômio p(x) com os seguintes


comandos:

--> n =15; b = rand(n,1); x=(1:n)’; // Obtendo b e x


--> a=[ones(6,1), x, x.^2, x.^3, x.^4, x.^5, x.^6, x.^7, x.^8, x.^9, x.^10,
x.^11, x.^12, x.^13, x.^14, x.^15 ]; // Achando a matriz de Vandermonde
--> c = linsolve(a, –b); // Resolvendo a*c=b para obter os coefs. de p(x)
--> teste=norm (a*c-b) // Testando a solução de a*c=b
Deu teste = 0.00000026, o que é aceitável. Uma outra maneira de checar a
solução, nesse caso, é conferindo o gráfico de p(x), junto com os pontos dados
para serem interpolados, o que igualmente nos confirmaria o bom resultado, pois:

10

-10

-20

-30

-40

-50

-60

-70 0 2 4 6 8 10 12 14 16

Figura 5 – Gráfico de p(x)

Contudo, note que p(x) chega a valer menos de -50 em vários pontos entre
1 e 2. Se nosso objetivo principal for obter uma função que interpola os valores
prescritos em x = 1,···,15, para os demais números reais entre 1 e 15, essa
interpolação polinomial p(x) não seria uma opção razoável, uma vez que os
valores prescritos p(i) = b(i) , em cada x(i), estão todos entre 0 e 1.

Aula 10 Cálculo Numérico 233


Já ao fazer o mesmo para n = 30, obtivemos teste = 241351.8, o que
4 nos indica fracasso na obtenção do polinômio interpolador. O gráfico
de p(t), para t entre 0 e 30, nesse caso, nos dá:

6 e + 005

5 e + 005

4 e + 005

3 e + 005

2 e + 005

1 e + 005

0 e + 005

-1 e + 005

-2 e + 005

-3 e + 005 0 5 10 15 20 25 30

Figura 6 – Gráfico de p(x).

Veja que essa tentativa de obter p(x) para o qual p(i) = b(i), não funcionou
nesse caso. Por exemplo, obtivemos p(20) < –100, enquanto b20 = 0.4798 e
p(30) = –196992, enquanto b30 = 0.5949.

Observação 1 – Podemos encarar de dois ângulos a instabilidade numérica observada:

De um lado, veja que apesar da matriz A = Vander(x) ser invertível e a resolução do sistema
não ter fracassado, o teste realizado nos indicou que o sistema A*c = b deu um resultado
falso, o que pode ser associado a erros de arredondamento e truncamento.

Olhando de um outro ponto de vista, podemos pensar que polinômios de grau alto não são
bons interpoladores, numericamente falando. Veja que no item 3, obtivemos um polinômio que
atendia razoavelmente às condições para ele prescritas, mas que era um “mal interpolador”
em alguns pontos do domínio.

Se no caso 4 tivéssemos usado 50 dígitos significativos, em vez de 16, teríamos conseguido


um polinômio que satisfizesse com excelente aproximação as condições dadas, nos pontos
1,···,30. Em particular, veja a seguir o gráfico para t entre 27 e 30, obtido no Maple, com 50
dígitos significativos, de um tal polinômio interpolador, dado b = rand(30,1).

234 Aula 10 Cálculo Numérico


27 27.5 28 28.5 29 29.5 30
0

-100000

-200000

-300000

-400000

-500000

-600000

-700000

Figura 7 – Gráfico de p(x).

Em especial, entre 29 e 30, há valores onde p(x) < – 70000, e que estariam interpolando
valores que prescrevemos satisfazendo 0 < p(i) < 1, para i = 1,···,30. Isso não é nem um
pouco razoável.

Estudo do erro na interpolação

A
lgo que deve ficar bem claro é que, como foi dito na definição, interpolar uma função
f(x) é encontrar uma aproximação sua por outra função g(x). Ou seja, quando
encontramos o polinômio interpolador, estamos aproximando uma função, que muitas
vezes desconhecemos, por uma função polinomial. Nesse processo, o aparecimento do erro
é natural e deve sempre ser levado em consideração.

O teorema a seguir trata dessa questão.

Teorema
Sejam x0 < x1 < x2 < . . . < xn , (n + 1) pontos.
Seja f(x) com derivadas até ordem (n+1) para todo x pertencente ao intervalo
[x0, xn].
Seja Pn (x) o polinômio interpolador de f(x) nos pontos x0 , x1 , x2 , . . . , xn .
Então, em qualquer ponto x pertencente ao intervalo [x0, xn], o erro é dado por
f (n+1) (ξx )
En (x) = f (x) − pn (x) = (x − x0 )(x − x1 )(x − x2 ) · · · (x − xn ) ,
(n + 1)!
onde ξx ∈ (x0 , xn ).

Aula 10 Cálculo Numérico 235


Demonstração
Para sermos didáticos, faremos a demonstração para o caso n=2. O caso geral
segue o mesmo raciocínio.

Como f (xi ) = p2 (xi ) , segue que E2 (xi ) = 0 . Então a fórmula do erro é válida
para xi = 0, 1, 2.

Para cada x ∈ (x0 , x2 ), x "= xi, definimos, no intervalo [x0, x 2] a função auxiliar
H(t) = E2 (x)G(t) − E2 (t)G(x) , onde G(x) = (x − x0 )(x − x1 )(x − x2 ) .
Note que estamos fixando x e a variável da função agora é t.

Por hipótese, f(t) é derivável até a terceira ordem. O polinômio de grau 2 P2(t)
também é diferençável até a terceira ordem. Então E2 (t) = f (t) − p2 (t) possui
derivadas até ordem 3.

Também é diferençável até a terceira ordem a função G(t), que é um polinômio


de grau 3.

Logo, H(t) = E2 (x)G(t) − E2 (t)G(x) possui derivadas até ordem 3.

Agora, se fizermos t= xi, então

H(xi ) = E2 (x)G(xi ) − E2 (xi )G(x) = E2 × 0 − 0 × G(x) . Isso significa que


x0 , x1 , x2 são zeros de H(t).

Da mesma forma, t=x também é um zero de H(t), pois

H(x) = E2 (x)G(x) − E2 (x)G(x) = 0 .


Assim, H(t) possui pelo menos quatro zeros no intervalo [x0, x 2]. Então, sua
primeira derivada, H'(t), possui pelo menos três zeros no intervalo (x0, x2), o
que implica em H''(t) possuir pelo menos dois e H'''(t) possuir pelo menos
um zero no intervalo (x0, x 2).

Calculando a terceira derivada de H(t), obtemos


H !!! (t) = E2!!! (x)G(t) − E2!!! (t)G(x) .

Mas, G(t) é um polinômio de grau 3, então sua terceira derivada é G'''(t)=3!.


Além disso, E2!!! (t) = f !!! (t) − p!!!
2
(t) = f !!! (t), pois como p2(t) é um polinômio
de grau 2, sua terceira derivada é zero.
Desse modo,
H !!! (t) = 3!E2 (x) − f !!! (t)G(x)
.
Sendo x um zero da terceira derivada de H(t), segue que
ξ
H !!! (ξx ) = 3!E2 (x) − f !!! (ξx )G(x) = 0
f !!! (ξx )G(x)
⇒ E2 (x) =
3!

236 Aula 10 Cálculo Numérico


A fórmula para o erro dada pelo Teorema tem uso limitado na prática. As situações em
que conheceremos informações sobre f (n+1) (x) serão raras. Apesar disso, o Teorema tem
importância teórica e é usado para estimativas do erro.

Atividade 3

Seja f (x) = ex + x − 1 na tabela a seguir. Obtenha f (0,7) por interpolação linear e faça
uma análise do erro cometido.
Tabela 1 – Valores de x e f (x) = ex + x − 1 .

x 0 0,5 1 1,5 2

f(x) 0 1,1487 2,7183 4,9811 8,3890

Autoavaliação
Escreva com suas palavras o que é interpolação e descreva os métodos vistos
na aula para efetuar a interpolação polinomial.

Aula 10 Cálculo Numérico 237


Resumo
Nesta aula você aprendeu a encontrar polinômios interpoladores usando a forma
de Lagrange.

Exercícios propostos

1) Use a forma de Lagrange para encontrar o polinômio de grau menor do que ou igual a 2
que interpola os dados da tabela:

X -1 0 2

f(x) 4 1 -1

2) Dada a tabela a seguir, encontre x tal que f (x) = 2 .

x 0,5 0,6 0,7 0,8 0,9 1,0

f(x) 1,65 1,82 2,01 2,23 2,46 2,72

3) Encontre o polinômio interpolador dos dados da tabela:

x 1 1,01 1,02 1,03 1,04 1,05

f(x) 1 1,005 1,01 1,0149 1,0198 1,0247



4) Observe que os valores dados são de f (x) = x . Use o polinômio encontrado para
calcular f (1,025) e analise o erro cometido.

Referências
FRANCO, Neide Bertoldi. Cálculo numérico. São Paulo: Pearson Prentice Hall, 2006.

RUGGIERO, Márcia A. Gomes. LOPES, Vera Lúcia da Rocha. Cálculo numérico: aspectos
teóricos e computacionais. São Paulo: Makron Books, 1996.

238 Aula 10 Cálculo Numérico


Respostas dos exercícios propostos
2 2 7
1) 3
x − x+1
3

2) 0,6947368

3)
28.490, 681 − 183.800, 68x + 270.465, 17x2 − 263.487, 5x3 + 128.333, 33x4 − 25.000x5

Aula 10 Cálculo Numérico 239

Você também pode gostar