Learn R Programming

CDM (version 4.991-1)

numerical_Hessian: Numerical Computation of the Hessian Matrix

Description

Computes numerically the Hessian matrix of a given function.

Usage

numerical_Hessian(par, FUN, h = 1e-05, gradient = FALSE, hessian = TRUE, ...)

Arguments

par
Parameter vector
FUN
Specified function with argument vector x
h
Numerical differentiation parameter. Can be also a vector.
gradient
Logical indicating whether the gradient should be calculated.
hessian
Logical indicating whether the Hessian matrix should be calculated.
...
Further arguments to be passed to FUN.

Value

Gradient vector or Hessian matrix or a list of both elements

See Also

See the numDeriv package and the mirt::numerical_deriv function from the mirt package.

Examples

Run this code
#############################################################################
# EXAMPLE 1: Toy example for Hessian matrix
#############################################################################
	
# define function
f <- function(x){
     3*x[1]^3 - 4*x[2]^2 - 5*x[1]*x[2] + 10 * x[1] * x[3]^2 + 6*x[2]*sqrt(x[3])
            }
# define point for evaluating partial derivatives            
par <- c(3,8,4)

#--- compute gradient 
numerical_Hessian( par = par , FUN = f , gradient=TRUE , hessian = FALSE)
## Not run: 
# mirt::numerical_deriv(par = par , f = f, gradient=TRUE)
# 
# #--- compute Hessian matrix
# numerical_Hessian( par = par , FUN = f )
# mirt::numerical_deriv(par = par , f = f, gradient=FALSE)
# numerical_Hessian( par = par , FUN = f , h = 1E-4 )
# 
# #--- compute gradient and Hessian matrix
# numerical_Hessian( par = par , FUN = f , gradient=TRUE , hessian=TRUE)
# ## End(Not run)

Run the code above in your browser using DataLab