Learn R Programming

lava (version 1.8.0)

NR: Newton-Raphson method

Description

Newton-Raphson method

Usage

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

Run this code
# 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))


Run the code above in your browser using DataLab