objective: Optional objective function (used for selecting step length)
gradient: gradient
hessian: hessian (if NULL a numerical derivative is used)
control: optimization arguments (see details)
args: Optional list of arguments parsed to objective, gradient and hessian
...: additional arguments parsed to lower level functions
Details
control should be a list with one or more of the following components:
trace integer for which output is printed each 'trace'th iteration
iter.max number of iterations
stepsize: Step size (default 1)
nstepsize: Increase stepsize every nstepsize iteration (from stepsize to 1)
tol: Convergence criterion (gradient)
epsilon: threshold used in pseudo-inverse
backtrack: In each iteration reduce stepsize unless solution is improved according to criterion (gradient, armijo, curvature, wolfe)
Examples
# Objective function with gradient and hessian as attributesf <-function(z){ x <- z[1]; y <- z[2] val <- x^2+ x*y^2+ x + y
structure(val, gradient=c(2*x+y^2+1,2*y*x+1), hessian=rbind(c(2,2*y),c(2*y,2*x)))}NR(c(0,0),f)# Parsing arguments to the function andg <-function(x,y)(x*y+1)^2NR(0, gradient=g, args=list(y=2), control=list(trace=1,tol=1e-20))