Hi Harufumi, I cannot reproduce your problem using your data points. See script gsigma.C in attachement. Are you giving initial values to the function? Which version/OS ? Rene Brun Harufumi Tsuchiya wrote: > > Hello ROOTers ! > > I have following data set and I would like to fit these values > using gaussian function. > I could fit. But the sigma of result of fit is peculiar. > It's value is minus. > Why the sigma is minus ? > Is it ordinary behevior of fitting ? > > I attached ps file of result of fit. > In the graph, p0 -> constant, p1->mean, p2->sigma. > > ------ data set --------- > -4.875000 11.2877 19.2555 > -4.625000 -1.51158 19.483 > -4.375000 28.0305 19.1328 > -4.125000 16.8634 19.4476 > -3.875000 -6.06664 19.6773 > -3.625000 17.5673 19.3519 > -3.375000 18.0013 19.2891 > -3.125000 0.0122975 19.2632 > -2.875000 -8.8495 19.2595 > -2.625000 -2.269 19.2171 > -2.375000 -1.83825 19.154 > -2.125000 -18.7014 19.1244 > -1.875000 13.1121 19.0246 > -1.625000 2.73537 19.6297 > -1.375000 -14.1883 19.448 > -1.125000 4.21429 19.2307 > -0.875000 -26.4092 19.1161 > -0.625000 -37.6974 19.2017 > -0.375000 -85.1394 19.0828 > -0.125000 -123.675 19.1227 > 0.125000 -97.6141 19.5093 > 0.375000 -61.8173 19.2825 > 0.625000 -12.6419 19.5097 > 0.875000 -22.5329 19.3263 > 1.125000 -6.85978 19.3608 > 1.375000 3.64534 19.7056 > 1.625000 17.0031 19.2862 > 1.875000 -14.6644 19.535 > 2.125000 -20.5573 18.9344 > 2.375000 5.01405 19.1549 > 2.625000 1.62057 19.3475 > 2.875000 -18.1711 19.2898 > 3.125000 -5.51773 19.3767 > 3.375000 1.84787 19.3669 > 3.625000 -8.84978 19.2802 > 3.875000 -5.60688 19.3258 > 4.125000 -13.3567 19.3979 > 4.375000 -8.71397 19.0163 > 4.625000 -25.7126 19.6368 > 4.875000 2.9404 19.0503 > > -------------------------------------------------------------------------------- > > Name: fit_res.ps > fit_res.ps Type: Postscript Document (Application/Postscript) > Encoding: quoted-printable Double_t fgaus(Double_t *x, Double_t *par) { Double_t arg = (x[0] - par[1])/par[2]; return par[0]*TMath::Exp(-0.5*arg*arg); } void gsigma() { TGraphErrors *gr = new TGraphErrors(40); gr->SetPoint( 0,-4.875000, 11.2877); gr->SetPointError( 0, 0, 19.2555); gr->SetPoint( 1,-4.625000, -1.51158); gr->SetPointError( 1, 0, 19.483); gr->SetPoint( 2,-4.375000, 28.0305); gr->SetPointError( 2, 0, 19.1328); gr->SetPoint( 3,-4.125000, 16.8634); gr->SetPointError( 3, 0, 19.4476); gr->SetPoint( 4,-3.875000, -6.06664); gr->SetPointError( 4, 0, 19.6773); gr->SetPoint( 5,-3.625000, 17.5673); gr->SetPointError( 5, 0, 19.3519); gr->SetPoint( 6,-3.375000, 18.0013); gr->SetPointError( 6, 0, 19.2891); gr->SetPoint( 7,-3.125000, 0.0122975);gr->SetPointError( 7, 0, 19.2632); gr->SetPoint( 8,-2.875000, -8.8495); gr->SetPointError( 8, 0, 19.2595); gr->SetPoint( 9,-2.625000, -2.269); gr->SetPointError( 9, 0, 19.2171); gr->SetPoint(10,-2.375000, -1.83825); gr->SetPointError(10, 0, 19.154); gr->SetPoint(11,-2.125000, -18.7014); gr->SetPointError(11, 0, 19.1244); gr->SetPoint(12,-1.875000, 13.1121); gr->SetPointError(12, 0, 19.0246); gr->SetPoint(13,-1.625000, 2.73537); gr->SetPointError(13, 0, 19.6297); gr->SetPoint(14,-1.375000, -14.1883); gr->SetPointError(14, 0, 19.448); gr->SetPoint(15,-1.125000, 4.21429); gr->SetPointError(15, 0, 19.2307); gr->SetPoint(16,-0.875000, -26.4092); gr->SetPointError(16, 0, 19.1161); gr->SetPoint(17,-0.625000, -37.6974); gr->SetPointError(17, 0, 19.2017); gr->SetPoint(18,-0.375000, -85.1394); gr->SetPointError(18, 0, 19.0828); gr->SetPoint(19,-0.125000, -123.675); gr->SetPointError(19, 0, 19.1227); gr->SetPoint(20,0.125000, -97.6141); gr->SetPointError(20, 0, 19.5093); gr->SetPoint(21,0.375000, -61.8173); gr->SetPointError(21, 0, 19.2825); gr->SetPoint(22,0.625000, -12.6419); gr->SetPointError(22, 0, 19.5097); gr->SetPoint(23,0.875000, -22.5329); gr->SetPointError(23, 0, 19.3263); gr->SetPoint(24,1.125000, -6.85978); gr->SetPointError(24, 0, 19.3608); gr->SetPoint(25,1.375000, 3.64534); gr->SetPointError(25, 0, 19.7056); gr->SetPoint(26,1.625000, 17.0031); gr->SetPointError(26, 0, 19.2862); gr->SetPoint(27,1.875000, -14.6644); gr->SetPointError(27, 0, 19.535); gr->SetPoint(28,2.125000, -20.5573); gr->SetPointError(28, 0, 18.9344); gr->SetPoint(29,2.375000, 5.01405); gr->SetPointError(29, 0, 19.1549); gr->SetPoint(30,2.625000, 1.62057); gr->SetPointError(30, 0, 19.3475); gr->SetPoint(31,2.875000, -18.1711); gr->SetPointError(31, 0, 19.2898); gr->SetPoint(32,3.125000, -5.51773); gr->SetPointError(32, 0, 19.3767); gr->SetPoint(33,3.375000, 1.84787); gr->SetPointError(33, 0, 19.3669); gr->SetPoint(34,3.625000, -8.84978); gr->SetPointError(34, 0, 19.2802); gr->SetPoint(35,3.875000, -5.60688); gr->SetPointError(35, 0, 19.3258); gr->SetPoint(36,4.125000, -13.3567); gr->SetPointError(36, 0, 19.3979); gr->SetPoint(37,4.375000, -8.71397); gr->SetPointError(37, 0, 19.0163); gr->SetPoint(38,4.625000, -25.7126); gr->SetPointError(38, 0, 19.6368); gr->SetPoint(39,4.875000, 2.9404); gr->SetPointError(39, 0, 19.0503); TCanvas *c1 = new TCanvas("c1","c1",10,10,600,700); c1->SetGrid(); gr->SetMarkerStyle(20); TF1 *f1 = new TF1("f1",fgaus,-4,4,3); f1->SetParameters(-100,0,1); gStyle->SetOptFit(1111); gr->Fit(f1); gr->Draw("ap"); }
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:42 MET