//рис.1d нижний левый 4 Double_t NBD(Double_t *x, Double_t *par) { //par - массив параметров //x[0] - координата x (а не ординаты точек, по которым идет фитирование) Double_t xx = x[0]; Double_t f = par[0]*(TMath::Gamma(xx+par[1])/(TMath::Gamma(xx+1)*TMath::Gamma(par[1])))*(TMath::Power((par[2]/par[1]),xx))*(TMath::Power((1+(par[2]/par[1])),-xx-par[1])); return f; } //------------------------------------------------- void fit_mn_NBD_Ec() { float Epos_c[55] = { 61.0, 92.0, 123.0, 189.0, 258.0, 399.0, 520.0, 736.0, 925.0, 1185.0, 1529.0, 1812.0, 2207.0, 2540.0, 2912.0, 3216.0, 3463.0, 3805.0, 4128.0, 4221.0, 4422.0, 4557.0, 4699.0, 4357.0, 4456.0, 4371.0, 4198.0, 3997.0, 3737.0, 3431.0, 3237.0, 2925.0, 2583.0, 2328.0, 2093.0, 1805.0, 1567.0, 1256.0, 1139.0, 909.0, 827.0, 649.0, 470.0, 411.0, 293.0, 211.0, 166.0, 142.0, 111.0, 72.0, 56.0, 31.0, 23.0, 20.0, 13.0, }; float dEpos_c[55] = { }; for (int i = 1 ; i < 55 ; i++ ){ dEpos_c[i] = 0; }; float k1[55] = { 120, 126, 132, 138, 144, 150, 156, 162, 168, 174, 180, 186, 192, 198, 204, 210, 216, 222, 228, 234, 240, 246, 252, 258, 264, 270, 276, 282, 288, 294, 300, 306, 312, 318, 324, 330, 336, 342, 348, 354, 360, 366, 372, 378, 384, 390, 396, 402, 408, 414, 420, 426, 432, 438, 444, }; int max = Epos_c[0]; TCanvas *c1 = new TCanvas("c1","canvas",800,600); c1->Divide(1,1); TVirtualPad *pad = c1->cd(1); pad->SetLogy(); TGraphErrors *gr2=new TGraphErrors(55, k1 , Epos_c,0,dEpos_c); gr2->SetMarkerColor(2); gr2->SetMarkerStyle(22); gr2->SetMarkerSize(1.0); gr2->Draw("AP"); TF1 * nb1 =new TF1("nb1",NBD,120,444,3); nb1->SetParameters(2,2,2); nb1->SetParLimits(1,0.001,100000); nb1->SetParLimits(1,0.001,100000); gStyle->SetOptFit(kTRUE); gr2->Fit("nb1","R","elp"); }