public class NewtonFindRoot extends Object
| Constructor and Description |
|---|
NewtonFindRoot(RealValuedScalarFunction function,
double functionTolerance,
RealValuedScalarFunction derivativeFunction,
double derivativeTolerance,
double lowerBound,
double upperBound)
Initializes a new instance that can be used to find roots of a specified function.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
findRoot(int maxIterations)
Attempts the indicated number of iterations to locate the root of the function
to within the required convergence criteria.
|
RealValuedScalarFunction |
getDerivativeFunction()
Gets the derivative of
Function (get). |
double |
getDerivativeTolerance()
Gets the tolerance used to determine whether the derivative is zero for the purposes of
aborting the calculation and setting the
ResultType (get) to NewtonRootType.SOLVER_FAILED_DUE_TO_HORIZONTAL_SLOPE. |
double |
getDerivativeValue()
|
RealValuedScalarFunction |
getFunction()
Gets the evaluation function.
|
double |
getFunctionTolerance()
Gets the tolerance used to determine whether the function is zero and a root has been found.
|
double |
getFunctionValue()
|
int |
getIterations()
Gets the number of iterations taken.
|
double |
getLowerBound()
Gets the lower bound of the range of independent variables to search for the root within.
|
double |
getMaximumStepsize()
Gets the maximum size of the step to take during a single iteration.
|
NewtonRootType |
getResultType()
Gets the type of result the
Root (get) represents. |
double |
getRoot()
Gets the value of the root.
|
double |
getUpperBound()
Gets the upper bound of the range of independent variables to search for the root within.
|
double |
getVariableTolerance()
Gets the tolerance used to determine whether a root guess is the same as another root guess, used in
early detection of non-convergence.
|
void |
setDerivativeTolerance(double value)
Sets the tolerance used to determine whether the derivative is zero for the purposes of
aborting the calculation and setting the
ResultType (get) to NewtonRootType.SOLVER_FAILED_DUE_TO_HORIZONTAL_SLOPE. |
void |
setFunctionTolerance(double value)
Sets the tolerance used to determine whether the function is zero and a root has been found.
|
void |
setInitialGuessOfRootLocation(double guess)
Sets the initial guess of the root's location.
|
void |
setLowerBound(double value)
Sets the lower bound of the range of independent variables to search for the root within.
|
void |
setMaximumStepsize(double value)
Sets the maximum size of the step to take during a single iteration.
|
void |
setUpperBound(double value)
Sets the upper bound of the range of independent variables to search for the root within.
|
void |
setVariableTolerance(double value)
Sets the tolerance used to determine whether a root guess is the same as another root guess, used in
early detection of non-convergence.
|
public NewtonFindRoot(RealValuedScalarFunction function, double functionTolerance, RealValuedScalarFunction derivativeFunction, double derivativeTolerance, double lowerBound, double upperBound)
NewtonFindRoot.setInitialGuessOfRootLocation(double) must be called before NewtonFindRoot.findRoot(int). MaximumStepsize (get / set) is set to
an initial value of Double.MAX_VALUE, VariableTolerance (get / set) is set to an initial value of zero.function - The Function (get) to find the root of.functionTolerance - The FunctionTolerance (get / set) to use to determine whether the Function (get) is zero.derivativeFunction - The DerivativeFunction (get) of the function.derivativeTolerance - The DerivativeTolerance (get / set) to use to determine whether the DerivativeFunction (get) is zero.lowerBound - The lower bound of the region to search for the root within.upperBound - The upper bound of the region to search for the root within.public final boolean findRoot(int maxIterations)
maxIterations - The maximum number of iterations to perform.
If a solution has not been found after this number of iterations the Root (get) property is set to the guess
of the last iteration and ResultType (get) is set to NewtonRootType.SOLUTION_DID_NOT_CONVERGE.true if the root was found; otherwise false.public final double getFunctionTolerance()
public final void setFunctionTolerance(double value)
public final double getDerivativeTolerance()
ResultType (get) to NewtonRootType.SOLVER_FAILED_DUE_TO_HORIZONTAL_SLOPE.public final void setDerivativeTolerance(double value)
ResultType (get) to NewtonRootType.SOLVER_FAILED_DUE_TO_HORIZONTAL_SLOPE.public final double getVariableTolerance()
public final void setVariableTolerance(double value)
public final double getMaximumStepsize()
public final void setMaximumStepsize(double value)
public final int getIterations()
public final double getRoot()
ResultType (get) property
for whether the calculated root is the result of a finished calculation, or some other failure condition
such as the failure to converge in the allotted number of maximum iterations.public final void setInitialGuessOfRootLocation(double guess)
Root (get) to the provided guess, ResultType (get)
to NewtonRootType.INITIAL_GUESS and Iterations (get) is set to 0.
If Function (get) and/or DerivativeFunction (get) are non-null the method also assigns
assigns FunctionValue (get) and DerivativeValue (get) respectively.guess - The guess of the roots location.public final double getFunctionValue()
public final double getDerivativeValue()
@Nonnull public final NewtonRootType getResultType()
Root (get) represents.public final double getLowerBound()
public final void setLowerBound(double value)
public final double getUpperBound()
public final void setUpperBound(double value)
public final RealValuedScalarFunction getFunction()
public final RealValuedScalarFunction getDerivativeFunction()
Function (get).