>  Docs Center  >  Libraries  >  Beaumont  >  BRENT
Libraries

BRENT

BRENT

Purpose


  This function minimizes a function of one variable. The function
  requires 3 input abscissas which bracket at least one local minimum
  (see, e.g. bracket.pro)
  The algorithm is adapted from Numerical Recipes, but is
  substantially modified in an attempt to simplify the
  procedure. This may make the program slower, but I don't
  think it should be any less stable.
  The program attempts to improve upon goldenmin by using parabolic
  extrapolation in the vicinity of the minimum. If the function is
  smooth, then this should quickly converge. If it seems that
  parabolic extrapolation isn't behaving well, then it
  defaults to a goldenmin style partitioning of (abc) into golden
  sections. This ensures convergence.
  The biggest change from the routine in Numerical Recipes is the
  test for when to use parabolic extrapolation. The default state is
  to use parabolic extrapolation if the extrapolated minimum is
  interior to (a,c). However, if the range of (a,c) decreases by less
  than a factor of 1.5 in any iteration, then the algorithm is
  'punished', and parabolic extrapolation is not used for a
  round. The value of 1.5 is used because the goldenmin style of
  partitioning shrinks (a,c) by about 1.67 per iteration. For smooth
  functions, typical shrinkages seem to be >2 per iteration. They can
  be as high as several thousand for nearly parabolic functions.

Category


  Numerical Recipes

Calling Sequence


  result = brent(func, ax, bx, cx,
                fax, fbx, fcx, [tol tol,
                fmin = fmin, /verbose, _extra = extra, /plot,
                golden = golden)

Inputs


  func: The name of a user written function to minimize. The function
        must have a calling sequence like result = func(x, _extra =
        extra). It may declare extra keywords, which are supplied to
        brent. It must return a scalar.
  ax: The first point bracketing the minimum
  bx: The second point bracketing the minimum
  cx: The third point bracketing the minimum
  fax: func(ax)
  fbx: func(bx)
  fcx: func(cx)

Keyword Parameters


  tol: The requested fractional precision of xmin. Defaults to 1d-3
  verbose: Set to produce textual output
  fmin: Set to a variable to hold f(xmin)
  _extra: extra kewyords to pass along to calls of func
  plot: Set to plot the points as it plugs along.
  golden: If set, turn off parabolic interpolation (i.e. basically
  golden search)

Outputs


  xmin: The approximate location of a minimum within (abc)



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
My Account    |    Contact Us