16 return 100*tmp1*tmp1+tmp2*tmp2;
24 grad[0]=-400 * x * (y - x *
x) - 2 * (1 - x);
25 grad[1]=200 * (y - x *
x);
44 r.
Execute(
"result <- optim( c(0.01,0.01), RosenBrock,method='BFGS',control = list(maxit = 1000000) )");
50 std::cout.precision(8);
52 std::cout<<
"-----------------------------------------"<<std::endl;
53 std::cout<<
"Minimum x="<<min[0]<<
" y="<<min[1]<<std::endl;
54 std::cout<<
"Value at minimum ="<<
RosenBrock(min)<<std::endl;
57 r.
Execute(
"optimHess(result$par, RosenBrock, RosenBrockGrad)");
58 r.
Execute(
"hresult <- optim(c(-1.2,1), RosenBrock, NULL, method = 'BFGS', hessian = TRUE)");
63 std::cout<<
"-----------------------------------------"<<std::endl;
64 std::cout<<
"Minimization with the Gradient"<<std::endl;
65 std::cout<<
"Minimum x="<<hmin[0]<<
" y="<<hmin[1]<<std::endl;
66 std::cout<<
"Value at minimum ="<<
RosenBrock(hmin)<<std::endl;
void Execute(const TString &code)
Method to eval R code.
static Vc_ALWAYS_INLINE int_v min(const int_v &x, const int_v &y)
Double_t RosenBrock(const TVectorD xx)
TVectorD RosenBrockGrad(const TVectorD xx)
static TRInterface & Instance()
static method to get an TRInterface instance reference
Int_t Eval(const TString &code, TRObject &ans)
Method to eval R code and you get the result in a reference to TRObject.
This is a class to pass functions from ROOT to R