Least-Squares Minimization with Constraints (Python 3)
DescriptionThe lmfit Python package provides a simple, flexible interface to non-linear optimization or curve fitting problems. The package extends the optimization capabilities of scipy.optimize by replacing floating pointing values for the variables to be optimized with Parameter objects. These Parameters can be fixed or varied, have upper and/or lower bounds placed on its value, or written as an algebraic expression of other Parameters. The principal advantage of using Parameters instead of simple variables is that the objective function does not have to be rewritten to reflect every change of what is varied in the fit, or what relationships or constraints are placed on the Parameters. This means a scientific programmer can write a general model that encapsulates the phenomenon to be optimized, and then allow user of that model to change what is varied and fixed, what range of values is acceptable for Parameters, and what constraints are placed on the model. The ease with which the model can be changed also allows one to easily test the significance of certain Parameters in a fitting model. The lmfit package allows a choice of several optimization methods available from scipy.optimize. The default, and by far best tested optimization method used is the Levenberg-Marquardt algorithm from from MINPACK-1 as implemented in scipy.optimize.leastsq. This method is by far the most tested and best support method in lmfit, and much of this document assumes this algorithm is used unless explicitly stated. An important point for many scientific analysis is that this is only method that automatically estimates uncertainties and correlations between fitted variables from the covariance matrix calculated during the fit. A few other optimization routines are also supported, including Nelder-Mead simplex downhill, Powell's method, COBYLA, Sequential Least Squares methods as implemented in scipy.optimize.fmin, and several others from scipy.optimize. In their native form, some of these methods setting allow upper or lower bounds on parameter variables, or adding constraints on fitted variables. By using Parameter objects, lmfit allows bounds and constraints for all of these methods, and makes it easy to swap between methods without hanging the objective function or set of Parameters. Finally, because the approach derived from MINPACK-1 usin the covariance matrix to determine uncertainties is sometimes questioned (and sometimes rightly so), lmfit supports methods to do a brute force search of the confidence intervals and correlations for sets of parameters. This is the Python 3 version of the package.
939 other people were interested in this package here. The newest known version of this software is 0.9.14-1 (Information last updated 2 days ago.)
Upload new screenshots
Thanks for uploading more screenshots. Please note:
- Your screenshot should contain a typical scene when working with it.
- Take only a screenshot of the respective application and not of your whole desktop (unless the screenshot is meant for a window manager).
- Your screenshots must be in PNG format.
- You can upload multiple images at once.
- Your screenshot need to be approved by the moderators first. You will already see your screenshot but it will not be visible to others instantly. If moderators reject your upload you will get notified next time you visit this site (requires cookies).
- Images larger than 800x600 pixels will automatically be reduced. So don't try to capture too much detail in a screenshot. It may become unreadable. Shrink the applications window if possible.
- Screenshots are made public and can freely be used by anyone.
- Useful programs for making screenshots are shutter, ksnapshot (KDE), gimp, xwd or scrot. See the Debian wiki for more information on how to make screenshots under Debian.
- Please set your language to english so that everybody understands it. If you don't use english by default please start your application from a shell using after setting "export LANG=C".