# praxis

praxis, a MATLAB code which minimizes a scalar function of a vector argument, without needing derivative information, by Richard Brent.

PRAXIS seeks an M-dimensional point X which minimizes a given scalar function F(X). The code is a refinement of Powell's method of conjugate search directions. The user does not need to supply the partial derivatives of the function F(X). In fact, the function F(X) need not be smoothly differentiable.

### Languages:

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

### Related Data and Programs:

compass_search, a MATLAB code which seeks the minimizer of a scalar function of several variables using compass search, a direct search algorithm that does not use derivatives.

test_opt, a MATLAB code which defines test problems requiring the minimization of a scalar function of several variables.

test_opt_con, a MATLAB code which defines test problems for the minimization of a scalar function of several variables, with the search constrained to lie within a specified hyper-rectangle.

test_optimization, a MATLAB code which defines test problems for the minimization of a scalar function of several variables, as described by molga and smutnicki.

### Author:

Original FORTRAN77 version by Richard Brent. MATLAB translation by John Burkardt.

### Reference:

• Richard Brent,
Algorithms for Minimization without Derivatives,
Dover, 2002,
ISBN: 0-486-41998-3,
LC: QA402.5.B74.

### Source Code:

• flin.m, is the function of one variable to be minimized by MINNY.
• minfit.m, computes the singular value decomposition of an N by N array.
• minny.m, minimizes a scalar function of N variables along a line.
• praxis.m, seeks an N-dimensional minimizer X of a scalar function F(X).
• print2.m, prints certain data about the progress of the iteration.
• quad.m, seeks to minimize the scalar function F along a particular curve.
• r8_hypot.m, returns sqrt ( x^2 + y^2 ) as an R8;
• r8mat_print.m, prints an R8MAT;
• r8mat_print_some.m, prints some of an R8MAT;
• r8vec_print.m, prints an R8VEC;
• svsort.m, descending sorts singular values D and adjusts V.

Last revised on 03 March 2019.