jhplot.math.num.root
Class SecantRootFinder
- java.lang.Object
-
- jhplot.math.num.IterativeMethod
-
- jhplot.math.num.root.SecantRootFinder
-
public class SecantRootFinder extends IterativeMethod
The secant 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 secant root finder is created with the above function:
SecantRootFinder finder = new SecantRootFinder(sine);
Lastly, locating roots is accomplished using the
findRoot(double, double)
method:// find the root around 3 and 4. double pi = finder.findRoot(3.0, 4.0); // find the root around 3.5 and 4. pi = finder.findRoot(3.5, 4.0); // find the root around -1 and 1. double zero = finder.findRoot(-1.0, 1.0);
References:
- Eric W. Weisstein. "Secant Method." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/SecantMethod.html
- Since:
- 1.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jhplot.math.num.IterativeMethod
IterativeMethod.IterativeState
-
-
Constructor Summary
Constructors Constructor and Description SecantRootFinder(Function f)
Create a root finder for the given function.SecantRootFinder(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 x0, double x1)
Find a root of the target function that lies around 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
-
SecantRootFinder
public SecantRootFinder(Function f)
Create a root finder for the given function.- Parameters:
f
- the target function.
-
SecantRootFinder
public SecantRootFinder(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 x0, double x1) throws NumericException
Find a root of the target function that lies around the two initial approximations, x0 and x1.- Parameters:
x0
- an initial approximation to the root.x1
- another initial approximation to the root.- Returns:
- a root that lies close to x0 and x1.
- 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