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.
- PyPI: https://pypi.org/project/iminuit
- Documentation: http://iminuit.readthedocs.org
- Source: https://github.com/scikit-hep/iminuit
- Gitter: https://gitter.im/Scikit-HEP/community
- 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
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.
These docs are for iminuit version: 2.6.1+ROOT-v6-25-01-973-ga470d483db