Example of using multiroot finder based on GSL algorithm.
Find the root of Rosenbrock system of equations:
\[
f1(x,y) = a(1-x)
\]
\[
f2(x,y) = b(y-x^2)
\]
with:
\[
a = 1, b=10
\]
The MultiRootFinder is based on GSL and it requires the MathMore library installed
Usage:
or
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
where algoname is for an algorithm not using the derivatives: hybridS (default) , hybrid, dnewton, broyden
GSLMultiRootFinder::Solve:hybrids max iterations 100 and tolerance 1e-06
GSL Algorithm used is : hybrids
Number of iterations = 19
Root values = x[0] = 1 x[1] = 1
Function values = f[0] = 0 f[1] = -6.17162e-11
#include "RConfigure.h"
#ifdef R__HAS_MATHMORE
#else
#error libMathMore is not available - cannot run this tutorial
#endif
TF2 *
f1 =
new TF2(
"f1",
"[0]*(1-x)+[1]*y");
TF2 * f2 =
new TF2(
"f2",
"[0]*(y-x*x)");
double x0[2]={-1,-1};
}
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 r
Class for Multidimensional root finding algorithms bassed on GSL.
virtual void SetParameters(const Double_t *params)
virtual void SetParameter(Int_t param, Double_t value)
A 2-Dim function with parameters.
- Author
- Lorenzo Moneta
Definition in file exampleMultiRoot.C.