Método de Newton - Diferenças Divididas
Supondo que \(P_n(x)\) é o \(n\) polinômio de Lagrange, que atende a função \(f\) nos valores distintos \(x_1, x_2, \ldots, x_n\). Como esse polinômio é único, há representações algébricas alternativas que são úteis em certas situações. A diferença dividida de \(f\) relacionado com os pontos \(x_1, x_2, \ldots, x_n\) pode ser expresso na forma:
\[P_n(x) = a_0 + a_1(x-x_1) + a_2(x-x_1)(x-x_2) + \ldots + a_n(x-x_1)\cdot \cdot \cdot (x-x_{n})\]Para determinar a primeira constante \(a_0\), \(P_n(x)\) pode ser escrita na forma:
\[a_0 = P_n(x_1) = f(x_1) \]Similarmente, quando \(P_n(x)\) é avaliado no ponto \(x_2\), o termo não-zero de \(P_n(x_2)\) é:
\[f(x_1)+a_1(x-x_1) = P_n(x_2) = f(x_2) \]Portanto:
\[a_1 = \frac{f(x_2)-f(x_1) }{x_2-x_1} \]A 0-ésima diferença dividida da função \(f\) em relação a \(x_i\), denotada por \(f[x_i]\) é simplesmente o valor de \(f\) no ponto \(x_i\):
\[f[x_i] = f(x_i)\]As outras diferenças divididas são definidas recursivamente. A primeira diferença dividida de \(f\) em relação a \(x_i\) e \(x_{i+1}\), denotada por \(f[x_i, x_{x+1}]\) é definida por:
\[f[x_i, x_{x+1}] = \frac{f[x_{i+1}]-f[x_{i}]}{x_{i+1}-x_{i}} \]A segunda diferença dividida, representada por \(f[x_i, x_{x+1}, x_{x+2}]\) é definida por:
\[f[x_i, x_{x+1}, x_{x+2}] = \frac{f[x_{i+1}, x_{i+2}]-f[x_i,x_{i+1}]}{x_{i+2}-x_{i}} \]Similarmente, após a \((k-1)\)-ésima diferença dividida:
\[f[x_i, x_{x+1},\ldots,x_{i+k-1}, x_{i+k}] = \frac{ f[x_{i+1}, x_{i+2},\dots, x_{i+k}]-f[x_{i}, x_{i+1},\dots, x_{i+k-1}]} {x_{i+k}-x_{i}} \]Esse processo termina com uma N-ésima diferença dividida:
\[f[x_0, x_{1},\ldots, x_{n}] = \frac{f[x_{1}, x_{2},\dots, x_{n}]-f[x_{0},x_{1},\dots, x_{n-1}]} {x_{n}-x_{0}} \]Para facilitar a visualização das diferenças divididas é utilizada a tabela:
| \(x\) | \(f(x)\) | 1ª Dif. Dividida (\(\triangledown^1_{y_i}\)) | 2ª Dif. Dividida (\(\triangledown^2_{y_i}\)) | 3ª Dif. Dividida (\(\triangledown^3_{y_i}\)) |
|---|---|---|---|---|
| \(x_1\) | \(f[x_1]\) | \(f[x_1, x_2] = \frac{f[x_2]-f[x_1]}{x_2-x_1}\) | \(f[x_1, x_2, x_3] = \frac{f[x_2, x_3]-f[x_1, x_2]}{x_3-x_1}\) | \(f[x_1, x_2, x_3,x_4] = \frac{f[x_2, x_3,x_4]-f[x_1, x_2,x_3]}{x_4-x_1}\) |
| \(x_2\) | \(f[x_2]\) | \(f[x_2, x_3] = \frac{f[x_3]-f[x_2]}{x_3-x_2}\) | \(f[x_2, x_3, x_4] = \frac{f[x_3, x_4]-f[x_2, x_3]}{x_4-x_2}\) | |
| \(x_3\) | \(f[x_3]\) | \(f[x_3, x_4] = \frac{f[x_4]-f[x_3]}{x_4-x_3}\) | ||
| \(x_4\) | \(f[x_4]\) |
Exemplo de cálculo da Tabela de diferenças divididas
Para elucidar a construção da Tabela de diferenças divididas através de um exemplo. Veja os pontos:
| x | \( -1\) | \( 1.5\) | \( 2.5\) | \( 4\) |
|---|---|---|---|---|
| y | \(-3\) | \(-1.75\) | \(12.75\) | \(87\) |
Desenvolvendo a tabela:
| \(x\) | \(f(x)\) | 1ª Dif. Dividida (\(\triangledown^1_{y_i}\)) | 2ª Dif. Dividida (\(\triangledown^2_{y_i}\)) | 3ª Dif. Dividida (\(\triangledown^3_{y_i}\)) |
|---|---|---|---|---|
| \(-1\) | \(-3\) | \(\frac{-1.75-(-3)}{1.5-(-1)} = 0.5\) | \(\frac{14.5-0.5}{2.5-(-1)} = 4\) | \(\frac{14-4}{4-(-1)} = 2\) |
| \(1.5\) | \(-1.75\) | \(\frac{12.75-(-1.75)}{2.5-1.5} = 14.5\) | \(\frac{49.5-14.5}{4-1.5} = 14\) | |
| \(2.5\) | \(12.75\) | \(\frac{87-12.75}{4-2.5} = 49.5\) | ||
| \(4\) | \(87\) |
E o resultado:
| \(x\) | \(f(x)\) | 1ª Dif. Dividida (\(\triangledown^1_{y_i}\)) | 2ª Dif. Dividida (\(\triangledown^2_{y_i}\)) | 3ª Dif. Dividida (\(\triangledown^3_{y_i}\)) |
|---|---|---|---|---|
| \(-1\) | \(-3\) | \(0.5\) | \(4\) | \(2\) |
| \(1.5\) | \(-1.75\) | \(14.5\) | \(14\) | |
| \(2.5\) | \(12.75\) | \(49.5\) | ||
| \(4\) | \(87\) |
Programação em HP PPL
O programa que implementa a tabela de diferença divididas em HP PPL é apresentado a seguir:
EXPORT div_dividida()
BEGIN
PRINT();
LOCAL matriz;
LOCAL tamanho, i, j;
M1 := [[-1, 1.5, 2.5, 4], [-3, -1.75, 12.75, 87]]; //Pontos em M1
matriz := transpose(M1);
tamanho := SIZE(matriz);
M2 := transpose(row(M1, 2));
FOR i FROM 2 TO tamanho(1) DO
FOR j FROM 1 TO tamanho(1)-i+1 DO
M2(j, i):=(M2(j+1, i-1)-M2(j, i-1))/(matriz( j+i-1, 1)-matriz( j, 1));
END;
END;
M2 := addcol(M2, col(matriz, 1), 1);
MSGBOX("Resultado em M2:");
EDITMAT(M2);
END;
Atividades
Determine a tabela de diferenças divididas dos pontos das questões:
-
\[ \begin{matrix} \textbf{x} &-2 &-0.5 &0.5 &1 \\ \hline \textbf{y} &12 &-1.5 &-3 &-6 \end{matrix} \]
-
\[ \begin{matrix} \textbf{x} &-2 &0 &0.5 &1 &2 \\ \hline \textbf{y} &-21 &-1 &-2.25 &-3 &3 \end{matrix} \]
-
\[ \begin{matrix} \textbf{x} &-2 &-1.5 &-0.5 &0.5 &1 &1.5 \\ \hline \textbf{y} &35 &8.375 &-2.125 &-0.625 &-1 &0.875 \end{matrix} \]