org.apache.commons.math.analysis
Class SecantSolver
java.lang.Object
org.apache.commons.math.analysis.UnivariateRealSolverImpl
org.apache.commons.math.analysis.SecantSolver
- All Implemented Interfaces:
- Serializable, UnivariateRealSolver
public class SecantSolver
- extends UnivariateRealSolverImpl
- implements Serializable
Implements a modified version of the
secant method
for approximating a zero of a real univariate function.
The algorithm is modified to maintain bracketing of a root by successive
approximations. Because of forced bracketing, convergence may be slower than
the unrestricted secant algorithm. However, this implementation should in
general outperform the
regula falsi method.
The function is assumed to be continuous but not necessarily smooth.
- Version:
- $Revision: 348519 $ $Date: 2005-11-23 12:12:18 -0700 (Wed, 23 Nov 2005) $
- See Also:
- Serialized Form
Fields inherited from class org.apache.commons.math.analysis.UnivariateRealSolverImpl |
absoluteAccuracy, defaultAbsoluteAccuracy, defaultFunctionValueAccuracy, defaultMaximalIterationCount, defaultRelativeAccuracy, f, functionValueAccuracy, iterationCount, maximalIterationCount, relativeAccuracy, result, resultComputed |
Method Summary |
double |
solve(double min,
double max)
Find a zero in the given interval. |
double |
solve(double min,
double max,
double initial)
Find a zero in the given interval. |
Methods inherited from class org.apache.commons.math.analysis.UnivariateRealSolverImpl |
clearResult, getAbsoluteAccuracy, getFunctionValueAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, getResult, isBracketing, isSequence, resetAbsoluteAccuracy, resetFunctionValueAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setFunctionValueAccuracy, setMaximalIterationCount, setRelativeAccuracy, setResult, verifyBracketing, verifyInterval, verifySequence |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SecantSolver
public SecantSolver(UnivariateRealFunction f)
- Construct a solver for the given function.
- Parameters:
f
- function to solve.
solve
public double solve(double min,
double max,
double initial)
throws ConvergenceException,
FunctionEvaluationException
- Find a zero in the given interval.
- Specified by:
solve
in interface UnivariateRealSolver
- Parameters:
min
- the lower bound for the intervalmax
- the upper bound for the intervalinitial
- the start value to use (ignored)
- Returns:
- the value where the function is zero
- Throws:
ConvergenceException
- if the maximum iteration count is exceeded
FunctionEvaluationException
- if an error occurs evaluating the
function
IllegalArgumentException
- if min is not less than max or the
signs of the values of the function at the endpoints are not opposites
solve
public double solve(double min,
double max)
throws ConvergenceException,
FunctionEvaluationException
- Find a zero in the given interval.
- Specified by:
solve
in interface UnivariateRealSolver
- Parameters:
min
- the lower bound for the interval.max
- the upper bound for the interval.
- Returns:
- the value where the function is zero
- Throws:
ConvergenceException
- if the maximum iteration count is exceeded
FunctionEvaluationException
- if an error occurs evaluating the
function
IllegalArgumentException
- if min is not less than max or the
signs of the values of the function at the endpoints are not opposites
Copyright © 2003-2009 The Apache Software Foundation. All Rights Reserved.