Efficient approximation of first, second and third derivatives of a function.


Updated Tue, 05 Jan 2016 10:46:43 +0000

View License

[ first, second, third, ymat ] = derivative ( fn, x )

Quickndirty estimate of first, second and third derivatives of a function at a specified point or vector of points.
Input should be n x 1 vector of points (centres) to evaluate at (for any number of points n).
first, second, third and fourth derivatives will follow suit as n x 1 vector outputs.
ymat output is a n x 7 matrix of samples zigzagging around centres (optional).

Internal delta specifies the precision multiplying zigzag offsets:
[0 -0.5 +0.5 -1.0 +1.0 -1.5 +1.5]

For efficiency samples are calculated once + multiple symmetric derivatives.
For the same reason the local sampling matrix ymat is made available.
Reducing the precision (delta) below that given is dangerous/unstable.

x = [-5:.1:5]';
[first, second, third, value] = derivative(@sin,x);
figure(1); plot(x,[first, second, third, value(:,1)]);grid
[first, second, third, value] = derivative(@normpdf,x);
figure(2); plot(x,[first, second, third, value(:,1)]);grid

David M W Powers Jan 2016

Cite As

David Powers (2023). derivative (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R10
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

added of gaussian and first three derivatives