Numerical derivative of analytic function
by Daniel Ennis
02 Aug 2006
(Updated 16 Aug 2006)
Calculate the numerical derivative of an analytic function with different methods.
|
Watch this File
|
| File Information |
| Description |
% This function returns the numerical derivative of an analytic function.
% Of special note, is the incorporation of the "complex step-derivative"
% approach which offers greatly improved derivative accuracy compared to
% forward and central difference approximations. This is especially germain
% when accuracy at the level of machine precision is a concern.
%
% This function was motivated by: http://www.biomedicalcomputationreview.org authored by Michael Sherman
% -The function with no inputs generates the example used in the above link.
% -For more information see the following citation which is also found in the above link:
% --Martins JR, Sturdza P, and Alonso JJ
% http://portal.acm.org/citation.cfm?id=838250.838251
% The complex-step derivative approximation
% ACM Trans. Math. Softw. 29(3) (2003)
%
% SYNTAX: dfdx=deriv(f,x,h,method)
%
% INPUTS: f - A function a handle (eg f=@(x) sin(x))
% x - Interval over which f(x) is defined
% h - Derivative step-size
% method - Numerical methods used to compute derivative
% 'forward2' - Two point forward difference
% 'forward3' - Three point forward difference
% 'central2' - Two point central difference
% 'central4' - Four point central difference
% 'complex' - Complex step-derivative approximation
%
% OUTPUTS: dfdx - Numerical estimate of the derivative of f(x)
%
% DBE 2006.07.31 |
| Acknowledgements |
This file inspired
Adaptive Robust Numerical Differentiation.
|
| MATLAB release |
MATLAB 7.1.0 (R14SP3)
|
| Other requirements |
Version must support function handles. |
|
Tags for This File
|
| Everyone's Tags |
|
| Tags I've Applied |
|
| Add New Tags |
Please login to tag files.
|
| Comments and Ratings (2) |
| 13 Jun 2009 |
Juliette Salexa
|
|
|
| 21 May 2007 |
Sunil Arya
|
|
|
| Updates |
| 16 Aug 2006 |
Minor fix of the "description." |
|
Contact us