levmar is a robust and efficient C/C++ implementation of the Levenberg - Marquardt (LM) optimization algorithm. LM solves the non-linear least squares problem, i.e. fitting a set of m observations with a model that is non-linear in n unknown parameters (m>=n). levmar includes double and single precision LM variants, both with analytic and finite difference approximated Jacobians. It also has some support for constrained non-linear least squares, allowing linear equation and box constraints to be imposed.
| Tags | Scientific/Engineering Mathematics |
|---|---|
| Licenses | GPL |
| Operating Systems | OS Independent |
| Implementation | C |
Recent releases


Changes: A more cache-efficient scheme was implemented for computing the approximate Hessian J^T*J and J^T*e for small-sized minimization problems. The code now ensures that linear solvers employ the minimum required amount of auxiliary memory, avoiding occasional over-allocations. A loop unrolling scheme was implemented for speeding up the computation of e=x-hx. A couple of issues with memory alignment on 64-bit systems were fixed. Functions were added for the computation of the coefficient of determination. A few minor issues were dealt with.


Changes: Improved support for problems with zero measurement vectors. Memory retained among invocations of the linear solvers is released when levmar terminates. The option of compiling only the single or only the double precision functions of levmar has been added. A new error code 7 signaling infinite values in the function provided by the user has been introduced. A couple of minor problems in the line search procedure of box constrained optimization have been fixed. A detailed example on using levmar for fitting a non-linear model to noisy data has been added.


Changes: Routines were added for minimization under simultaneous box and linear equality constraints. levmar now includes a matlab MEX interface. Error handling was improved in various routines. An error with the linking order in the Makefiles that was causing errors under cygwin was fixed. A few more minor bugs were fixed.
A Web-based server manager for IBM Bladecenter, RSA II, and Virtual Machines.