Re: Minuit2

From: Patrick Dupre <pd520_at_york.ac.uk>
Date: Wed, 3 Sep 2008 11:31:31 +0100


>>
>> I sent already 2 messages about Minuit, but I did not get any feedback !!
>>
>> Now I am experiencing several problems.
>> 1) Minuit2 has a lot less option than TFitter has, Why I cannot
>> manage the max number of iterations, etc.. how can ROOT:TFitter can
>> ne based on minuit2 and offer more options ? Am I wrong ? arglist
>> offers those options !
>
> same options available in TFitter are also available. As pointed out you can
> use the base class TVirtualFitter.
> The class TFitterMinuit implements this interface in the case of Minuit2.
>>
>> 2) Minuit does not congerve at all in some circunstancies. I
>> notice for example having to fit a big number : 5e12.
>> the fitter change the value of the parameter, calculate the chi2,
>> finds that it is lower, but finally keep the original value:
>> example:
>> Density: 4.90049e+12
>> chi2 1.01073e-05
>> Density: 4.89951e+12
>> chi2 1.03073e-05
>> Density: 4.9049e+12
>> chi2 9.23127e-06
>> Density: 4.8951e+12
>> chi2 1.12318e-05
>> Density: 4.949e+12
>> chi2 2.65485e-06
>> Density: 4.851e+12
>> chi2 2.26607e-05
>> Density: 4.9e+12
>> chi2 1.02068e-05
>> Density: 4.9e+12
>> chi2 1.02073e-05
>
> I don't understand here your output. It could be that the algorithm fails to
> find the minimum because you start too far away from the minimum position or
> because the funcion is ill defined.
> A value of chi2 so small is also suspicious to me.

Density is the parameter that minuit2 tries to fit and chi2 is the chi2 resulting
You can see that chi2 may become smaller for a value of Density( cf. 4.9049e+12, chi2B: 9.23127e-06), but then it is ignored, then the newt try the value of chi2 is higher, and the final answer is the initial try (no fit).

In fact 5e12 is the correct value.

The chi2 can be veery small and the paramter very high, there is no correlation between these 2 quantities.

>
>>
>>
>> 3) When I user Strategy, 2, it crash after a couple of iterations !
>> ../inc/Minuit2/LASymMatrix.h:226: double&
>> ROOT::Minuit2::LASymMatrix::operator()(unsigned int, unsigned int):
>> Assertion `row<fNRow && col < fNRow' failed.
>>
>
> If you can send me a simple running script reproducing this I can investigate
> it. Also a fulltrace obtained with gdb to see who called that function would
> be useful.
> In general, strategy 2 does not improve the convergence. It uses a full
> second derivative calculations, so if the function is having some problems
> with the derivatives,
> the convergence can be even worse.
>

OK, but it is almost impossible because, this fit is included inside a big application written in perl, calling c and C++, the function to minimize *fFCN is itself written in perl !!!!!

I will try to set my paramter Density close to 1, and apply a coefficient 1e12.

Regards

-- 
---
==========================================================================
  Patrick DUPRÉ                      |   |
  Department of Chemistry            |   |    Phone: (44)-(0)-1904-434384
  The University of York             |   |    Fax:   (44)-(0)-1904-432516
  Heslington                         |   |
  York YO10 5DD  United Kingdom      |   |    email: pd520_at_york.ac.uk
==========================================================================
Received on Wed Sep 03 2008 - 12:31:39 CEST

This archive was generated by hypermail 2.2.0 : Wed Sep 03 2008 - 23:50:01 CEST