org.apache.commons.math3.analysis.solvers

## Class AbstractUnivariateDifferentiableSolver

- java.lang.Object
- - org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver<UnivariateDifferentiableFunction>
  - - org.apache.commons.math3.analysis.solvers.AbstractUnivariateDifferentiableSolver

All Implemented Interfaces:
  BaseUnivariateSolver<UnivariateDifferentiableFunction>, UnivariateDifferentiableSolver

Direct Known Subclasses:
  NewtonRaphsonSolver

    public abstract class AbstractUnivariateDifferentiableSolver
    extends BaseAbstractUnivariateSolver<UnivariateDifferentiableFunction>
    implements UnivariateDifferentiableSolver

Provide a default implementation for several functions useful to generic solvers.

Since:
  3.1
Version:
  $Id: AbstractUnivariateDifferentiableSolver.java 1383441 2012-09-11 14:56:39Z luc $

### Field Summary

Fields
`private UnivariateDifferentiableFunction` `function` Function to solve.

### Constructor Summary

Constructors
`protected` `AbstractUnivariateDifferentiableSolver(double absoluteAccuracy)` Construct a solver with given absolute accuracy.
`protected` `AbstractUnivariateDifferentiableSolver(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy)` Construct a solver with given accuracies.

### Method Summary

Methods
`protected DerivativeStructure` `computeObjectiveValueAndDerivative(double point)` Compute the objective function value.
`protected void` `setup(int maxEval, UnivariateDifferentiableFunction f, double min, double max, double startValue)` Prepare for computation.

### Methods inherited from class org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver

`computeObjectiveValue, doSolve, getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMax, getMaxEvaluations, getMin, getRelativeAccuracy, getStartValue, incrementEvaluationCount, isBracketing, isSequence, solve, solve, solve, verifyBracketing, verifyInterval, verifySequence`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.commons.math3.analysis.solvers.BaseUnivariateSolver

`getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMaxEvaluations, getRelativeAccuracy, solve, solve, solve`

### Field Detail

#### function

    private UnivariateDifferentiableFunction function

Function to solve.

### Constructor Detail

#### AbstractUnivariateDifferentiableSolver

    protected AbstractUnivariateDifferentiableSolver(double absoluteAccuracy)

Construct a solver with given absolute accuracy.

Parameters:
  `absoluteAccuracy` - Maximum absolute error.

#### AbstractUnivariateDifferentiableSolver

    protected AbstractUnivariateDifferentiableSolver(double relativeAccuracy,
                                          double absoluteAccuracy,
                                          double functionValueAccuracy)

Construct a solver with given accuracies.

Parameters:
  `relativeAccuracy` - Maximum relative error.
  `absoluteAccuracy` - Maximum absolute error.
  `functionValueAccuracy` - Maximum function value error.

### Method Detail

#### computeObjectiveValueAndDerivative

    protected DerivativeStructure computeObjectiveValueAndDerivative(double point)

Compute the objective function value.

Parameters:
  `point` - Point at which the objective function must be evaluated.
Returns:
  the objective function value and derivative at specified point.
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.

#### setup

    protected void setup(int maxEval,
             UnivariateDifferentiableFunction f,
             double min,
             double max,
             double startValue)

Prepare for computation. Subclasses must call this method if they override any of the `solve` methods.

Overrides:
  `setup` in class `BaseAbstractUnivariateSolver<UnivariateDifferentiableFunction>`
Parameters:
  `maxEval` - Maximum number of evaluations.
  `f` - Function to solve.
  `min` - Lower bound for the interval.
  `max` - Upper bound for the interval.
  `startValue` - Start value to use.