jburkardt

TOMS178\ Minimization by Hooke-Jeeves Direct Search {#toms178-minimization-by-hooke-jeeves-direct-search align=”center”} ==========================================


TOMS178 is a C++ library which uses the Hooke-Jeeves direct search algorithm to seek the minimizing point of a function F(X) of several variables, by Arthur Kaupe.

The Hooke_Jeeves algorithm does not required the function F(X) to be differentiable. It does not even require the function to be continuous, although it should probably only be “weakly discontinuous”, like a step function, with finitely many well-separated jumps. In any case, the algorithm only examines function values, never derivatives, remembers the location of the best value encountered, and seeks to improve this value by a clever pattern search.

The user supplies a quantity rho, between 0 and 1, which controls how cautious or daring the search is, as well as a routine to evaluate the function, and a few input parameters.

A C version of the algorithm, as written by Mark Johnson, is available at http://www.netlib.org/opt/hooke.c

Licensing: {#licensing align=”center”}

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages: {#languages align=”center”}

TOMS178 is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

ASA047, a C++ library which minimizes a scalar function of several variables using the Nelder-Mead algorithm.

COMPASS_SEARCH, a C++ library which seeks the minimizer of a scalar function of several variables using compass search, a direct search algorithm that does not use derivatives.

MINPACK, a C++ library which solves systems of nonlinear equations, or the least squares minimization of the residual of a set of linear or nonlinear equations.

Author: {#author align=”center”}

Original Algol version by Arthur Kaupe; C++ version by John Burkardt.

Reference: {#reference align=”center”}

Source Code: {#source-code align=”center”}

Examples and Tests: {#examples-and-tests align=”center”}

List of Routines: {#list-of-routines align=”center”}

You can go up one level to the C++ source codes.


Last revised on 12 February 2008.