Diferenças finitas
Fórmulas numéricas para derivadas
Vamos lá?
Esta é mais uma aula onde os polinômios de Taylor fazem a festa. Desta vez eles vão ajudar a construir fórmulas numéricas para aproximar derivadas de uma função.
- 1
- 2
Podemos afirmar que...
O principal uso para fórmula numéricas para derivadas está na resolução de problemas de valor de contorno (PVC), pelo método de diferenças finitas. Nesse método, as derivadas que aparecem na equação diferencial são substituídas por aproximações computadas por diferenças entre os valores de função avaliados sobre uma malha. Essas fórmulas de diferenças são construídas com base no polinômio de Taylor.
Seja $y:\R\rightarrow\R$ uma função com $(n+1)$ derivadas contínuas. O Teorema de Taylor diz que \begin{equation}\label{taylor} y(x) = T_n(x;x_0) + {y^{(n+1)} (\xi)\over (n+1)!} (x-x_0)^{n+1} \end{equation} onde $\xi$ está entre $x$ e $x_0,$ e $T_n(x;x)$ é o polinômio de Taylor de grau $n$ para $y,$ em torno de $x_0$, dado por $$ T_n(x;x_0) = y(x)_0 + y'(x_0)(x-x_0) + {y''(x_0)\over 2!}(x-x_0)^2 + \cdots + {y^{(n)}(x_0)\over n!}(x-x_0)^n. $$
As aproximações que vamos construir só podem depender de valores da função $y$ sobre uma malha regular de espaçamento $h.$ O porquê desta restrição ficará mais claro na próxima aula, quando estudarmos o método de diferenças finitas.
Vamos começar buscando uma aproximação para $y'(x),$ usando os valores de $y$ em $x$ e em pontos vizinhos da malha, ou seja $x+h$ ou $x-h.$ Com efeito, de \eqref{taylor} com $n=1,$ \begin{align*} y(x+h) &= T_1(x+h;x) + {y'' (\xi)\over 2!} h^2\\ & = y(x) + y'(x)h + {y'' (\xi)\over 2!} h^2. \end{align*} Disto, tiramos que $$ y'(x) = {y(x+h) - y(x)\over h} - {y'' (\xi)\over 2!} h. $$ Como $\xi$ não é conhecido e queremos uma aproximação apenas em termos dos valores de função, chegamos à primeira fórmula de diferenças finitas para primeira derivada, conhecida como diferença avançada, dada por $$ y'(x) \approx {y(x+h) - y(x)\over h}. $$ Se $x_j$ representam pontos da malha e $y_j$ representam aproximações para $y(x_j),$ então a fórmula acima fica $$ y'(x_j) \approx {y_{j+1}-y_j\over h}. $$
De forma análoga, podíamos ter escrito $y(x-h)$ em termos do Taylor centrado em $x,$ \begin{align*} y(x-h) &= T_1(x-h;x) + {y'' (\xi)\over 2!} h^2\\ & = y(x) - y'(x)h + {y'' (\xi)\over 2!} h^2. \end{align*} Disto, tiramos que $$ y'(x) = {y(x) - y(x-h)\over h} + {y'' (\xi)\over 2!} h, $$ de onde obtemos a fórmula de diferença atrasada, dada por $$ y'(x) \approx {y(x) - y(x-h)\over h}, $$ ou $$ y'(x_j) \approx {y_j-y_{j-1}\over h}. $$
Ambas as fórmulas são de primeira ordem, uma vez que o termo que foi negligenciado era proporcional a $h.$ Para obter uma aproximação de ordem mais alta precisamos mesclar informação de mais pontos em simultâneo. Por exemplo, tomando o polinômio de Taylor de grau 2, temos \begin{align} y(x+h) & = y(x) + y'(x)h + {y'' (x)\over 2!} h^2 + {y''' (\xi_+)\over 3!} h^3 \label{eq2} \\[2mm] y(x-h) & = y(x) - y'(x)h + {y'' (x)\over 2!} h^2 - {y''' (\xi_-)\over 3!} h^3 \label{eq3} \end{align} Ao computar subtrair \eqref{eq3} de \eqref{eq2}, chegamos a $$ y(x+h)-y(x-h) = y'(x)(2h)+[y'''(\xi_+) + y'''(\xi_-)]{h^3\over 3!}, $$ ou $$ y'(x) = {y(x+h)-y(x-h)\over 2h} - [y'''(\xi_+) + y'''(\xi_-)]{h^2\over 3}. $$ Desta forma, chegamos à fórmula de diferença centradas $$ y'(x) \approx {y(x+h)-y(x-h)\over 2h}. $$ Diferentemente das anteriores, esta é uma aproximação de segunda ordem, uma vez que o termos negligenciado é proporcional a $h^2.$
Uma aproximação de segunda ordem para a derivada segunda surge quando $y(x+h)$ é somado a $y(x-h)$ e consideramos o polinômio de Taylor de grau $3.$ A fórmula de diferenças obtida é $$ y''(x) \approx {y(x+h)-2y(x)+y(x-h)\over h^2}. $$
Em todas as aproximações acima, como o termo negligenciado sempre é proporcional a uma potência maior ou igual a 1 de $h,$ a medida que $h$ é reduzido, reduz-se o erro de aproximação. No caso da diferença avançada (ou atrasada) temos inclusive que $$ \lim_{h\rightarrow 0} {y(x+h)-y(x)\over h} = y'(x), $$ o que não passa da própria definição de derivada. O mesmo ocorre para as demais fórmulas de diferenças. Entretanto, quando a aproximação é computada em precisão finita não observamos esse decréscimo ilimitado do erro. Esse fenômeno foi analisado em detalhes em outra aula deste curso.
Na próxima aula, veremos como essas aproximações para derivadas permitirão a construção do método de diferenças finitas e a resolução de problemas de valor de contorno.
1. Se $y(x) = e^x,$ mostre que a aproximação de diferença centrada para $y'(x)$ é ${e^x\sinh(h)\over h}.$
2. Usando os dados da tabela a seguir, estime $f'(0.6)$ e $f''(0.6).$ $$ \begin{array}{c|ccccc} x & 0.20 & 0.40 & 0.60 & 0.80 & 1.00\\ \hline f(x) & 7.11& 10.21& 20.98& 32.91 & 1.12 \end{array} $$
3. Deduza a fórmula $$ y'(x) \approx \frac{y(x+3h)-y(x-h)}{4h}, $$ e estime o erro de aproximação ao usá-la.