24 TLinearFitter *lf=
new TLinearFitter(5);
27 lf->SetFormula(
"hyp5");
29 Double_t *x=
new Double_t[n*10*5];
30 Double_t *y=
new Double_t[n*10];
31 Double_t *e=
new Double_t[n*10];
35 x[0 + i*5] = randNum.Uniform(-10, 10);
36 x[1 + i*5] = randNum.Uniform(-10, 10);
37 x[2 + i*5] = randNum.Uniform(-10, 10);
38 x[3 + i*5] = randNum.Uniform(-10, 10);
39 x[4 + i*5] = randNum.Uniform(-10, 10);
41 y[i] = 4*x[0+i*5] + x[1+i*5] + 2*x[2+i*5] + 3*x[3+i*5] + 0.2*x[4+i*5] + randNum.Gaus()*e[i];
45 lf->AssignData(n, 5, x, y, e);
54 lf->GetParameters(params);
55 lf->GetErrors(errors);
56 for (Int_t i=0; i<6; i++)
57 printf(
"par[%d]=%f+-%f\n", i, params(i), errors(i));
58 Double_t chisquare=lf->GetChisquare();
59 printf(
"chisquare=%f\n", chisquare);
63 for (i=n; i<n*2; i++) {
64 x[0+i*5] = randNum.Uniform(-10, 10);
65 x[1+i*5] = randNum.Uniform(-10, 10);
66 x[2+i*5] = randNum.Uniform(-10, 10);
67 x[3+i*5] = randNum.Uniform(-10, 10);
68 x[4+i*5] = randNum.Uniform(-10, 10);
70 y[i] = 4*x[0+i*5] + x[1+i*5] + 2*x[2+i*5] + 3*x[3+i*5] + 0.2*x[4+i*5] + randNum.Gaus()*e[i];
74 lf->AssignData(n*2, 5, x, y, e);
76 lf->GetParameters(params);
77 lf->GetErrors(errors);
78 printf(
"\nMore Points:\n");
79 for (Int_t i=0; i<6; i++)
80 printf(
"par[%d]=%f+-%f\n", i, params(i), errors(i));
81 chisquare=lf->GetChisquare();
82 printf(
"chisquare=%.15f\n", chisquare);
88 lf->SetFormula(
"x0++x1++x2++x3++x4");
91 lf->GetParameters(params);
92 lf->GetErrors(errors);
93 printf(
"\nWithout Constant\n");
94 for (Int_t i=0; i<5; i++)
95 printf(
"par[%d]=%f+-%f\n", i, params(i), errors(i));
96 chisquare=lf->GetChisquare();
97 printf(
"chisquare=%f\n", chisquare);
101 lf->SetFormula(
"hyp5");
102 lf->FixParameter(1, 4);
104 lf->GetParameters(params);
105 lf->GetErrors(errors);
106 printf(
"\nFixed Constant:\n");
108 printf(
"par[%d]=%f+-%f\n", i, params(i), errors(i));
109 chisquare=lf->GetChisquare();
110 printf(
"chisquare=%.15f\n", chisquare);