Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
RootFinderAlgorithms.h
Go to the documentation of this file.
1// @(#)root/mathmore:$Id$
2// Author: L. Moneta, A. Zsenei 08/2005
3
4 /**********************************************************************
5 * *
6 * Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT *
7 * *
8 * This library is free software; you can redistribute it and/or *
9 * modify it under the terms of the GNU General Public License *
10 * as published by the Free Software Foundation; either version 2 *
11 * of the License, or (at your option) any later version. *
12 * *
13 * This library is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16 * General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this library (see file COPYING); if not, write *
20 * to the Free Software Foundation, Inc., 59 Temple Place, Suite *
21 * 330, Boston, MA 02111-1307 USA, or contact the author. *
22 * *
23 **********************************************************************/
24
25// Header file for GSL ROOT Finder Algorithms
26//
27// Created by: moneta at Sun Nov 14 14:07:50 2004
28//
29// Last update: Sun Nov 14 14:07:50 2004
30//
31#ifndef ROOT_Math_GSLRootFinderAlgorithms
32#define ROOT_Math_GSLRootFinderAlgorithms
33
34
35#include "Math/GSLRootFinder.h"
36
38
39namespace ROOT {
40namespace Math {
41
42 /**
43 Root-Finding Algorithms
44
45 */
46
47namespace Roots {
48
49//________________________________________________________________________________________________________
50 /**
51 Roots::Bisection
52 Bisection algorithm, simplest algorithm for bracketing the roots of a function, but slowest one.
53 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Bracketing-Algorithms.html">GSL manual</A> for more information
54 @ingroup RootFinders
55 */
56
57 class Bisection : public GSLRootFinder {
58
59 public:
60
61 Bisection();
62 ~Bisection() override;
63 };
64
65//________________________________________________________________________________________________________
66 /**
67 False Position algorithm based on linear interpolation.
68 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Bracketing-Algorithms.html">GSL manual</A> for more information
69 @ingroup RootFinders
70 */
71
72 class FalsePos : public GSLRootFinder {
73
74 public:
75
76 FalsePos();
77 ~FalsePos() override;
78 };
79
80
81
82//________________________________________________________________________________________________________
83 /**
84 Brent-Dekker algorithm which combines an interpolation strategy with the bisection algorithm
85 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Bracketing-Algorithms.html">
86 GSL manual</A> for more information
87
88 @ingroup RootFinders
89 */
90
91 class Brent : public GSLRootFinder {
92
93 public:
94
95 Brent();
96 ~Brent() override;
97 };
98
99
100 //----------------------------------------------------------------------
101 // algorithm with derivatives
102 //----------------------------------------------------------------------
103
104//________________________________________________________________________________________________________
105 /**
106 a Newton algorithm, which computes the derivative at each iteration
107 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Finding-Algorithms-using-Derivatives.html">
108 GSL manual</A> for more information
109
110 @ingroup RootFinders
111 */
112
113 class Newton : public GSLRootFinderDeriv {
114
115 public:
116
117 Newton();
118 ~Newton() override;
119 };
120
121
122//________________________________________________________________________________________________________
123 /**
124 \a Secant algorithm, simplified version of Newton method, which does not require the derivative at every step.
125 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Finding-Algorithms-using-Derivatives.html">
126 GSL manual</A> for more information
127 @ingroup RootFinders
128 */
129
130 class Secant : public GSLRootFinderDeriv {
131
132 public:
133
134 Secant();
135 ~Secant() override;
136 };
137
138//________________________________________________________________________________________________________
139 /**
140 \a Steffenson method, providing the fastes convergence.
141 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Finding-Algorithms-using-Derivatives.html">
142 GSL manual</A> for more information
143
144 @ingroup RootFinders
145 */
146
148
149 public:
150
151 Steffenson();
152 ~Steffenson() override;
153 };
154
155
156}
157
158} // namespace Math
159} // namespace ROOT
160
161
162#endif /* ROOT_Math_GSLRootFinderAlgorithms */
Root-Finding Algorithms.