| | | | |

5.3 Diferenças Divididas de Newton

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Dado um conjunto de pontos {(xi,yi)}i=1n, o Método das Diferenças Divididas de Newton4949endnote: 49Isaac Newton, 1642 - 1727, matemático, físico, astrônomo, teólogo e autor inglês. Fonte: Wikipédia: Isaac Newton. busca determinar o polinômio interpolador da forma

p(x) =a1+a2(xx1) (5.28)
+a3(xx1)(xx2)
++an(xx1)(xxn1).

Por uma abordagem direta, temos que p(xi)=yi, i=1,2,,n, o que nos leva ao seguinte sistema triangular inferior

a1=y1, (5.29)
a1+a2(x2x1)=y2,
a1+a2(x3x1)+a3(x3x1)(x3x2)=y3,
a1+a2(xnx1)++an(xnx1)(xnxn1)=yn.

Entretanto, existe uma forma mais eficiente de se determinar os coeficientes ai, i=1,2,,n.

Denotemos por p[xj,xj+1,,xk](x) o polinômio interpolador do conjunto de pontos {(xi,yi)}i=jk. Então, temos a seguinte recursão

p[xj]=yj, (5.30)

para j=1,2,,n e

p[xj,xj+1,,xk](x) (5.31)
=(xxj)p[xj+1,,xk](x)(xxk)p[xj,,xk1](x)xkxj,

para todo nk>j1.

De fato, (5.30) é trivial. Agora, denotando por r(x) o lado direito da equação (5.31), vemos que r(x) tem grau menor ou igual a kj, o mesmo de p[xj,xj+1,,xk](x). Desta forma, para mostrar (5.31), basta verificarmos que r(x) interpola o conjunto de pontos {(xi,yi)}i=jk. O que de fato ocorre

r(xj)=(xjxk)yjxkxj=yj, (5.32a)
r(xl)=(xlxj)yl(xlxk)ylxkxj=yl,
l=j+1,,k1, (5.32b)
r(xk)=(xkxj)ykxkxj=yk. (5.32c)

Logo, pela unicidade do polinômio interpolador5050endnote: 50Consulte o Exercício 5.3.5, temos demonstrado (5.31).

Observando que o polinômio interpolador p(x) é igual a p[x1,,xn](x), temos que (5.30)-(5.31) nos fornece uma forma de computar p(x) de forma recursiva. Além disso, observemos que p[xj,,xk1](x) e p[xj,,xk] diferem por um polinômio de grau kj com zeros xj, xj+1, …, xk1. Logo, temos

p[xj,,xk](x)=p[xj,,xk1](x) (5.33)
+f[xj,,xk](xxj)(xxk1),

onde f[xj,,xk] são coeficientes a determinar. Ainda, tomando p[xi]=f[xi], temos

p[xj,,xk](x)=f[xj]+f[xj,xj+1](xxj) (5.34)
+f[xj,,xk](xxj)(xxk1).

Por fim, a recursão (5.30)-(5.31) nos mostra que as Diferenças Divididas Newton podem ser obtidas de

f[xj]=yj,j=1,2,,n, (5.35a)
f[xj,,xk]=f[xj+1,,xk]f[xj,,xk1]xkxj, (5.35b)

para todo nk>j1. E, temos o polinômio interpolador do conjunto de pontos {(xi,yi)}i=1n dado por

p[x1,,xn](x)=f[x1]+f[x1,x2](xx1) (5.36)
++f[x1,,xn](xx1)(xxn).
Observação 5.3.1.

A recursão (5.3) pode ser adequadamente organizada em uma matriz da forma

[𝒇[𝒙𝟏]00f[x2]𝒇[𝒙𝟏,𝒙𝟐]0f[x3]f[x2,x3]0f[xn]f[xn1,xn]𝒇[𝒙𝟏,,𝒙𝒏]] (5.37)

onde os elementos da diagonal correspondem aos coeficientes do polinômio interpolador na forma (5.36).

Exemplo 5.3.1.

Consideramos o problema de encontrar o polinômio interpolador do conjunto de pontos {(1,1),(0,1),(1,1/2)}. Usando o Método das Diferenças Divididas de Newton, escrevemos o polinômio na forma

p(x)=f[x1]+f[x1,x2](xx1)+f[x1,x2,x3](xx1)(xx2). (5.38)

Então, computamos seus coeficientes pela recursão (5.3). Ou seja, temos

f[x1]=1, (5.39a)
f[x2]=1, (5.39b)
f[x3]=1/2. (5.39c)

Daí, segue

f[x1,x2]=f[x2]f[x1]x2x1=2 (5.40a)
f[x2,x3]=f[x3]f[x2]x3x2=12 (5.40b)

e, por fim, que

f[x1,x2,x3]=f[x2,x3]f[x1,x2]x3x1 (5.41a)
=1.25. (5.41b)

Logo, o polinômio interpolador é

p(x)=0.5+2(x+1)1.25(x+1)(x1), (5.42)

ou, equivalentemente,

p(x)=1.25x2+0.75x+1. (5.43)
1import numpy as np
2
3def interpDDF(x, y):
4  n = x.size
5  M = np.empty((n,n))
6  M[:,0] = y
7  for j in range(1,n):
8    for i in range(j,n):
9      M[i,j] = (M[i,j-1] - M[i-1,j-1]) \
10          / (x[i]-x[i-j])
11  return np.diag(M)
12
13def poliDDF(x, p, xpts):
14  n = p.size
15  pval = p[0]
16  aux = 1.
17  for i in range(1,n):
18    aux *= (x-xpts[i-1])
19    pval += p[i]*aux
20  return pval
21
22xpts = np.array([-1., 0, 1])
23ypts = np.array([-1., 1, 1/2])
24p = interpDDF(xpts, ypts)
25print(poliDDF(xpts, p, xpts))

5.3.1 Exercícios

E. 5.3.1.

Use o Método das Diferenças Divididas de Newton para obter o polinômio interpolador do conjunto de pontos {(1,1),(0.5,1),(1,2)}.

Resposta.

1,6¯x2+1.5x+2.16¯

E. 5.3.2.

Use o Método das Diferenças Divididas de Newton para obter o polinômio interpolador do conjunto de pontos {(1,1),(0,1),(1,1/2),(2,1)}.

Resposta.

0.583¯x31.25x2+0.16¯x+1.

E. 5.3.3.

Use o Método das Diferenças Divididas de Newton para obter o polinômio interpolador do conjunto de pontos {(1,1),(0,1),(1,1/2),(2,1),(2.5,1)}.

Resposta.

0.26190476x41.10714286x30.98809524x20.35714286x1.

E. 5.3.4.

Use o método das diferenças divididas de Newton para encontrar o polinômio interpolador que aproxima a função f(x)=ex pelos pontos x1=0, x2=1, x3=1.5 e x4=2.

Resposta.

p(x)=0.54x30.15x2+1.3x+1.

Análise Numérica

E. 5.3.5.

Dado um conjunto de pontos distintos {(xi,yi)}i=1n, mostre que é único o polinômio interpolador do conjunto.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!