NR function

Newton-Raphson method

Newton-Raphson method

NR( start, objective = NULL, gradient = NULL, hessian = NULL, control, args = NULL, ... )

Arguments

  • start: Starting value
  • 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 attributes f <- 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 and g <- function(x,y) (x*y+1)^2 NR(0, gradient=g, args=list(y=2), control=list(trace=1,tol=1e-20))
  • Maintainer: Klaus K. Holst
  • License: GPL-3
  • Last published: 2025-01-12