func_grad: function calculating the analytic gradients.
check_derivatives_tol: option determining when differences between the analytic gradient and its finite difference approximation are flagged as an error.
check_derivatives_print: option related to the amount of output. 'all' means that all comparisons are shown, 'errors' only shows comparisons that are flagged as an error, and 'none' shows the number of errors only.
func_grad_name: option to change the name of the gradient function that shows up in the output.
...: further arguments passed to the functions func and func_grad.
Returns
The return value contains a list with the analytic gradient, its finite difference approximation, the relative errors, and vector comparing the relative errors to the tolerance.
Examples
library('nloptr')# example with correct gradientf <-function(x, a) sum((x - a)^2)f_grad <-function(x, a)2*(x - a)check.derivatives(.x =1:10, func = f, func_grad = f_grad, check_derivatives_print ='none', a = runif(10))# example with incorrect gradientf_grad <-function(x, a)2*(x - a)+ c(0,0.1, rep(0,8))check.derivatives(.x =1:10, func = f, func_grad = f_grad, check_derivatives_print ='errors', a = runif(10))# example with incorrect gradient of vector-valued functiong <-function(x, a) c(sum(x - a), sum((x - a)^2))g_grad <-function(x, a){ rbind(rep(1, length(x))+ c(0,0.01, rep(0,8)),2*(x - a)+ c(0,0.1, rep(0,8)))}check.derivatives(.x =1:10, func = g, func_grad = g_grad, check_derivatives_print ='all', a = runif(10))