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
    Modifier and Type | Method and Description
    --- | ---
    `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

Copyright (c) 2003-2013 Apache Software Foundation