Check the correctness of a gradient function by comparing it against a (forward) finite-difference approximation of the gradient.

Parameters: func : callable func(x0, *args) Function whose derivative is to be checked. grad : callable grad(x0, *args) Gradient of func. x0 : ndarray Points to check grad against forward difference approximation of grad using func. args : *args, optional Extra arguments passed to func and grad. epsilon : float, optional Step size used for the finite difference approximation. It defaults to sqrt(numpy.finfo(float).eps), which is approximately 1.49e-08. err : float The square root of the sum of squares (i.e. the 2-norm) of the difference between grad(x0, *args) and the finite difference approximation of grad using func at the points x0.

approx_fprime

Examples

>>> def func(x):
...     return x[0]**2 - 0.5 * x[1]**3