Hello all
After making a succesfull fit using the MultiDimFit class, i printed the output function using fit->Print("m"); and i found that there were diferences in the powers shown between fit->Print("m") and fit->Print("c");
Using Print("m") (bad results after testing the fit)
Parameterization:
y_0 = 1 + 2 * (x_0 - 1) / (1 - -1) y_1 = 1 + 2 * (x_1 - 1) / (1 - -1) f(y_0, y_1) = 0.6374
+ 28.69 * y_0
- 0.4414 * y_0^3
+ 0.005439 * y_0 * y_1^3
+ 14.73 * y_0^4
+ 19.87 * y_1^5
+ 0.5973 * y_0^3 * y_1^3
- 0.1731 * y_0^5 - 22.42 * y_0^6 - 17.31 * y_1^7
+ 0.2964 * y_1
- 3.186 * y_1^3 - 0.2975 * y_1^4
Using Print("c") (good results after testing the fit, same results when using fit->Eval(x) method)
Coefficients:
# Value Error Powers
0 0.6374 0.3363 0 0 1 28.69 1.419 1 0 2 -0.4414 2.462 2 0 3 0.005439 0.8616 1 2 4 14.73 10.56 3 0 5 19.87 75.6 0 4 6 0.5973 1.171 2 2 7 -0.1731 2.452 4 0 8 -22.42 9.288 5 0 9 -17.31 65.37 0 6 10 0.2964 0.63 0 1 11 -3.186 10.77 0 2 12 -0.2975 0.7781 0 3
If i look in the TMultiDimFit source and i search what it does when "m" option it is selected there is a part in the code after the switch(fPolyType) that i think it should be using p-1 instead of p, because TMultiDimFit stores power+1.
Now
for (Int_t j = 0; j < fNVariables; j++) { Int_t p = fPowers[fPowerIndex[i] * fNVariables + j]; switch (p) { case 1: break; case 2: cout << " * y_" << j; break; default: switch(fPolyType) { case kLegendre: cout << " * L_" << p << "(y_" << j << ")"; break; case kChebyshev: cout << " * C_" << p << "(y_" << j << ")"; break; default: cout << " * y_" << j << "^" << p; break; } } }
I think it should be
for (Int_t j = 0; j < fNVariables; j++) { Int_t p = fPowers[fPowerIndex[i] * fNVariables + j]; switch (p) { case 1: break; case 2: cout << " * y_" << j; break; default: switch(fPolyType) { case kLegendre: cout << " * L_" << p-1 << "(y_" << j << ")"; break; case kChebyshev: cout << " * C_" << p-1 << "(y_" << j << ")"; break; default: cout << " * y_" << j << "^" << p-1; break; } } }
Anyway i am not really really sure of that.
I am using ROOT 4.02 but i looked also at 5.02/00 source to be sure and i found the same.
Thank you
Marcos Received on Mon Jul 11 2005 - 20:49:04 MEST
This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:10 MET