jhplot.math.num.root
Class BrentRootFinder
- java.lang.Object
-
- jhplot.math.num.IterativeMethod
-
- jhplot.math.num.root.BrentRootFinder
-
public class BrentRootFinder extends IterativeMethod
Brent's method (1) for finding roots of functions.
For example, to find roots for sine, first a
Function
is defined:Function sine = new Function() { public double evaluate(double x) { return Math.sin(x); }} };
Then, a Brent's method root finder is created with the above function:
BrentRootFinder finder = new BrentRootFinder(sine);
Lastly, locating roots is accomplished using the
findRoot(double, double)
method:// find the root between 3 and 4. double pi = finder.findRoot(3.0, 4.0); // find the root between -1 and 1. double zero = finder.findRoot(-1.0, 1.0);
References:
- Wikipedia contributors, "Brent's method," Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Brent%27s_method&oldid=132341223
- Since:
- 1.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jhplot.math.num.IterativeMethod
IterativeMethod.IterativeState
-
-
Constructor Summary
Constructors Constructor and Description BrentRootFinder(Function f)
Create a root finder for the given function.BrentRootFinder(Function f, int iterations, double error)
Create a root finder for the given function.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description double
findRoot(double min, double max)
Find a root of the target function that lies between the two initial approximations, x0 and x1.Function
getFunction()
Access the target function.void
setFunction(Function f)
Modify the target function.-
Methods inherited from class jhplot.math.num.IterativeMethod
getMaximumIterations, getMaximumRelativeError, iterate, setMaximumIterations, setMaximumRelativeError
-
-
-
-
Constructor Detail
-
BrentRootFinder
public BrentRootFinder(Function f)
Create a root finder for the given function.- Parameters:
f
- the target function.
-
BrentRootFinder
public BrentRootFinder(Function f, int iterations, double error)
Create a root finder for the given function.- Parameters:
f
- the target function.iterations
- maximum number of iterations.error
- maximum relative error.
-
-
Method Detail
-
findRoot
public double findRoot(double min, double max) throws NumericException
Find a root of the target function that lies between the two initial approximations, x0 and x1.- Parameters:
min
- the lower bound of the search interval.max
- the upper bound of the search interval.- Returns:
- a root that lies between min and max, inclusive.
- Throws:
NumericException
- if a root could not be found.
-
getFunction
public Function getFunction()
Access the target function.- Returns:
- the target function.
-
setFunction
public void setFunction(Function f)
Modify the target function.- Parameters:
f
- the new target function.
-
-
DMelt 3.0 © DataMelt by jWork.ORG