Derivada Numérica
A derivada numérica permite estimar a derivada de uma função matemática usando os valores da função.
O método numérico se baseia na própria definição de derivada: o limite do quociente incremental da função quando o incremento tende a zero. Matematicamente é mais claro:
Se nessa expressão não tomamos o limite podemos obter uma estimativa numérica da derivada que dependerá do valor do incremento :
A expressão a direita é chamada de quociente diferencial de Newton.
Ao usá-la para calcular a derivada numericamente devemos ser cientes de que não é um cálculo exato. Existem duas fontes de erro nessa expressão, o erro de truncamento e o erro de arredondamento. Para estimar o erro de truncamento recorremos a Formula de Taylor:
Por tanto:
Se o for pequeno podemos dizer que o erro ao usar a quociente de Newton para calcular a derivada é proporcional a
. De maneira geral o erro cresce linearmente com . Por tanto devemos usar valores pequenos do incremento.
No entanto ao fazer a conta numérica temos precisão finita (o numero de casas dos números). Não é possível levar a expressão ao limite teórico
. Então pelo outro extremo aparece o segundo tipo de erro, o de arredondamento.
Quando é muito pequeno, ao fazer a diferença ente os dois valores da função,
podemos ter esse erro que vai ser relativamente maior quanto menor for , piorando a estimativa da derivada.
Isso coloca um limite inferior para o incremento e assim para a precisão da estimativa numérica da derivada.
Resumindo, por um lado temos o erro de truncamento e pelo outro o de arredondamento, a valor ótimo será uma solução de compromisso entre os dois tipos de erro.
Outro cálculo numérico da derivada pode ser feito baseado na declividade de dois pontos próximos, um antes e outro depois do ponto onde queremos avaliar a derivada: (x-h,f(x-h)) e (x+h,f(x+h)).
A declividade da linha definida por esses dois pontos é;
que é chamada de derivada centrada.
O erro desta estimativa é menor que na estimativa para frente (ou para atrás).
Existem formas de contornar o problema do valor ótimo de incremento podendo ir a valores menores dele e sim melhorar a estimativa da derivada numérica.
Programa
Implementar a derivada numérica em FORTRAN é apenas uma linha de código:
... Df = (f(x+h) - f(x))/h ...
Onde f(x) deve ser definida num bloco FUNCTION F(x) ... END FUNCTION F.
O resto depende de onde e para que queremos calcular a derivada.
Exemplos
Com a função f(x) abaixo, a modo de exemplo, a questão do compromisso entre o erro de truncamento
e o erro de arredondamento deve-se esclarecer.
A função é:
Com o método descrito acima vamos avaliar numericamente (para frente) a derivada num ponto qualquer, digamos x=3. A continuação figuras mostrando o resultado para vários valores de decrescentes num fator 2 partindo de 2. Ou seja {2, 1, 1/2, 1/4, ...}
A esquerda a derivada em x=3 numérica em função do utilizado.
O valor exato da derivada em é
Vemos que em volta de começa a convergir,
piorando a partir de .
Na figura a direita vemos ampliada a região de convergência, onde o valor de
parece ser o ótimo.
NOTA: os programa FORTRAN usado para o calculo da derivada esta em Real (ou Real*4, ou
seja ponto flutuante em representação de 32 bits).
Como seria em dupla precisão (Real*8)?