scipy.optimize.check_grad¶
- scipy.optimize.check_grad(func, grad, x0, *args)[source]¶
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.
Returns: 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.
See also
Notes
The step size used for the finite difference approximation is sqrt(numpy.finfo(float).eps), which is approximately 1.49e-08.
Examples
>>> def func(x): return x[0]**2 - 0.5 * x[1]**3 >>> def grad(x): return [2 * x[0], -1.5 * x[1]**2] >>> check_grad(func, grad, [1.5, -1.5]) 2.9802322387695312e-08