Convergence problem

I am using root version 5.22.00
mini = ROOT::Math::factory::CreateMinimizer(“Minuit2”, “Combined”);

I’m having a problem with minimization not converging. With
mini->SetPrintLevel(3);
I get the output pasted below.
I see that the requested edmval = 0.1
and edm got as small as 0.0007 in iteration 2
but the fit fails with “Edm is above max”

Why does this happen?


Minuit2Minimizer: Minimize with max iterations 2000 edmval 100 strategy 1
Info in : VariableMetricBuilder: no improvement in line search
Info in : VariableMetricBuilder: iterations finish without convergence.
Info in : VariableMetricBuilder : edm = 2.45548
Info in : requested : edmval = 0.1
Number of iterations 3
----------> Iteration 0
FVAL = 28.3693083257 Edm = 0.61386971133 Nfcn = 47
Error matrix change = 1
Parameters : p0 = 1.47479 p1 = 0.4418 p2 = 520.001
----------> Iteration 1
FVAL = 28.3693083257 Edm = 0.61386971133 Nfcn = 58
Error matrix change = 1
Parameters : p0 = 1.47479 p1 = 0.4418 p2 = 520.001
----------> Iteration 2
FVAL = 28.3693083257 Edm = 0.000769111298885 Nfcn = 76
Error matrix change = 0
Parameters : p0 = 1.47479 p1 = 0.4418 p2 = 520.001
Minuit2Minimizer::Minimization DID not converge !
FVAL = 28.3693
Edm = 0.000769111
Nfcn = 76
Edm is above max


mini->Edm() = 0.000769111
mini->NCalls() = 76
mini->Status() = 3
mini->MaxIterations() = 10
mini->MaxFunctionCalls() = 2000
mini->Tolerance() = 100

Hello,

I see you get this problem

A failure in the line search is sometimes due to unpredictive numerical error in the function evaluation. For example, when calculating f(x) and then f(x) again and a different value is obtained.
You should first check the function evaluation. I would need however a program reproducing your problem to help you more

Lorenzo