BRENT
Algorithms for Minimization Without Derivatives
BRENT
is a MATLAB library which
contains algorithms for finding zeros or minima of
a scalar function of a scalar variable,
by Richard Brent.
The methods do not require the use of derivatives, and do not assume that
the function is differentiable.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
BRENT is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
ASA047,
a MATLAB library which
minimizes a scalar function of several variables using the Nelder-Mead algorithm.
COMPASS_SEARCH,
a MATLAB library which
seeks the minimizer of a scalar function of several variables
using compass search, a direct search algorithm that does not use derivatives.
GSL,
a C++ library which
includes rootfinding routines.
NELDER_MEAD,
a MATLAB program which
minimizes a scalar function of several variables using the Nelder-Mead algorithm.
NMS,
a FORTRAN90 library which
includes versions of Brent's minimizer and zero finder.
PRAXIS,
a FORTRAN90 library which
minimizes a scalar function of several variables.
SLATEC,
a FORTRAN90 library which
includes the zero finder FZERO.
TEST_MIN,
a MATLAB library which
implements test problems for
minimization of a scalar function of a scalar variable.
TEST_OPT,
a MATLAB library which
defines test problems
requiring the minimization of a scalar function of several variables.
TEST_ZERO,
a MATLAB library which
defines some test functions for which zeroes can be sought.
TOMS178,
a MATLAB library which
optimizes a scalar functional of multiple variables using the Hooke-Jeeves method.
ZOOMIN,
a FORTRAN90 library which
includes various zero finder routines.
Author:
Original FORTRAN77 version by Richard Brent;
MATLAB version by John Burkardt.
Reference:
-
Richard Brent,
Algorithms for Minimization without Derivatives,
Dover, 2002,
ISBN: 0-486-41998-3,
LC: QA402.5.B74.
Source Code:
-
glomin.m,
seeks a global minimum of a function F(X) in an interval [A,B].
-
local_min.m,
seeks a local minimum of a function F(X) in an interval [A,B].
-
local_min_rc.m,
seeks a local minimum of a function F(X) in an interval [A,B],
using reverse communication.
-
r8_epsilon.m,
returns the R8 machine precision.
-
r8_sign.m,
returns the sign of an R8.
-
timestamp.m,
prints out the current YMDHMS date as a timestamp.
-
zero.m,
seeks the root of a function F(X) in an interval [A,B].
-
zero_rc.m,
seeks the root of a function F(X) in an interval [A,B] using reverse communication.
Examples and Tests:
-
brent_test.m,
a sample calling program.
-
test_zero_all.m,
tests ZERO on all the test functions.
-
test_zero_rc_all.m,
tests ZERO_RC on all the test functions.
-
test_local_min_all.m,
tests LOCAL_MIN on all the test functions.
-
test_local_min_rc_all.m,
tests LOCAL_MIN_RC on all the test functions.
-
test_global_all.m,
tests GLOMIN on all the test functions.
-
test_zero_one.m,
tests ZERO on one test function.
-
test_zero_rc_one.m,
tests ZERO_RC on one test function.
-
test_local_min_one.m,
tests LOCAL_MIN on one test function.
-
test_local_min_rc_one.m,
tests LOCAL_MIN_RC on one test function.
-
test_global_one.m,
tests GLOMIN on one test function.
-
f_01.m,
zero finder test function #1.
-
f_02.m,
zero finder test function #2.
-
f_03.m,
zero finder test function #3.
-
f_04.m,
zero finder test function #4.
-
f_05.m,
zero finder test function #5.
-
g_01.m,
local minimum test function #1.
-
g_02.m,
local minimum test function #2.
-
g_03.m,
local minimum test function #3.
-
g_04.m,
local minimum test function #4.
-
g_05.m,
local minimum test function #5.
-
h_01.m,
global minimum test function #1.
-
h_02.m,
globalminimum test function #2.
-
h_03.m,
global minimum test function #3.
-
h_04.m,
global minimum test function #4.
-
h_05.m,
global minimumr test function #5.
-
brent_test_output.txt,
the output file.
You can go up one level to
the MATLAB source codes.
Last revised on 17 April 2008.