Dakota Reference Manual  Version 6.4
Large-Scale Engineering Optimization and Uncertainty Analysis
 All Pages

Do not respect bounds when computing gradients or Hessians


Alias: none

Argument(s): none

Default: bounds respected


When Dakota computes gradients or Hessians by finite differences and the variables in question have bounds, it by default chooses finite-differencing steps that keep the variables within their specified bounds. Older versions of Dakota generally ignored bounds when computing finite differences. To restore the older behavior, one can add keyword ignore_bounds to the response specification when method_source dakota (or just dakota) is also specified.

In forward difference or backward difference computations, honoring bounds is straightforward.

To honor bounds when approximating $\partial f / \partial x_i$, i.e., component $i$ of the gradient of $f$, by central differences, Dakota chooses two steps $h_1$ and $h_2$ with $h_1 \ne h_2$, such that $x + h_1 e_i$ and $x + h_2 e_i$ both satisfy the bounds, and then computes

\[ \frac{\partial f}{\partial x_i} \cong \frac{h_2^2(f_1 - f_0) - h_1^2(f_2 - f_0)}{h_1 h_2 (h_2 - h_1)} , \]

with $f_0 = f(x)$, $f_1 = f(x + h_1 e_i)$, and $f_2 = f(x + h_2 e_i)$.