[SciPy-dev] Brent's Principal Axis Algorithm

Christoph Schmidt-Hieber c.schmidt-hieber@ucl.ac...
Tue Sep 8 12:44:07 CDT 2009


Dear all,
I've started a Google code project (http://code.google.com/p/pypraxis/) to provide a Python interface to Brent's principal axis algorithm. It's basically a wrapper around some Fortran code from http://www.netlib.org/opt/. Brent's algorithm minimizes a function of several variables without calculating derivatives - not to be mistaken for scipy.optimize.brent, that only performs single-variable minimization. The algorithm typically outperforms other derivative- and gradient-free algorithms (Brent, 2002; http://wwwmaths.anu.edu.au/~brent/pub/pub011.html). In my experience, it converges substantially faster than fmin and fmin_powell from scipy.optimize when fitting models with 5 to 15 free parameters to experimental data. Notably, Mathematica uses this algorithm for minimization without derivatives
(http://reference.wolfram.com/mathematica/tutorial/UnconstrainedOptimizationPrincipalAxisMethod.html).
I've provided some test cases and a wrapper that allow to compare it directly to the existing algorithms from scipy.optimize. Let me know if you think that the code could be a candidate for integration into scipy.optimize. It would obviously require some work to make it conform with the other functions that are already present.
Best
Christoph

-----WIBR-EMAIL-----
This email and any files transmitted with it
are confidential and intended solely for the
use of the individual or entity to whom they
are addressed. If you have received this 
email in error please notify the system 
management (it.support@wibr.ucl.ac.uk).
--------***---------




More information about the Scipy-dev mailing list