### Inaccurate numerical derivatives

Embed uses finite difference approximations to compute
derivatives of the problem functions. These are computed by Embed routines using
forward differences or using central differences. Use of forward differences is
the default option. To invoke central differences, use the kderiv option.

Finite difference derivatives have roughly half the
precision of the constraint and cost functions. Hence, if each function is
accurate to five or six significant digits, then the derivatives have about two
or three significant digits, which is adequate in most instances. However, if
each function has four or fewer significant digits, then the derivatives have
two or less, which may seriously hinder the optimizer.

Low precision** **often occurs when numerical routines
are used to evaluate one or more of the functions. This can occur in chemical
process models where recycle loops require iterative solution of a system of
implicit nonlinear equations, or when differential equations are solved
numerically. Then, the accuracy of these numerical calculations determines the
accuracy of the functions.

Inaccurate derivatives can cause Embed to terminate at a
non-optimal point, often with the message inform = 2. Possible remedies
include:

•
Increasing the accuracy of the functions computed (by decreasing the
simulation step size)

•
Using central differences (by specifying the kderiv option)

•
Trying different step sizes (via the pstep option)