./math/py-lmfit, Least-squares minimization with bounds and constraints

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.3.2, Package name: py312-lmfit-1.3.2, Maintainer: prlw1

A library for least-squares minimization and data fitting in Python.
Built on top of scipy.optimize, lmfit provides a Parameter object
which can be set as fixed or free, can have upper and/or lower
bounds, or can be written in terms of algebraic constraints of
other Parameters. The user writes a function to be minimized as a
function of these Parameters, and the scipy.optimize methods are
used to find the optimal values for the Parameters. The
Levenberg-Marquardt (leastsq) is the default minimization algorithm,
and provides estimated standard errors and correlations between
varied Parameters. Other minimization methods, including Nelder-Mead's
downhill simplex, Powell's method, BFGS, Sequential Least Squares,
and others are also supported. Bounds and contraints can be placed
on Parameters for all of these methods.

In addition, methods for explicitly calculating confidence intervals
are provided for exploring minmization problems where the approximation
of estimating Parameter uncertainties from the covariance matrix
is questionable.


Required to run:
[devel/py-setuptools] [math/py-scipy] [math/py-numpy] [math/py-asteval] [lang/python37] [math/py-uncertainties]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 609.321 KB

Version history: (Expand)


CVS history: (Expand)


   2023-08-02 01:20:57 by Thomas Klausner | Files touched by this commit (158)
Log message:
*: remove more references to Python 3.7
   2023-07-01 10:37:47 by Thomas Klausner | Files touched by this commit (105) | Package updated
Log message:
*: restrict py-numpy users to 3.9+ in preparation for update
   2023-06-06 14:42:56 by Taylor R Campbell | Files touched by this commit (1319)
Log message:
Mass-change BUILD_DEPENDS to TOOL_DEPENDS outside mk/.

Almost all uses, if not all of them, are wrong, according to the
semantics of BUILD_DEPENDS (packages built for target available for
use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for
host available for use _as_ tools at build-time).

No change to BUILD_DEPENDS as used correctly inside buildlink3.

As proposed on tech-pkg:
https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
   2022-04-10 02:57:15 by David H. Gutteridge | Files touched by this commit (18)
Log message:
Fix build breakage from py-scipy now being Python >= 3.8
   2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595)
Log message:
*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
   2021-12-30 14:05:42 by Adam Ciarcinski | Files touched by this commit (125)
Log message:
Forget about Python 3.6
   2021-12-17 08:49:34 by Thomas Klausner | Files touched by this commit (1)
Log message:
py-lmfit: add build dependency on py-setuptools_scm
   2021-11-07 12:58:47 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-lmfit: updated to 1.0.3

Version 1.0.3 Release Notes (October 14, 2021)
==============================================

Potentially breaking change:

- argument ``x`` is now required for the ``guess`` method of Models

To get reasonable estimates for starting values one should always supply both \ 
``x`` and ``y`` values; in some cases it would work
when only providing ``data`` (i.e., y-values). With the change above, ``x`` is \ 
now required in the ``guess`` method call, so scripts might
need to be updated to explicitly supply ``x``.

Bug fixes/enhancements:

- do not overwrite user-specified figure titles in Model.plot() functions and \ 
allow setting with ``title`` keyword argument
- preserve Parameters subclass in deepcopy
- coerce ``data`` and ``indepdent_vars`` to NumPy array with ``dtype=float64`` \ 
or ``dtype=complex128`` where applicable
- fix collision between parameter names in built-in models and user-specified \ 
parameters
- correct error message in PolynomialModel
- improved handling of altered JSON data
- map ``max_nfev`` to ``maxiter`` when using ``differential_evolution``
- correct use of noise versus experimental uncertainty in the documentation
- specify return type of ``eval`` method more precisely and allow for plotting \ 
of (Complex)ConstantModel by coercing their
  ``float``, ``int``, or ``complex`` return value to a ``numpy.ndarray``
- fix ``dho`` (Damped Harmonic Oscillator) lineshape
- reset ``Minimizer._abort`` to ``False`` before starting a new fit
- fix typo in ``guess_from_peak2d``

Various:

- update asteval dependency to >= 0.9.22 to avoid DeprecationWarnings from \ 
NumPy v1.20.0
- remove incorrectly spelled ``DonaichModel`` and ``donaich`` lineshape, \ 
deprecated in version 1.0.1
- remove occurrences of OrderedDict throughout the code; dict is \ 
order-preserving since Python 3.6
- update the contributing instructions
- (again) defer import of matplotlib to when it is needed
- fix description of ``name`` argument in ``Parameters.add``
- update dependencies, make sure a functional development environment is \ 
installed on Windows
- use ``setuptools_scm`` for version info instead of ``versioneer``
- transition to using ``f-strings``
- mark ``test_manypeaks_speed.py`` as flaky to avoid intermittent test failures
- update scipy dependency to >= 1.14.0
- improvement to output of examples in sphinx-gallery and use higher resolution \ 
figures
- remove deprecated functions ``lmfit.printfuncs.report_errors`` and ``asteval`` \ 
argument in ``Parameters`` class

.. _whatsnew_102_label:

Version 1.0.2 Release Notes (February 7, 2021)
==============================================

Version 1.0.2 officially supports Python 3.9 and has dropped support for Python \ 
3.5. The minimum version
of the following dependencies were updated: asteval>=0.9.21, numpy>=1.18, \ 
and scipy>=1.3.

New features:

- added two-dimensional Gaussian lineshape and model
- all built-in models are now registered in ``lmfit.models.lmfit_models``; new \ 
Model class attribute ``valid_forms``
- added a SineModel
- add the ``run_mcmc_kwargs argument`` to ``Minimizer.emcee`` to pass to the \ 
``emcee.EnsembleSampler.run_mcmc`` function

Bug fixes:

- ``ModelResult.eval_uncertainty`` should use provided Parameters
- center in lognormal model can be negative
- restore best-fit values after calculation of covariance matrix
- add helper-function ``not_zero`` to prevent ZeroDivisionError in lineshapes \ 
and use in exponential lineshape
- save ``last_internal_values`` and use to restore internal values if fit is aborted
- dumping a fit using the ``lbfgsb`` method now works, convert bytes to string \ 
if needed
- fix use of callable Jacobian for scalar methods
- preserve float/int types when encoding for JSON
- better support for saving/loading of ExpressionModels and assure that \ 
``init_params`` and ``init_fit`` are set when loading a ``ModelResult``

Various:

- update minimum dependencies
- improvements in coding style, docstrings, CI, and test coverage
- fix typo in Oscillator
- add example using SymPy
- allow better custom pool for emcee()
- update NIST Strd reference functions and tests
- make building of documentation cross-platform
- relax module name check in ``test_check_ast_errors`` for Python 3.9
- fix/update layout of documentation, now uses the sphinx13 theme
- fixed DeprecationWarnings reported by NumPy v1.2.0
- increase value of ``tiny`` and check for it in bounded parameters to avoid \ 
"parameter not moving from initial value"
- add ``max_nfev`` to ``basinhopping`` and ``brute`` (now supported everywhere \ 
in lmfit) and set to more uniform default values
- use Azure Pipelines for CI, drop Travis