HESSE cov. matrix forced pos-def


I have minimized a function using kMIGRAD with the Minuit2Minimizer and the final output that it gives me after running HESSE is included below. The first message alerts me to the fact that the cov matrix is forced pos-def. The reason for this is explained in Minuit2 documentation and is not really a major problem so long as it eventually becomes pos-def at the minimum. At present, I am unsure whether the info tells me of a previous state that has been traversed or if it is the present state of the cov. matrix. In fact, if I compute the eigenvalues of the printed cov matrix, they are all positive. My question is whether the printed covariance matrix is pos-def because it is intrinsically so or if it has simply been forced that way.

Thank you in advance.

Info in <Minuit2>: matrix forced pos-def by adding to diagonal : padd = 56.8906
Info in <Minuit2>: MnHesse: matrix was forced pos. def. 
State returned from Hesse 

# of function calls: 163
function Value: 2.444716406349
expected distance to the Minimum (edm): 0.01801277054407
external parameters: 
# ext. ||   Name    ||   type  ||     Value     ||  Error +/- 

   0   ||         a || limited ||  1.590206491401e-06 ||5.750531335727e-09
   1   ||         b ||  free   ||     0.1131463118462 ||0.0008618542640787
   2   ||         c || limited ||  0.0005081978388362 ||1.015222572411e-07
   3   ||         d ||  free   ||     0.1087008999664 ||1.877261046699e-07

covariance matrix: 

  3.30686e-17  1.58652e-13  1.08568e-16  2.00549e-16
  1.58652e-13  7.42793e-07  1.08428e-11   2.0013e-11
  1.08568e-16  1.08428e-11  1.03068e-14   1.9039e-14
  2.00549e-16   2.0013e-11   1.9039e-14  3.52411e-14

The computed eigenvalues of the above MnUserCovariance matrix are

     |      0    |      1    |      2    |      3    |
   0 |  7.428e-07           0           0           0 
   1 |          0   4.484e-14           0           0 
   2 |          0                0   3.192e-17      0 
   3 |          0                0           0   1.624e-17 


If you compute the second derivative matrix at the minimum (using Hesse) it should be positive defined and if you get a message that the matrix has been made pos def, it could be problematic.
I see that the condition number of your matrix is quite high, you have very small eigenvalues. I am expecting then in this case a numerical problem. If a parameter has an extremely small error, I would try to fix it, or otherwise I would re-scale your parameters to have all errors around 1.

Best Regards



Thank you for the previous post. I apologize for not responding sooner. I actually have found that I get the same kind of problem with better reduced chi-square values (eg. 0.8 ) I think that you may be right that it is a numerical problem. The model to fit the data makes use of the ROOT::Math::IntegratorMultiDim. I believe that is the only place that a lack of precision is introduced. I will post a new thread to see if there is anyone who knows the true limits of the integration routine.

Thank you again. Your feedback has been helpful.