Minuit2 fit problem


Im currently trying to do a fit of my 2 dimensional model to a binned data set. The model currently has 5 fit parameters and im doing the fit with Minuit2. Unfortunately two of those fit parameters make the fit process problematic and Minuit quits with this message:

Info in : VariableMetricBuilder: no improvement in line search
VariableMetric: Iteration # 14 - FCN = -13532121.09988 Edm = 0.203166 NCalls = 224
Info in : VariableMetricBuilder: iterations finish without convergence.
Info in : VariableMetricBuilder : edm = 8.29717
Info in : requested : edmval = 2e-05
Info in : VariableMetricBuilder: FunctionMinimum is invalid after second try

As far as I understand it would mean that my minimization space (5 dim) is rather flat because of these two troublesome parameters and Minuit cannot determine the edm precisely. Hence it will also not fit a correct minimum. How is the edm actually calculated? Currently Im trying to plot my minimization space (loglikelihood space) in those two troublesome dimensions in the area of my minimum. Hopefully that can give some hints on whats going wrong. My model computation is rather complicated, so the I might have some numerical instability issue here. Any ideas?

Best regards,



The problem you are having is probably suffering from numerical error. What fails is the line minimisation (line search). This normally happens when the function is not computed with sufficient accuracy.
I see that your FCN value is rather large. As first thing, I would suggest to apply an initial offset to the FCN to make it equal to zero for the initial parameter values. Otherwise, you should look on ways to reduce the numerical error when computing the FCN

Best Regards


Hi Lorenzo,

thank you for your reply! I tried what you suggested and normalized my estimator to the initial values and it works now! These two troublesome parameters are not extracted really precisely, but the estimator space is also rather flat in those two variables. I tried to make all of my operations as numerically stable as possible now and I also use long double for most of my calculations, until I hand values over to Minuit2. These things did not improve the situation much. I will just keep searching for spots that could be numerically instable. Thank again for your suggestion. Btw, is there a way for minuit2 to use long double instead of double?

Best regards,