genGradient: Compute Finite Difference Gradient and Hessians.

Description Usage Arguments Value Author(s) See Also Examples

Description

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

Usage

1
2
3
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#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)

SpatioTemporal documentation built on May 2, 2019, 8:49 a.m.