• Nenhum resultado encontrado

Polinômio de Newton com Diferenças Divididas

No documento Cálculo Numérico (páginas 129-135)

Teste de alinhamento

Exercício 4. (Interpolação de Lagrange) Utilizando-se um número finito de parcelas da série de potências da função exponencial ex, foi possível construir a tabela abaixo

4.3 Polinômio de Newton com Diferenças Divididas

Analisando o exercício apresentado no final da seção anterior, podemos averiguar que não seria uma tarefa nada fácil conseguir reaproveitar os cálculos efetuados com um polinômio interpolador de Lagrange de grau n para exibir uma outra aproximação da função utilizando-se um polinômio interpolador de grau n + 1. Além disto, o custo computacional do cálculo do valor numérico do polinômio interpolador de Lagrange é elevado porque todos os polinômios da base do espaço vetorial Pn possuem o mesmo

grau (n).

Com o intuito de diminuir o esforço computacional referente ao cálculo do valor numérico do polinômio interpolador e de produzir um esquema recursivo para a geração de polinômios interpoladores de grau 0 (polinômio constante) até grau n, uma nova base do espaço Pn será considerada:

B = {1, (x - xò), (x - x0)(x - x1), (x - xò)(x- x1)(x - x2), ..., (x - xò)(x - x1)...(x - xn-1)}.

Observação: Utilizando indução finita, não é difícil mostrar que os polinômios da base B são linearmente independentes, isto é,

dü + d1(x - xb) + d2(x - xb)(x - x1) + ... + dn(x - x0)(x -x1)...(x - xn-1) = 0, " x e R,

se, e somente se, di = 0 , " i, 0 £ i £ n.

Para isto, basta observar que se x = x0, então d0 = 0, pois todas as parcelas acima, a

indução). Note que o fator (x - xk) está presente em todas as parcelas a partir da parcela k + 1, Assim, se x = xk então dk(xk - xo)(xk - x1)...(xk - xk) = 0. Como os pontos de

interpolação são distintos dois a dois, segue-se que dk = 0.

O polinômio interpolador com diferenças divididas de grau n é dado por

pn(x) = do + d1(x - xo) + d2(x - xo)(x - x1) + ... + dn(x - xo)(x - xx)...(x - xn-1).

Cada coeficiente da combinação linear anterior, di, é chamado de diferença dividida de

ordem i. De acordo com a definição do polinômio interpolador, tem-se que Pn(xo) = f(xo) do = f(xo); Pn(x1) = fix) fix) = f(xo) + d1(x1 - xo) di = [ fx) - /(xo)]/(x1 - xo); Pn(x2) = f(x2) f(x2) = /(xo) + d1(x2 - xo) + d2(x2 - xo)(x2 - xX) 1

(

x2

-

x o

)

d2 = { f

(

x2

)-

f

(

xo

)

x 2

-

x 1 f

(

x1

)-

f

(

xo

) (

x2_xo

)

} x1

-

xo

(

x2

-

x1

)

Somando e subtraindo f(x1) no numerador da primeira parcela entre chaves e depois

colocando em evidência o valor [ f(x1) - f(xo)]/(x2 - x1), obtém-se

d2 = 1

(

x2

-

xo

)

{ f

(

x2

)

_ f

(

x1

)

x2

-

x1 f

(

x 1

)-

f

(

x o

)

[ x 2_ x o_ 1 ] x2

-

x1 x1_ xo d2 = 1 (x2_ xo) { f

(

x2

)-

f

(

x1

)

x2_ x1 f

(

x 1

)-

f

(

xo

)

} x1_ xo

Dos casos analisados anteriormente, podemos definir o seguinte operador de diferenças divididas:

(o) Ordem zero: /[w] = f(w), para todo w edom{ f }(domínio da função /).

Observação: a diferença dividida de ordem zero depende de apenas um argumento (ponto w) e coincide com o valor da função no ponto.

f[w2]_ f[w1]

(1) Ordem 1 (2 argumentos): f[W1,W2] = , " W1 edom{ f }, " W2

(

W2_W 1

)

edom{ f }.

12o

(2) Ordem 2 (3 argumentos): f[w1,w2, w3] =

i c {1, 2, 3}.

f[w2 ,w3] — f[w1,w2]

(

w3

W1) wi Cdom{ f },

Recursivamente, definimos o operador de diferenças divididas de ordem n:

f

[

W2 ,... , Wn + 1

] —

f

[

W1 ,... ,Wn

]

f[W1,W2, .Wn, Wn+1] =

(

Wn+1

W1

)

argumentos.

o qual depende de n + 1

Observação: O numerador do operador de diferenças divididas de ordem n é uma diferença entre dois operadores de ordem n - 1 e o denominador do operador de ordem n é a diferença entre os extremos dos argumentos deste operador, mais precisamente, a diferença entre o extremo superior dos argumentos e o extremo inferior dos argumentos.

Com esta notação, tem-se que d2 = f[x0, x1, x2] = f

[

x

1 ,x 2

]—

f

[

x0 ,x 1

]

(

x2

xo)

Vamos mostrar que vale a seguinte propriedade geral:

di = f[x0, x1, x2, ., xi] =

(

xi— x0

)

1 £ i £ n.

Teorema 2. (1a propriedade do operador de diferenças divididas) Considere n + 1

pontos distintos dois a dois. Utilizando a notação apresentada anteriormente, tem-se que /[xo, x1, x2, ., x] = f[xs(0), xs(1), xs(2), ., xs(i)], 1 £ i £ n,

onde s: {0, 1, 2, i} — {0, 1, 2, i} é uma função bijetora ou uma permutação. Isto equivale a dizer que a ordem dos argumentos não altera o valor do operador de diferenças divididas.

Demonstração: Considere as seguintes bases do espaço vetorial Pi:

B = {1, (x - xo), (x - xo)(x - xx), (x - xo)(x - x1)(x - x2), ., (x - xo)(x - xx)...(x - xm)} e

B

s = {1, (x - xC(0)), (x - xC(0))(x - xC(i)), (x - xC(0))(x - xC(1))(x - xC(2)), .,

(x - xs(0))(x - xs(i))...(x - xs(i-1))}.

Escrevendo os polinômios interpoladores de grau i, em relação a cada uma das duas bases, obtemos:

p,(x) = do + di(x - xo) + d2(x - xo)(x - xi) + .. + d,(x - xo)(x - xi)...(x - x^);

Pis(x) = Do + Di(x - xso)) + Di(x - xs(o))(x - xs(i)) +...+ D,(x - xs(o))(x - xC(n)...(x - x^-i));

onde di e Di são as diferenças divididas de ordem i com relação a cada uma das bases B

e Bs, respectivamente.

Como o polinômio interpolador é único (Teorema 1, Seção 4.i), então o coeficiente de xi deve ser o mesmo nas duas representações dos polinômios anteriores. Note que o coeficiente de xi é igual a di, na primeira representação, e é igual a Di, na segunda

representação. Portanto, de acordo com a notação utilizada anteriormente,

f[xo, xi, x2, x,] = d, = D, = f[xs(o), xs(i), xs(2), xO(í)l, " i, 1 £ i £ n.

Observação: O seguinte resultado será útil na demonstração do próximo teorema: “O coeficiente de xm no polinômio (x - xo)(x - xi)...(x - xm) é dado por - (xo + xi + ... + xm).” A demonstração deste resultado pode ser feita por indução finita (Verifique!).

O professor Tadashi Yokoyama, do Departamento de Matemática da Unesp - Rio Claro, substituindo o professor Bezerra, em uma aula de Cálculo Numérico, foi quem demonstrou para a minha turma de graduação em Matemática (turma de i986) o teorema que será enunciado a seguir. Sou muito grato a todos os meus professores que, com talento para ensinar, souberam transmitir não apenas conhecimento mas, também, amor pela profissão. Profissão que ainda vem sendo exercida pelo professor Tadashi, conforme me informou a Maria Luiza Furlan Cardoso, Supervisora Técnica de Seção Técnica de Desenvolvimento e Administração de Recursos Humanos do IGCE - Campus de Rio Claro.

Teorema 3. (2a propriedade do operador de diferenças divididas) Considere n + i

pontos distintos dois a dois. A diferença dividida de ordem i é dada por:

di = f[xo, xi, x2, ., xi] =

f

[

xi,... ,xi

]

- f

[

xo,... ,xi_i

]

(

xi-xo

)

i £ i £ n.

Demonstração: Considere as seguintes bases do espaço vetorial Pi:

B = {i, (x - xo), (x - xo)(x - xi), (x - xo)(x - xi)(x - x2), ., (x - xo)(x - xi)...(x - xi-i)}

e

Bs = {i, (x - xs(o)), (x - xs(o))(x - xs(i)), (x - xs(o))(x - xc(i))(x - xc(2)), .

(x - xs(o))(x - xs(1))...(x - xs(i-i))},

em que a permutação é definida como s (k) = i - k, para todo k, o £ k £ i. Desta forma,

i22

B

s = {1, (x - xi), (x - xi)(x - x-i), (x - xi)(x - x-i)(x - x-2) (x - xi)(x - x-i)...(x - x1)}.

Escrevendo os polinômios interpoladores de grau i, em relação a cada uma das duas bases, obtemos:

Pi(x) = do + d1(x - xo) + d2(x - xo)(x - x1) + ... + d,(x -xo)(x - x1)...(x - xn);

pis(x) = Do + D1(x - xi) + D2(x - xi)(x - x-i) + ... + Di(x - x,)(x - x-i)...(x - x1);

onde di e Di são as diferenças divididas de ordem i com relação a cada uma das bases B

e Bs, respectivamente.

Como o polinômio interpolador é único (Teorema 1, Seção 4.1), então pi(x) - pis(x) = o

(polinômio nulo), para todo número real x. Desta forma, o coeficiente de xi-1 no polinômio nulo deve ser igual a zero. De acordo com as definições dos polinômios pi(x)

e pis(x), as únicas parcelas destes polinômios que contribuirão para a análise do

coeficiente de xi-1 no polinômio nulo são:

di-1(x - xo)(x - x1)...(x - xi-2); di(x - xo)(x - x1)...(x - xf_1);

Di-1(x - x,)(x - x-i)...(x - xz); Di(x - x,)(x - x,-)...(x - x1).

Portanto o coeficiente de xi-1 no polinômio nulo é dado por (veja a observação anterior ao enunciado deste teorema): di-1 - di(xo + x1 + . + xi-1) - [Di-1 - Di(x1 + x2 + . + xi)].

Como este valor deve ser zero e, pelo Teorema 2, di = Di, então:

di-1 - di(xo + x1 + ... + xi-1) - [Di-1 - Di(x1 + x2 + ... + x,-)] = o

di-1 - Di-1 + Di[x1 + x2 + ... + x, - (xo + x1 + ... + x,-1)] = o

di-1 - Di-1 + D,(x, - xo) = o D, = [1/(x, - xo)] {Dm - d,-1}.

De acordo com o Teorema 2, a ordem dos argumentos não altera o valor do operador de diferenças divididas. Assim,

f[xo, x1, x2, ., xi] =

f [x,,...,x1 ]— f [xo,...,x,—1 ]

(

x,—xo

)

f [ x1,... ,x, ]— f [ xo,... ,x,—1 ]

(

xi — xo

)

Observação: A recursividade do polinômio de Newton é evidenciada no seguinte resultado: Sejam B e B' bases dos espaços vetoriais Pn e Pn+1, respectivamente, onde

B = {1, (x - xo), (x - xo)(x - x1), (x - xo)(x - x1)(x - x2), .(x - xo)(x - x1)...(x - xn-1)};

B' = {1, (x - xo), (x - xo)(x - x1), (x - xo)(x - x1)(x - x2), ., (x - xo)(x - x1)...(x - xn-1),

(x - xo)(x - x1)...(x - xn-1)(x - xn)}.

pn(x) = d0 + d1(x - xü) + d2(x - xò)(x - xx) + ... + dn(x - x0)(x - x4)...(x - xn-1).

O polinômio interpolador de grau n + 1, escrito na base B', é dado por

Pn + 1(x) = Do + D1(x - xo) + D2(x - xo)(x - x1) + .+ Dn+1(x - xo)(x - x1)...(x - xn-1)(x - xn),

onde Di = di, 0 £ i £ n. Basta observar que o polinômio, de grau n, P(x) = D0 +

D1(x - x0) + D2(x - x0)(x - x1) +.+ Dn(x - x0)(x - x1)...(x - xn-1) satisfaz, para cada i, 0 £

i £ n, P(xi) = pn+1(xi) = f(xi). Como o polinômio interpolador é único, segue-se que P(x) =

Pn(x). Portanto, Pn+1(x) = Pn(x) + f[x0, x1, x2, xn, xn+1]N(x) • □

Exemplo 8. (Tabela de Diferenças Divididas) Vamos construir a tabela de diferenças divididas associada ao problema dado no Exercício 4 (Seção 4.2). A partir da função tabelada:

x 0.5 0.6 0.8 0.9 1.1

f(x) 0.46128 0.53515 0.65767 0.70624 0.78006

serão construídas, recursivamente, as diferenças divididas de ordem 0 até a diferença dividida de ordem 4. Note que a tabela contém 5 pontos: x0 = 0.5; x1 = 0.6; x2 = 0.8;

x3 = 0.9 e x4 = 1.1. Os valores das diferenças divididas (DD) serão exibidos em colunas,

como segue: x f(x): DD0 DD1 DD2 DD3 DD4 x0 = 0.5 f[x0] = 0.46128 f[x0, x4] f[x0, xb xz] f[x0, x1, x2, xà] f[x0, x1, x2, x3, x4] xi = 0.6 f[x1] = 0.53515 f[x1, x2] f[x1, x2, xs] f[x1, x2, x3, x4] x2 = 0.8 flfo] = 0.65767 f[x2, xa] f[x2, x3, x4] x3 = 0.9 /[xsl = 0.70624 f[x3, xj x4 = 1.1 f[x4] = 0.78006

Os cálculos das diferenças divididas de ordem k (0, 1, 2, 3 e 4) serão efetuados de

f

[

w2 > ••• ,Wk+1

] —

f

[

w1’ ••• ,Wk

]

acordo com a fórmula: f[w1,w2, ..., wk, wk+i] =

(

wk+1

w1

)

Portanto, a tabela é dada por

124

f(x): DD0 DD1 DD2 DD3 DD4 x0 = 0.5 f[x0] = 0.46128 0.7387 x1 = 0.6 f[x1] = 0.53515 x2 = 0.8 f[x2] = 0.65767 x3 = 0.9 f[x3] = 0.70624 x4 = 1.1 f[x4] = 0.78006 - 0.4203... 0.12555... 0.6126 - 0.423 0.06866... 0.4857 - 0.3886... 0.3691 - 0.00666666675

Observação: Dados os valores de diferenças divididas de uma coluna k - 1, os valores das diferenças divididas da coluna k são obtidos da seguinte forma: agrupa-se, de dois em dois, os valores da coluna k - 1 (como mostra a seta azul na tabela anterior). Digamos que o primeiro valor do agrupamento seja v1 e o segundo v2 (na coluna k - 1, v1 está acima de v2). Assim, o numerador da respectiva razão que está na coluna k é a diferença v2 - v1. O denominador desta razão é a diferença entre os extremos do respectivo operador de diferenças divididas. Por exemplo, se a diferença dividida for f[x2, x3, x4] (que é de ordem 2, pois tem 3 argumentos) então v1 = 0.4857 e v2 = 0.3691.

Portanto, f[x2, x3, x4] = (0.3691 - 0.4857)/(x4 - x2) = 0.1166/0.3 = - 0.38866... Se a

diferença dividida for f[x0, x1, x2, x3] (que é de ordem 3, pois tem 4 argumentos) então v1

= - 0.4203... e v2 = - 0.423. Portanto, f[x0, x1, x2, x3] = (- 0.423 + 0.4203...)/(x3 - x0) =

- 0.002666.../0.4 = - 0.00666666675. ■

No documento Cálculo Numérico (páginas 129-135)