genGradient {SpatioTemporal} | R Documentation

## Compute Finite Difference Gradient and Hessians.

### Description

Computes finite difference gradient and/or hessian. `genGradient` function does forward, backward or central differences, the `genHessian` function uses only central differences.

### Usage

    genGradient(x, func, h = 0.001, diff.type = 0)

    genHessian(x, func, h = 0.001)

### Arguments

`x` | Point at which to compute the gradient or hessian.
`func` | function that takes only `x` as an input argument. Use `function(x){my.func(x,other.input)}` to create a temporary function, see the example.
`h` | Step length for the finite difference.
`diff.type` | Type of finite difference, `diff.type>0` gives forward differences, `diff.type=0` gives central differences, and `diff.type<0` gives backward differences.

### Value

gradient vector or Hessian matrix.

### Author(s)

Johan Lindstrom

### See Also

Other numerical derivatives: `loglikeSTGrad`

### Examples

    #create a two variable function
    f.test <- function(x){sin(x[1])*cos(x[2])}

    #compute the gradient using forward difference
    genGradient(c(.5,.5), f.test, diff.type=1)
    #and central difference
    genGradient(c(.5,.5), f.test, diff.type=0)
    #compared to the true value
    c(cos(.5)*cos(.5),-sin(.5)*sin(.5))

    #Compute the Hessian
    genHessian(c(.5,.5), f.test, h=1e-4)
    #and compare to the true value
    matrix(c(-sin(.5)*cos(.5),-cos(.5)*sin(.5),
             -cos(.5)*sin(.5),-sin(.5)*cos(.5)),2,2)

[Package SpatioTemporal version 1.1.9.1 Index]