R: Numerical Gradients and Jacobians

nl.grad {nloptr} | R Documentation

## Numerical Gradients and Jacobians

### Description

Provides numerical gradients and jacobians.

### Usage

    nl.grad(x0, fn, heps = .Machine$double.eps^(1/3), ...)

### Arguments

`x0` | point as a vector where the gradient is to be calculated.
`fn` | scalar function of one or several variables.
`heps` | step size to be used.
`...` | additional arguments passed to the function.

### Details

Both functions apply the “central difference formula” with step size as recommended in the literature.

### Value

`grad` returns the gradient as a vector; `jacobian` returns the Jacobian as a matrix of usual dimensions.

### Author(s)

Hans W. Borchers

### Examples

      fn1 <- function(x) sum(x^2)
      nl.grad(seq(0, 1, by = 0.2), fn1)
      ## [1] 0.0  0.4  0.8  1.2  1.6  2.0
      nl.grad(rep(1, 5), fn1)
      ## [1] 2  2  2  2  2

      fn2 <- function(x) c(sin(x), cos(x))
      x <- (0:1)*2*pi
      nl.jacobian(x, fn2)
      ##      [,1] [,2]
      ## [1,]    1    0
      ## [2,]    0    1
      ## [3,]    0    0
      ## [4,]    0    0

[Package nloptr version 1.2.2.2 Index]