Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão Python

6.1 Interpolação polinomial


Interpolação polinomial é um caso particular do problema geral de interpolação, no qual a família de funções é constituída de polinômios. A escolha de polinômios como funções interpolantes é natural por diversos motivos, entre eles: se p é um polinômio de grau n, o valor p(x) para um x real é calculado através de n + 1 operações de multiplicação e n + 1 operações de adição. Para tanto, pode-se usar o algoritmo de Horner1 . Dado um polinômio p de grau n da forma

p(x) = k=0na kxk, (6.4)

é possível reescrevê-lo como a sequência de operações dada por

a0 + x a1 + x a2 + x + x an-1 + xan . (6.5)

Também, derivadas e primitivas de polinômios são também polinômios cuja relação algébrica com o original é simples. Além disso, o teorema da aproximação de Weierstrass estabelece que qualquer função contínua definida em um intervalo fechado pode ser aproximada uniformemente por um polinômio tão bem quanto se queira.

Teorema 6.1.1 (Weierstrass). Seja f uma função contínua definida no intervalo fechado [a,b] e seja δ um número positivo. Então existe um polinômio p, tal que para todo x [a,b],

|f(x) - p(x)| < δ. (6.6)

Observe que para o problema ser bem determinado, é necessário restringirmos o grau dos polinômios. Dado um conjunto de n pontos a serem interpolados {(xi,yi)}i=1n, xixj para ij, a família de polinômios F = n-1 deve ser escolhida, onde:

n-1 := p : xp(x) = k=0n-1a kxk; {a 0,a1,,an-1} , (6.7)

isto é, a família dos polinômios reais de grau menor ou igual a n - 1.

O Exemplo 6.0.1 discute um dos casos mais simples de interpolação polinomial, o qual consiste em interpolar uma reta por dois pontos. Neste caso, a família de funções consiste de polinômios de grau 1. Se buscarmos interpolar uma parábola pelos dois pontos dados, o problema fica subdeterminado, pois existem infinitas parábolas que passam por dois pontos dados. Além disso, se buscarmos interpolar uma reta por três pontos dados, o problema estaria sobredeterminado e poderia não ter solução se os pontos não fossem colineares. Veja o Exercício ??.

Assim, dado um conjunto com n pontos {(xi,yi)}i=1n, chamamos de polinômio interpolador o polinômio de grau menor ou igual a n - 1 que os interpola.


PIC

Figura 6.2: Polinômio interpolador do conjunto de pontos {(0, 1), (1, 6), (2, 5), (3,-8)}. Veja o Exemplo 6.1.1.


Exemplo 6.1.1. Encontre o polinômio interpolador do conjunto de pontos {(0, 1), (1, 6), (2, 5), (3,-8)}.

Solução. Como o conjunto consiste de 4 pontos, o polinômio interpolador deve ser da forma:

p(x) = a0 + a1x + a2x2 + a 3x3. (6.8)

As condições de interpolação são p(xi) = yi, i = 0, 1, 2, 3, o que nos leva ao sistema linear:

a0 = 1 a0 + a1 + a2 + a3 = 6 a0 + 2a1 + 4a2 + 8a3 = 5 a0 + 3a1 + 9a2 + 27a3 = - 8 (6.9)

cuja solução é a0 = 1, a1 = 6, a2 = 0 e a3 = -1. Portanto, o polinômio interpolador é p(x) = 1 + 6x - x3. Veja Figura 6.2.

Em Python, podemos encontrar o polinômio interpolador e esboçar seu gráfico com os seguintes comandos:

>>> xi = np.array([0,1,2,3], dtype=’double’)  
>>> yi = np.array([1,6,5,-8], dtype=’double’)  
>>> A = np.array([xi**3,xi**2,xi**1,xi**0]).transpose()  
>>> a = np.linalg.inv(A).dot(yi);a  
array([ -1,  0.,  6,  1. ])  
>>> xx = np.linspace(-0.5,3.25);  
>>> plt.plot(xi,yi,’ro’,xx,np.polyval(a,xx),’b-’)  
>>> plt.grid();plt.show()

Teorema 6.1.2. Seja {(xi,yi)}i=1n um conjunto de n pares ordenados de números reais tais que xixj se ij, então existe um único polinômio p(x) de grau n - 1 ou inferior que passa por todos os pontos dados, isto é, p(xi) = yi,i = 1,,n.

Demonstração. Observe que o problema de encontrar os coeficientes a0, a1,…, an-1 do polinômio
p(x) = a0 + a1x + a2x2 + a n-1xn-1 = k=0n-1a kxk (6.10)

tal que p(xi) = yi é equivalente a resolver o sistema linear com n equações e n incógnitas dado por

a0 + a1x1 + a1x12 + + a n-1x1n-1 = y 1, a0 + a1x2 + a2x22 + + a n-1x2n-1 = y 2, a0 + a1xn + a2xn2 + + a n-1xnn-1 = y n. (6.11)

O qual pode ser escrito na forma matricial como

1 x1 x12 x 1n-1 1 x2 x22 x 2n-1 1 x3 x32 x 3n-1 1 xn xn2 x nn-1 a0 a1 a2 a n-1 = y1 y2 y3 y n (6.12)

A matriz envolvida é uma matriz de Vandermonde2 de ordem n cujo determinante é dado pelo produtório duplo

1i<jn xj - xi (6.13)

É fácil ver que se as abscissas são diferentes dois a dois, então o determinante é não nulo. Disto decorre que a matriz envolvida é inversível e, portanto, o sistema possui uma solução que é única.

Esta abordagem direta que usamos no Exemplo 6.1.1 e na demonstração do Teorema 6.1.2 se mostra ineficiente quando o número de pontos é grande e quando existe grande variação nas abscissas. Neste caso, a matriz de Vandermonde é mal condicionada (ver [6]), o que acarreta um aumento dos erros de arredondamento na solução do sistema.

Uma maneira de resolver este problema é escrever o polinômio em uma base que produza um sistema bem condicionado.

Exercícios resolvidos


Esta seção carece de exercícios resolvidos. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.

ER 6.1.1. Mostre que:

  • Existem infinitas parábolas que interpolam dois pontos dados {(x1,y1), (x2,y2)}, com x1x2.
  • Não existe reta que interpola os pontos {(1, 1), (2, 2,1), (3, 3)}.
  • Não existe parábola de equação y = a0 + a1x + a2x2 que interpola dois pontos dados {(x1,y1), (x1,y2)}, com y1y2. Mas, existem infinitas parábolas de equação x = a0 + a1y + a2y2 que interpolam estes pontos.

Solução.
  • Uma parábola de equação y = a1 + a2x + a3x2 que interpola os pontos deve satisfazer o sistema:
    a1 + a2x1 + a3x12 = y 1 a1 + a2x2 + a3x22 = y 2 (6.14)

    Sem perda de generalidade, para cada a3 dado, temos:

    a1 + a2x1 = y1 - a3x12 a1 + a2x2 = y2 - a3x22 , (6.15)

    o qual tem solução única, pois x1x2. Ou seja, para cada a3 dado, existem a1,a2 tais que a parábola de equação y = a1 + a2x + a3x2 interpola os pontos dados.

  • Certamente não existem retas de equação x = a que interpolam os pontos dados. Consideremos então retas de equação y = a1 + a2x. Para uma tal reta interpolar os pontos dados é necessário que:
    a1 + a2 = 1 a1 + 2a2 = 2,1 a1 + 3a2 = 3 , (6.16)

    o qual é um sistema impossível.

  • Não existe uma parábola de equação y = a1 + a2x + a3x2 que interpole os pontos dados, pois tal equação determina uma função de x em y. Agora, para mostrar que existem infinitas parábolas de equação x = a1 + a2y + a3y2 que interpolam os pontos dados, basta seguir um raciocínio análogo ao do item a), trocando x por y e y por x.

Exercícios


Esta seção carece de exercícios. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.

E 6.1.1. Encontre o polinômio interpolador para o conjunto de pontos {(-2,-47), (0,-3), (1, 4), (2, 41)}. Então, faça um gráfico com os pontos e o polinômio interpolador encontrado.

Resposta. p(x) = -3 + 2x + 5x3.

E 6.1.2. Encontre o polinômio interpolador para o conjunto de pontos {(-1, 1,25), (0,5, 0,5), (1, 1,25), (1,25, 1,8125)}.

Resposta. p(x) = 0,25 + x2.

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 15/5/2019 às 15:24:50.

Informe erros ou edite você mesmo!