iminuit
iminuit is a Jupyter-friendly Python interface for the Minuit2 C++ library maintained by CERN's ROOT team.
It can be used as a general robust function minimisation method, but is most commonly used for likelihood fits of models to data, and to get model parameter error estimates from likelihood profile analysis.
-
Supported CPython versions: 3.6+
-
Supported PyPy versions: 3.6
-
Supported platforms: Linux, OSX and Windows.
-
Documentation: http://iminuit.readthedocs.org
-
License: MINUIT2 is LGPL-2.1 and iminuit is MIT
-
Citation: https://doi.org/10.5281/zenodo.3949207
In a nutshell
from iminuit import Minuit
def fcn(x, y, z):
return (x - 2) ** 2 + (y - 3) ** 2 + (z - 4) ** 2
fcn.errordef = Minuit.LEAST_SQUARES
m = Minuit(fcn, x=0, y=0, z=0)
m.migrad() # run optimiser
print(m.values) # x: 2, y: 3, z: 4
m.hesse() # run covariance estimator
print(m.errors) # x: 1, y: 1, z: 1
Versions
The current 2.x series has introduced breaking interfaces changes with respect to the 1.x series.
All interface changes are documented in the changelog with recommendations how to upgrade. To keep existing scripts running, pin your major iminuit version to <2, i.e. pip install 'iminuit<2'
installs the 1.x series.