void Function()
{
auto &r = ROOT::R::TRInterface::Instance();
r.SetVerbose(1);
TRFunctionImport rlist("list");
TRFunctionImport asformula("as.formula");
TRFunctionImport nls("nls");
TRFunctionImport confint("confint");
TRFunctionImport summary("summary");
TRFunctionImport print("print");
TRFunctionImport plot("plot");
TRFunctionImport lines("lines");
TRFunctionImport devnew("dev.new");
TRFunctionImport devoff("dev.off");
TRFunctionImport devcur("dev.cur");
TRFunctionImport rmin("min");
TRFunctionImport rmax("max");
TRFunctionImport seq("seq");
TRFunctionImport predict("predict");
r<<"options(device='pdf')";
TRObject xdata =
c(-2,-1.64,-1.33,-0.7,0,0.45,1.2,1.64,2.32,2.9);
TRObject ydata =
c(0.699369,0.700462,0.695354,1.03905,1.97389,2.41143,1.91091,0.919576,-0.730975,-1.42001);
data["xdata"]=xdata;
data["ydata"]=ydata;
TRObject fit = nls(asformula(
"ydata ~ p1*cos(p2*xdata) + p2*sin(p1*xdata)"),
Label[
"data"]=data,
Label[
"start"]=rlist(
Label[
"p1"]=1,
Label[
"p2"]=0.2));
print(summary(fit));
print(confint(fit));
devnew("Fitting Regression");
plot(xdata,ydata);
TRObject xgrid=seq(rmin(xdata),rmax(xdata),
Label[
"len"]=10);
lines(xgrid,predict(fit,xgrid),
Label[
"col"] =
"green");
devoff(
Label[
"which"] = devcur() );
}
}