Finite Differencing

Finite Differencing is a classical numerical method for estimating derivatives. It is provided in ad_trait as a baseline and for functions where AD types might be impractical.

How it Works

The derivative is approximated using the formula: $$f'(x) \approx \frac{f(x + h) - f(x)}{h}$$ where $h$ is a very small value.

Accuracy vs. Precision

Finite differencing is an approximation and is subject to both truncation error (making $h$ too large) and round-off error (making $h$ too small). It is generally much less precise than true automatic differentiation.

Usage Example

#![allow(unused)]
fn main() {
use ad_trait::FiniteDifferencing;

// evaluate with FiniteDifferencing
let engine = FunctionEngine::new(func.clone(), func, FiniteDifferencing::new());
}