Learn R Programming

pracma (version 0.7.5)

numderiv: Richardson's Numerical Derivative

Description

Richardson's method applied to the computation of the numerical derivative.

Usage

numderiv(f, x0, maxiter = 16, h = 1, ..., accuracy = .Machine$double.eps)

numdiff(f, x, maxiter = 16, h = 1, ..., accuracy = .Machine$double.eps)

Arguments

f
function to be differentiated.
x0, x
point(s) at which the derivative is to be computed.
maxiter
maximum number of iterations.
h
starting step size, should be the default h=1.
accuracy
accuracy with which the function f can be computed.
...
variables to be passed to function f.

Value

  • Numeric scalar or vector of approximated derivatives.

Details

Returns the derivative of f at x0 resp. at all points of the vector x.

References

Mathews, J. H., and K. D. Fink (1999). Numerical Methods Using Matlab. Third Edition, Prentice Hall.

See Also

fderiv, complexstep

Examples

Run this code
# Differentiate an anti-derivative function
f <- function(x) sin(x)*sqrt(1+sin(x))
F <- function(x)
        integrate(f, 0, x, rel.tol = 1e-12)$value
x0 <- 1
dF0 <- numderiv(F, x0, accuracy = 6.5e-15)  #=> 1.141882942715462
f(x0)                                       #   1.141882942715464 true value
# fderiv(F, x0)                             #   1.141882942704476
# numDeriv::grad(F, x0)                     #   1.141882942705797

# Compare over a whole period
x <- seq(0, 2*pi, length.out = 11)
max(abs(numdiff(sin, x) - cos(x)))          #=> 1.61e-15
# max(abs(numDeriv::grad(sin, x) - cos(x))) #   7.70e-12

Run the code above in your browser using DataLab