LifeV
NonLinearBrent.hpp File Reference

Implementation of Brent's method for root finding. More...

#include <limits>
#include <lifev/core/LifeV.hpp>
+ Include dependency graph for NonLinearBrent.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 LifeV
 Default Physical Solver.
 

Functions

template<class Function >
Real NonLinearBrent (const Function &f, const Real &leftExtremeBase, const Real &rightExtremeBase, const Real &toll, const UInt &maxIter)
 Implementation of Brent's method for root finding. More...
 

Detailed Description

Implementation of Brent's method for root finding.

Author
Alessio Fumagalli aless.nosp@m.io.f.nosp@m.umaga.nosp@m.lli@.nosp@m.mail..nosp@m.poli.nosp@m.mi.it
Date
Contributor:
Alessandro Melani aless.nosp@m.andr.nosp@m.o.mel.nosp@m.ani@.nosp@m.mail..nosp@m.poli.nosp@m.mi.it Alessandro Melani aless.nosp@m.andr.nosp@m.o.mel.nosp@m.ani@.nosp@m.mail..nosp@m.poli.nosp@m.mi.it

Brent's method is a root-finding algorithm combining the bisection method, the secant method and inverse quadratic interpolation. It has the reliability of bisection but it can be as quick as some of the less reliable methods. The idea is to use the secant method or inverse quadratic interpolation if possible, because they converge faster, but to fall back to the more robust bisection method if necessary.

See also
Chapter 4 of R.P. Brent, "Algorithms for Minimization without Derivatives", Prentice-Hall, Englewood Cliffs, NJ. 1973

Definition in file NonLinearBrent.hpp.