# PRAXIS Scalar Function Optimization

PRAXIS is a C library 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 FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

BRENT, a C library which contains Richard Brent's routines for finding the zero, local minimizer, or global minimizer of a scalar function of a scalar argument, without the use of derivative information.

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.

TEST_OPT_CON, a C library 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 C library which defines test problems for the minimization of a scalar function of several variables, as described by Molga and Smutnicki.

### Reference:

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

### List of Routines:

• FLIN is the function of one variable to be minimized by MINNY.
• MINFIT computes the singular value decomposition of an N by N array.
• MINNY minimizes a scalar function of N variables along a line.
• PRAXIS seeks an N-dimensional minimizer X of a scalar function F(X).
• PRINT2 prints certain data about the progress of the iteration.
• QUAD seeks to minimize the scalar function F along a particular curve.
• R8_EPSILON returns the R8 round off unit.
• R8_HYPOT returns the value of sqrt ( X^2 + Y^2 ).
• R8_MAX returns the maximum of two R8's.
• R8_MIN returns the minimum of two R8's.
• R8MAT_PRINT prints an R8MAT.
• R8MAT_PRINT_SOME prints some of an R8MAT.
• R8MAT_TRANSPOSE_IN_PLACE transposes a square matrix in place.
• R8VEC_COPY copies an R8VEC.
• R8VEC_MAX returns the value of the maximum element in a R8VEC.
• R8VEC_MIN returns the value of the minimum element in a R8VEC.
• R8VEC_PRINT prints an R8VEC.
• R8VEC_SWAP swaps the entries of two R8VEC's.
• SVSORT descending sorts D and adjusts the corresponding columns of V.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

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

Last revised on 29 July 2016.