Dear rooters,
I have some questions about TMinuit :
Actually I am using TMinuit to minimize a Chi2, which has a quite complicated formula (can have ~100 parameters). I can evaluate numerically the derivative at each iteration as a function of the parameters.
I am using the following commands (asking Minuit to minimize without giving him the derivative) :
TMinuit *gMinuit = new TMinuit(Neinc); //Neinc params
gMinuit->SetFCN(Ki2);
*arglist = 2.0;
gMinuit->mnexcm("SET STR", arglist, 1, ierflg);
arglist[0] = 1;
gMinuit->mnexcm("SET ERR", arglist ,1,ierflg);
// arglist[0] = ??; // ---> which value to put here, why ??
// gMinuit->mnexcm("SET EPS", arglist ,1,ierflg);
for(Int_t ie=0;ie<Neinc;ie++)
gMinuit->mnparm(ie , Form("N_%d",ie) , vstart[ie], step[ie],0,0,ierflg);
arglist[0] = 10000;
arglist[1] = 0.01;
gMinuit->mnexcm("SIMPLEX", arglist ,2,ierflg);
gMinuit->mnexcm("MIGRAD" , arglist ,2,ierflg);
gMinuit->mnstat(fmin,fedm,errdef,npari,nparx,istat);
if (3 == istat)
gMinuit->mnexcm("HESSE",arglist, 0,ierflg);
gMinuit->mnexcm("END", arglist, 0, ierflg);
How to proceede to use mngrad() ? Should/Can I call gMinuit->SetFCN(Ki2);
with using the derivative as argument instead of Ki2 ?
For your help
Cheers