DFO-GN is a package for solving nonlinear least-squares minimisation, without requiring derivatives of the objective.
This is an implementation of the algorithm from our paper: A Derivative-Free Gauss-Newton Method, C. Cartis and L. Roberts, Mathematical Programming Computation (2019). For reproducibility of all figures in this paper, please feel free to contact the authors. A preprint of the paper is available here.
Note: we have released a newer package, called DFO-LS, which is an upgrade of DFO-GN to improve its flexibility and robustness to noisy problems. See here for details.
Citation To cite DFO-GN, please use
@Article{DFOGN, Title = {A derivative-free {G}auss-{N}ewton method}, Author = {Cartis, Coralia and Roberts, Lindon}, Journal = {Mathematical Programming Computation}, Year = {2019}, Doi = {10.1007/s12532-019-00161-7}, Url = {https://doi.org/10.1007/s12532-019-00161-7} }
See manual.pdf or here.
DFO-GN requires the following software to be installed:
Additionally, the following python packages should be installed (these will be installed automatically if using pip, see Installation using pip):
For easy installation, use pip as root:
$ [sudo] pip install --pre dfogn
If you do not have root privileges or you want to install DFO-GN for your private use, you can use:
$ pip install --pre --user dfogn
which will install DFO-GN in your home directory.
Note that if an older install of DFO-GN is present on your system you can use:
$ [sudo] pip install --pre --upgrade dfogn
to upgrade DFO-GN to the latest version.
The source code for DFO-GN is available on Github:
$ git clone https://github.com/numericalalgorithmsgroup/dfogn $ cd dfogn
DFO-GN is written in pure Python and requires no compilation. It can be installed using:
$ [sudo] pip install --pre .
If you do not have root privileges or you want to install DFO-GN for your private use, you can use:
$ pip install --pre --user .
instead.
If you installed DFO-GN manually, you can test your installation by running:
$ python setup.py test
Alternatively, the documentation provides some simple examples of how to run DFO-GN, which are also available in the examples directory.