Routines for minimizing a function
of the variables
may require you to provide a subroutine to evaluate the second derivatives of
.
e04hdc is designed to check the second derivatives calculated by such user-supplied functions. As well as the function to be checked (
hessfun), you must supply a function (
objfun) to evaluate the first derivatives, and a point
at which the checks will be made. Note that
e04hdc checks functions of the form required for
e04lbc.
e04hdc first calls
objfun and
hessfun to evaluate the first and second derivatives of
at
. The user-supplied Hessian matrix (
, say) is projected onto two orthogonal vectors
and
to give the scalars
and
respectively. The same projections of the Hessian matrix are also estimated by finite differences, giving
respectively, where
denotes the vector of first derivatives at the point in brackets and
is a small positive scalar. If the relative difference between
and
or between
and
is judged too large, an error indicator is set.
None.
The error
NE_DERIV_ERRORS is returned if
where
is set equal to
(
being the
machine precision as given by
X02AJC and other quantities are as defined in
Section 3.
Background information to multithreading can be found in the
Multithreading documentation.
Suppose that it is intended to use
e04lbc to minimize
The following program could be used to check the second derivatives calculated by the required
hessfun function. (The call of
e04hdc is preceded by a call of
e04hcc to check the function
objfun which calculates the first derivatives.)
None.