Repository: commons-math Updated Branches: refs/heads/master 859de3fcb -> 68e6de351
Javadoc MATH-1201 Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/c7fcb448 Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/c7fcb448 Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/c7fcb448 Branch: refs/heads/master Commit: c7fcb448c99ae5fe9db9b217bea1233df3ee6e57 Parents: 859de3f Author: Gilles <[email protected]> Authored: Wed Feb 4 13:56:35 2015 +0100 Committer: Gilles <[email protected]> Committed: Wed Feb 4 13:56:35 2015 +0100 ---------------------------------------------------------------------- .../solvers/BaseAbstractUnivariateSolver.java | 10 +++++++--- .../commons/math3/analysis/solvers/BrentSolver.java | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/c7fcb448/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java b/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java index 6aeba90..4fb9ecf 100644 --- a/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java +++ b/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java @@ -29,6 +29,10 @@ import org.apache.commons.math3.util.MathUtils; /** * Provide a default implementation for several functions useful to generic * solvers. + * The default values for relative and function tolerances are 1e-14 + * and 1e-15, respectively. It is however highly recommended to not + * rely on the default, but rather carefully consider values that match + * user's expectations, as well as the specifics of each implementation. * * @param <FUNC> Type of function to solve. * @@ -75,7 +79,7 @@ public abstract class BaseAbstractUnivariateSolver<FUNC extends UnivariateFuncti * @param absoluteAccuracy Maximum absolute error. */ protected BaseAbstractUnivariateSolver(final double relativeAccuracy, - final double absoluteAccuracy) { + final double absoluteAccuracy) { this(relativeAccuracy, absoluteAccuracy, DEFAULT_FUNCTION_VALUE_ACCURACY); @@ -89,8 +93,8 @@ public abstract class BaseAbstractUnivariateSolver<FUNC extends UnivariateFuncti * @param functionValueAccuracy Maximum function value error. */ protected BaseAbstractUnivariateSolver(final double relativeAccuracy, - final double absoluteAccuracy, - final double functionValueAccuracy) { + final double absoluteAccuracy, + final double functionValueAccuracy) { this.absoluteAccuracy = absoluteAccuracy; this.relativeAccuracy = relativeAccuracy; this.functionValueAccuracy = functionValueAccuracy; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c7fcb448/src/main/java/org/apache/commons/math3/analysis/solvers/BrentSolver.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math3/analysis/solvers/BrentSolver.java b/src/main/java/org/apache/commons/math3/analysis/solvers/BrentSolver.java index d9c4023..f9da26e 100644 --- a/src/main/java/org/apache/commons/math3/analysis/solvers/BrentSolver.java +++ b/src/main/java/org/apache/commons/math3/analysis/solvers/BrentSolver.java @@ -29,10 +29,19 @@ import org.apache.commons.math3.util.Precision; * The function should be continuous but not necessarily smooth. * The {@code solve} method returns a zero {@code x} of the function {@code f} * in the given interval {@code [a, b]} to within a tolerance - * {@code 6 eps abs(x) + t} where {@code eps} is the relative accuracy and + * {@code 2 eps abs(x) + t} where {@code eps} is the relative accuracy and * {@code t} is the absolute accuracy. * The given interval must bracket the root. + * <p> + * The reference implementation is given in chapter 4 of + * <quote> + * <b>Algorithms for Minimization Without Derivatives</b><br> + * <em>Richard P. Brent</em><br> + * Dover, 2002<br> + * </quote> + * </p> * + * @see BaseAbstractUnivariateSolver */ public class BrentSolver extends AbstractUnivariateSolver { @@ -40,7 +49,7 @@ public class BrentSolver extends AbstractUnivariateSolver { private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; /** - * Construct a solver with default accuracy (1e-6). + * Construct a solver with default absolute accuracy (1e-6). */ public BrentSolver() { this(DEFAULT_ABSOLUTE_ACCURACY); @@ -69,6 +78,8 @@ public class BrentSolver extends AbstractUnivariateSolver { * @param relativeAccuracy Relative accuracy. * @param absoluteAccuracy Absolute accuracy. * @param functionValueAccuracy Function value accuracy. + * + * @see BaseAbstractUnivariateSolver#BaseAbstractUnivariateSolver(double,double,double) */ public BrentSolver(double relativeAccuracy, double absoluteAccuracy,
