input : minimizer name + algorithm name randomSeed: = <0 : fixed value: 0 random with seed 0; >0 random with given seed
import ROOT
import numpy as np
def RosenBrock(vecx):
x = vecx[0]
y = vecx[1]
return (y - x**2)**2 + (1 - x)**2
def NumericalMinimization(minimizerName="Minuit2",
algoName="",
randomSeed=-1):
if (not minimizer):
raise RuntimeError(
"Cannot create minimizer \"{}\". Maybe the required library was not built?".
format(minimizerName))
minimizer.SetMaxFunctionCalls(1000000)
minimizer.SetMaxIterations(10000)
minimizer.SetTolerance(0.001)
minimizer.SetPrintLevel(1)
x0 = np.array([-1., 2.])
print(
"f(-1,1.2) = ",
f(x0))
variable = [-1., 1.2]
step = [0.01, 0.01]
if (randomSeed >= 0):
r = ROOT.TRandom2(randomSeed)
variable[0] = r.Uniform(-20, 20)
variable[1] = r.Uniform(-20, 20)
minimizer.SetFunction(f)
minimizer.SetVariable(0, "x", variable[0], step[0])
minimizer.SetVariable(1, "y", variable[1], step[1])
ret = minimizer.Minimize()
xs = minimizer.X()
print(
"Minimum: f({} , {}) = {}".
format(xs[0],xs[1],minimizer.MinValue()))
if (ret and minimizer.MinValue() < 1.E-4):
print(
"Minimizer {} - {} converged to the right minimum!".
format(minimizerName, algoName))
else:
print(
"Minimizer {} - {} failed to converge !!!".
format(minimizerName, algoName))
raise RuntimeError("NumericalMinimization failed to converge!")
if __name__ == "__main__":
NumericalMinimization()
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
static ROOT::Math::Minimizer * CreateMinimizer(const std::string &minimizerType="", const std::string &algoType="")
static method to create the corresponding Minimizer given the string Supported Minimizers types are: ...
Documentation for class Functor class.