[ROOT] Fit troubles

From: Gregory Novak (Gregory.Novak@cern.ch)
Date: Mon May 07 2001 - 10:57:39 MEST


I'm running Root 2.25, and I'm trying to fit a function to a graph.
However, it the fit doesn't seem to include the points on the boundary.  I
played a lot with my fitting function to try to hit the point on the
boundary, but finally concluded that nothing would work b/c the point
wasn't included.  :-)  

So, how do I get Root to include all points?

I've attached an eps file of the canvas showing the graph and the fitted
function, and here (basically) is the code I'm using.

Thanks,
Greg


Int_t nPoints=16;
Float_t x[] = {0.195490003, 0.341758013, 0.626088023, 1.09469998, 1.92990005, 
  3.40200996, 5.99965, 10.5876999, 18.6718006, 32.9463005, 58.1189003, 
  102.549004, 180.925995, 319.307007, 563.236023, 993.775024};
Float_t y[] = {6.47185993, 4.18911982, 2.12453008, 1.10843003, 0.803915024, 0.73110801, 
  0.749179006, 0.831418991, 0.876044989, 0.87609899, 0.91761899, 0.954747021, 
  0.983271003, 1.00406003, 1.02154005, 1.03620994};
Float_t xErr[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
Float_t yErr[] = {0.281376004, 0.189824, 0.112899996, 0.0736455023, 0.0586442016, 
  0.0549372993, 0.0546161011, 0.059711501, 0.0590298995, 0.0593684018, 
  0.0610054992, 0.0623256005, 0.0655059963, 0.0628056973, 0.0657007024, 
  0.0688278973};

  const Char_t *func = "([0]+[1]/x**2+[2]/x**3+[3]/x**4)*log(x**2)+"
    "[4]+[5]/x**2+[6]/x**3+[7]/x**4";
  theFunc = new TF1("theFunc", func);
  TGraph *tg=new TGraphErrors(nPoints,x,y,xErr,yErr);
  tg->Fit("theFunc");
  TCanvas *c1 = new TCanvas("c1","c1");
  c1->SetLogx();
  tg->Draw("AP");






This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET