org.apache.commons.math.analysis.solvers

## Class NewtonSolver

- java.lang.Object
- - org.apache.commons.math.ConvergingAlgorithmImpl
  - - org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl
    - - org.apache.commons.math.analysis.solvers.NewtonSolver

All Implemented Interfaces:
  UnivariateRealSolver, ConvergingAlgorithm

    public class NewtonSolver
    extends UnivariateRealSolverImpl

Implements Newton's Method for finding zeros of real univariate functions.

The function should be continuous but not necessarily smooth.

Version:
  $Revision: 1070725 $ $Date: 2011-02-15 02:31:12 +0100 (mar. 15 févr. 2011) $

### Field Summary

### Fields inherited from class org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl

`defaultFunctionValueAccuracy, f, functionValue, functionValueAccuracy, result, resultComputed`

### Fields inherited from class org.apache.commons.math.ConvergingAlgorithmImpl

`absoluteAccuracy, defaultAbsoluteAccuracy, defaultMaximalIterationCount, defaultRelativeAccuracy, iterationCount, maximalIterationCount, relativeAccuracy`

### Constructor Summary

Constructors
Constructor and Description
`NewtonSolver()` Deprecated. in 2.2 (to be removed in 3.0).
`NewtonSolver(DifferentiableUnivariateRealFunction f)` Deprecated. as of 2.0 the function to solve is passed as an argument to the `solve(UnivariateRealFunction, double, double)` or `UnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)` method.

### Method Summary

Methods
`double` `solve(double min, double max)` Deprecated.
`double` `solve(double min, double max, double startValue)` Deprecated.
`double` `solve(int maxEval, UnivariateRealFunction f, double min, double max)` Find a zero near the midpoint of `min` and `max`.
`double` `solve(int maxEval, UnivariateRealFunction f, double min, double max, double startValue)` Find a zero near the value `startValue`.
`double` `solve(UnivariateRealFunction f, double min, double max)` Deprecated. in 2.2 (to be removed in 3.0).
`double` `solve(UnivariateRealFunction f, double min, double max, double startValue)` Deprecated. in 2.2 (to be removed in 3.0).

### Methods inherited from class org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl

`checkResultComputed, clearResult, getFunctionValue, getFunctionValueAccuracy, getResult, isBracketing, isSequence, resetFunctionValueAccuracy, setFunctionValueAccuracy, setResult, setResult, verifyBracketing, verifyInterval, verifySequence`

### Methods inherited from class org.apache.commons.math.ConvergingAlgorithmImpl

`getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, incrementIterationsCounter, resetAbsoluteAccuracy, resetIterationsCounter, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy`

### 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.math.ConvergingAlgorithm

`getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, resetAbsoluteAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy`

### Constructor Detail

#### NewtonSolver

    @Deprecated
    public NewtonSolver(DifferentiableUnivariateRealFunction f)

Deprecated. as of 2.0 the function to solve is passed as an argument to the `solve(UnivariateRealFunction, double, double)` or `UnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)` method.
Construct a solver for the given function.

Parameters:
  `f` - function to solve.

#### NewtonSolver

    @Deprecated
    public NewtonSolver()

Deprecated. in 2.2 (to be removed in 3.0).
Construct a solver.

### Method Detail

#### solve

    @Deprecated
    public double solve(double min,
                          double max)
                 throws MaxIterationsExceededException,
                        FunctionEvaluationException

Deprecated.
Solve for a zero root in the given interval.

A solver may require that the interval brackets a single zero root. Solvers that do require bracketing should be able to handle the case where one of the endpoints is itself a root.

Parameters:
  `min` - the lower bound for the interval.
  `max` - the upper bound for the interval.
Returns:
  a value where the function is zero
Throws:
  `FunctionEvaluationException` - if an error occurs evaluating the function
  `MaxIterationsExceededException`

#### solve

    @Deprecated
    public double solve(double min,
                          double max,
                          double startValue)
                 throws MaxIterationsExceededException,
                        FunctionEvaluationException

Deprecated.
Solve for a zero in the given interval, start at startValue.

A solver may require that the interval brackets a single zero root. Solvers that do require bracketing should be able to handle the case where one of the endpoints is itself a root.

Parameters:
  `min` - the lower bound for the interval.
  `max` - the upper bound for the interval.
  `startValue` - the start value to use
Returns:
  a value where the function is zero
Throws:
  `FunctionEvaluationException` - if an error occurs evaluating the function
  `MaxIterationsExceededException`

#### solve

    public double solve(int maxEval,
               UnivariateRealFunction f,
               double min,
               double max)
                 throws MaxIterationsExceededException,
                        FunctionEvaluationException

Find a zero near the midpoint of `min` and `max`.

Overrides:
  `solve` in class `UnivariateRealSolverImpl`
Parameters:
  `f` - the function to solve
  `min` - the lower bound for the interval
  `max` - the upper bound for the interval
  `maxEval` - Maximum number of evaluations.
Returns:
  the value where the function is zero
Throws:
  `MaxIterationsExceededException` - if the maximum iteration count is exceeded
  `FunctionEvaluationException` - if an error occurs evaluating the function or derivative
  `java.lang.IllegalArgumentException` - if min is not less than max

#### solve

    @Deprecated
    public double solve(UnivariateRealFunction f,
                          double min,
                          double max)
                 throws MaxIterationsExceededException,
                        FunctionEvaluationException

Deprecated. in 2.2 (to be removed in 3.0).
Find a zero near the midpoint of `min` and `max`.

Parameters:
  `f` - the function to solve
  `min` - the lower bound for the interval
  `max` - the upper bound for the interval
Returns:
  the value where the function is zero
Throws:
  `MaxIterationsExceededException` - if the maximum iteration count is exceeded
  `FunctionEvaluationException` - if an error occurs evaluating the function or derivative
  `java.lang.IllegalArgumentException` - if min is not less than max

#### solve

    public double solve(int maxEval,
               UnivariateRealFunction f,
               double min,
               double max,
               double startValue)
                 throws MaxIterationsExceededException,
                        FunctionEvaluationException

Find a zero near the value `startValue`.

Overrides:
  `solve` in class `UnivariateRealSolverImpl`
Parameters:
  `f` - the function to solve
  `min` - the lower bound for the interval (ignored).
  `max` - the upper bound for the interval (ignored).
  `startValue` - the start value to use.
  `maxEval` - Maximum number of evaluations.
Returns:
  the value where the function is zero
Throws:
  `MaxIterationsExceededException` - if the maximum iteration count is exceeded
  `FunctionEvaluationException` - if an error occurs evaluating the function or derivative
  `java.lang.IllegalArgumentException` - if startValue is not between min and max or if function is not a `DifferentiableUnivariateRealFunction` instance

#### solve

    @Deprecated
    public double solve(UnivariateRealFunction f,
                          double min,
                          double max,
                          double startValue)
                 throws MaxIterationsExceededException,
                        FunctionEvaluationException

Deprecated. in 2.2 (to be removed in 3.0).
Find a zero near the value `startValue`.

Parameters:
  `f` - the function to solve
  `min` - the lower bound for the interval (ignored).
  `max` - the upper bound for the interval (ignored).
  `startValue` - the start value to use.
Returns:
  the value where the function is zero
Throws:
  `MaxIterationsExceededException` - if the maximum iteration count is exceeded
  `FunctionEvaluationException` - if an error occurs evaluating the function or derivative
  `java.lang.IllegalArgumentException` - if startValue is not between min and max or if function is not a `DifferentiableUnivariateRealFunction` instance