I’m attempting to perform numerical minimization, as in https://root.cern.ch/doc/master/NumericalMinimization_8C.html.
Firstly, how can one pass constants to the objective function (e.g. I may wish to minimize some function with a constant parameter that may be set, such as the constants a and b in the Rosenbrock function)?
It looks like SetFixedVariable may be used for this. Is it possible to pass constants by other means (in my case, I may want to pass a std::vector of TVector3’s to the objective function, which will operate on their components, the result of which will ultimately become mathematical constants of the function)?
Secondly, is there a clean way to set a large number of free variables? Currently, I have an array of 12 free variables, and I set them with 12 lines like:
minimizer->SetVariable(0, 'x1', variable[0], step[0]);
...
minimizer->SetVariable(11, 'x11', variable[11], step[11]);
I see SetVariables() in the docs, however I don’t understand it’s usage. It would be nice to e.g. be able to simply pass the array of initial estimates.