A Taxonomy of Numerical Differentiation Methods
By: Pavel Komarov, Floris van Breugel, J. Nathan Kutz
Differentiation is a cornerstone of computing and data analysis in every discipline of science and engineering. Indeed, most fundamental physics laws are expressed as relationships between derivatives in space and time. However, derivatives are rarely directly measurable and must instead be computed, often from noisy, potentially corrupt data streams. There is a rich and broad literature of computational differentiation algorithms, but many impose extra constraints to work correctly, e.g. periodic boundary conditions, or are compromised in the presence of noise and corruption. It can therefore be challenging to select the method best-suited to any particular problem. Here, we review a broad range of numerical methods for calculating derivatives, present important contextual considerations and choice points, compare relative advantages, and provide basic theory for each algorithm in order to assist users with the mathematical underpinnings. This serves as a practical guide to help scientists and engineers match methods to application domains. We also provide an open-source Python package, PyNumDiff, which contains a broad suite of methods for differentiating noisy data.
Similar Papers
Analyzing Computational Approaches for Differential Equations: A Study of MATLAB, Mathematica, and Maple
Mathematical Software
Helps pick best computer tool for math problems.
The exterior derivative and the mean value equality in $\mathbb{R}^n$
Differential Geometry
Makes math work better for shapes and computers.
IDENT Review: Recent Advances in Identification of Differential Equations from Noisy Data
Numerical Analysis
Finds hidden math rules from watching things change.