Author: luc Date: Sat Aug 25 10:06:00 2012 New Revision: 1377245 URL: http://svn.apache.org/viewvc?rev=1377245&view=rev Log: Integrated the new differentiation framework in the solvers package.
As discussed on the developers mailing list, a separate NewtonRaphsonSolver has been set up using the new interfaces, and the older NewtonSolver has been deprecated. It should be removed in 4.0. Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java - copied, changed from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java - copied, changed from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java - copied, changed from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java - copied, changed from r1377244, commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java Modified: commons/proper/math/trunk/src/changes/changes.xml commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java Modified: commons/proper/math/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/changes/changes.xml?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/changes/changes.xml (original) +++ commons/proper/math/trunk/src/changes/changes.xml Sat Aug 25 10:06:00 2012 @@ -52,6 +52,11 @@ If the output is not quite correct, chec <body> <release version="3.1" date="TBD" description=" "> + <action dev="luc" type="add" > + Added a NewtonRaphsonSolver taht use the new differentiation package + to define the function to solve. This class is intended to replace the + former NewtonSolver which is deprecated. + </action> <action dev="psteitz" type="update" issue="MATH-850"> Added RandomDataGenerator to replace RandomDataImpl and deprecated RandomData interface and RandomDataImpl class. Deprecated Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java Sat Aug 25 10:06:00 2012 @@ -26,7 +26,9 @@ import org.apache.commons.math3.analysis * * @since 3.0 * @version $Id$ + * @deprecated as of 3.1, replaced by {@link AbstractUnivariateDifferentiableSolver} */ +@Deprecated public abstract class AbstractDifferentiableUnivariateSolver extends BaseAbstractUnivariateSolver<DifferentiableUnivariateFunction> implements DifferentiableUnivariateSolver { Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java (from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java) URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java&r1=1377244&r2=1377245&rev=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java Sat Aug 25 10:06:00 2012 @@ -17,28 +17,29 @@ package org.apache.commons.math3.analysis.solvers; -import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction; -import org.apache.commons.math3.analysis.UnivariateFunction; +import org.apache.commons.math3.analysis.differentiation.DerivativeStructure; +import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable; /** * Provide a default implementation for several functions useful to generic * solvers. * - * @since 3.0 + * @since 3.1 * @version $Id$ */ -public abstract class AbstractDifferentiableUnivariateSolver - extends BaseAbstractUnivariateSolver<DifferentiableUnivariateFunction> - implements DifferentiableUnivariateSolver { - /** Derivative of the function to solve. */ - private UnivariateFunction functionDerivative; +public abstract class AbstractUnivariateDifferentiableSolver + extends BaseAbstractUnivariateSolver<UnivariateDifferentiable> + implements UnivariateDifferentiableSolver { + + /** Function to solve. */ + private UnivariateDifferentiable function; /** * Construct a solver with given absolute accuracy. * * @param absoluteAccuracy Maximum absolute error. */ - protected AbstractDifferentiableUnivariateSolver(final double absoluteAccuracy) { + protected AbstractUnivariateDifferentiableSolver(final double absoluteAccuracy) { super(absoluteAccuracy); } @@ -49,9 +50,9 @@ public abstract class AbstractDifferenti * @param absoluteAccuracy Maximum absolute error. * @param functionValueAccuracy Maximum function value error. */ - protected AbstractDifferentiableUnivariateSolver(final double relativeAccuracy, - final double absoluteAccuracy, - final double functionValueAccuracy) { + protected AbstractUnivariateDifferentiableSolver(final double relativeAccuracy, + final double absoluteAccuracy, + final double functionValueAccuracy) { super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy); } @@ -59,22 +60,22 @@ public abstract class AbstractDifferenti * Compute the objective function value. * * @param point Point at which the objective function must be evaluated. - * @return the objective function value at specified point. + * @return the objective function value and derivative at specified point. * @throws org.apache.commons.math3.exception.TooManyEvaluationsException * if the maximal number of evaluations is exceeded. */ - protected double computeDerivativeObjectiveValue(double point) { + protected DerivativeStructure computeObjectiveValueAndDerivative(double point) { incrementEvaluationCount(); - return functionDerivative.value(point); + return function.value(new DerivativeStructure(1, 1, 0, point)); } /** * {@inheritDoc} */ @Override - protected void setup(int maxEval, DifferentiableUnivariateFunction f, + protected void setup(int maxEval, UnivariateDifferentiable f, double min, double max, double startValue) { super.setup(maxEval, f, min, max, startValue); - functionDerivative = f.derivative(); + function = f; } } Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java Sat Aug 25 10:06:00 2012 @@ -287,7 +287,7 @@ public abstract class BaseAbstractUnivar * Method {@link #computeObjectiveValue(double)} calls this method internally. * It is provided for subclasses that do not exclusively use * {@code computeObjectiveValue} to solve the function. - * See e.g. {@link AbstractDifferentiableUnivariateSolver}. + * See e.g. {@link AbstractUnivariateDifferentiableSolver}. */ protected void incrementEvaluationCount() { try { Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java Sat Aug 25 10:06:00 2012 @@ -24,6 +24,7 @@ import org.apache.commons.math3.analysis * Implementations will search for only one zero in the given interval. * * @version $Id$ + * @deprecated as of 3.1, replaced by {@link UnivariateDifferentiableSolver} */ public interface DifferentiableUnivariateSolver extends BaseUnivariateSolver<DifferentiableUnivariateFunction> {} Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java (from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java) URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java&r1=1377244&r2=1377245&rev=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java Sat Aug 25 10:06:00 2012 @@ -17,25 +17,26 @@ package org.apache.commons.math3.analysis.solvers; -import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction; +import org.apache.commons.math3.analysis.differentiation.DerivativeStructure; +import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable; import org.apache.commons.math3.util.FastMath; /** * Implements <a href="http://mathworld.wolfram.com/NewtonsMethod.html"> - * Newton's Method</a> for finding zeros of real univariate functions. - * <p> - * The function should be continuous but not necessarily smooth.</p> + * Newton's Method</a> for finding zeros of real univariate differentiable + * functions. * + * @since 3.1 * @version $Id$ */ -public class NewtonSolver extends AbstractDifferentiableUnivariateSolver { +public class NewtonRaphsonSolver extends AbstractUnivariateDifferentiableSolver { /** Default absolute accuracy. */ private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; /** * Construct a solver. */ - public NewtonSolver() { + public NewtonRaphsonSolver() { this(DEFAULT_ABSOLUTE_ACCURACY); } /** @@ -43,7 +44,7 @@ public class NewtonSolver extends Abstra * * @param absoluteAccuracy Absolute accuracy. */ - public NewtonSolver(double absoluteAccuracy) { + public NewtonRaphsonSolver(double absoluteAccuracy) { super(absoluteAccuracy); } @@ -61,7 +62,7 @@ public class NewtonSolver extends Abstra * if {@code min >= max}. */ @Override - public double solve(int maxEval, final DifferentiableUnivariateFunction f, + public double solve(int maxEval, final UnivariateDifferentiable f, final double min, final double max) { return super.solve(maxEval, f, UnivariateSolverUtils.midpoint(min, max)); } @@ -77,7 +78,8 @@ public class NewtonSolver extends Abstra double x0 = startValue; double x1; while (true) { - x1 = x0 - (computeObjectiveValue(x0) / computeDerivativeObjectiveValue(x0)); + final DerivativeStructure y0 = computeObjectiveValueAndDerivative(x0); + x1 = x0 - (y0.getValue() / y0.getPartialDerivative(1)); if (FastMath.abs(x1 - x0) <= absoluteAccuracy) { return x1; } Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java Sat Aug 25 10:06:00 2012 @@ -26,8 +26,10 @@ import org.apache.commons.math3.util.Fas * <p> * The function should be continuous but not necessarily smooth.</p> * + * @deprecated as of 3.1, replaced by {@link NewtonRaphsonSolverTest} * @version $Id$ */ +@Deprecated public class NewtonSolver extends AbstractDifferentiableUnivariateSolver { /** Default absolute accuracy. */ private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java (from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java) URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java&r1=1377244&r2=1377245&rev=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java Sat Aug 25 10:06:00 2012 @@ -16,14 +16,15 @@ */ package org.apache.commons.math3.analysis.solvers; -import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction; +import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable; /** * Interface for (univariate real) rootfinding algorithms. * Implementations will search for only one zero in the given interval. * + * @since 3.1 * @version $Id$ */ -public interface DifferentiableUnivariateSolver - extends BaseUnivariateSolver<DifferentiableUnivariateFunction> {} +public interface UnivariateDifferentiableSolver + extends BaseUnivariateSolver<UnivariateDifferentiable> {} Modified: commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml (original) +++ commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml Sat Aug 25 10:06:00 2012 @@ -94,11 +94,11 @@ <subsection name="4.3 Root-finding" href="rootfinding"> <p> <a href="../apidocs/org/apache/commons/math3/analysis/solvers/UnivariateSolver.html"> - UnivariateSolver</a>, <a href="../apidocs/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.html"> - DifferentiableUnivariateSolver</a> and <a href="../apidocs/org/apache/commons/math3/analysis/solvers/PolynomialSolver.html"> + UnivariateSolver</a>, <a href="../apidocs/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.html"> + UnivariateDifferentiableSolver</a> and <a href="../apidocs/org/apache/commons/math3/analysis/solvers/PolynomialSolver.html"> PolynomialSolver</a> provide means to find roots of <a href="../apidocs/org/apache/commons/math3/analysis/UnivariateFunction.html">univariate real-valued functions</a>, - <a href="../apidocs/org/apache/commons/math3/analysis/DifferentiableUnivariateFunction.html">differentiable univariate real-valued functions</a>, + <a href="../apidocs/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiable.html">differentiable univariate real-valued functions</a>, and <a href="../apidocs/org/apache/commons/math3/analysis/polynomials/PolynomialFunction.html">polynomial functions</a> respectively. A root is the value where the function takes the value 0. Commons-Math includes implementations of the several root-finding algorithms: @@ -155,8 +155,8 @@ <td>no</td> </tr> <tr> - <td><a href="../apidocs/org/apache/commons/math3/analysis/solvers/NewtonSolver.html">Newton's Method</a></td> - <td><a href="../apidocs/org/apache/commons/math3/analysis/DifferentiableUnivariateFunction.html">differentiable univariate real-valued functions</a></td> + <td><a href="../apidocs/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's Method</a></td> + <td><a href="../apidocs/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiable.html">differentiable univariate real-valued functions</a></td> <td>quadratic, non-guaranteed</td> <td>no</td> <td>no</td> Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java Sat Aug 25 10:06:00 2012 @@ -17,7 +17,6 @@ package org.apache.commons.math3.analysis.solvers; -import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction; import org.apache.commons.math3.analysis.QuinticFunction; import org.apache.commons.math3.analysis.UnivariateFunction; import org.apache.commons.math3.analysis.differentiation.DerivativeStructure; @@ -150,37 +149,32 @@ public final class BracketingNthOrderBre private void compare(final UnivariateDifferentiable f, double root, double min, double max) { - DifferentiableUnivariateFunction df = new DifferentiableUnivariateFunction() { - public double value(double x) { - return f.value(x); - } - - public UnivariateFunction derivative() { - return new UnivariateFunction() { - public double value(double x) { - return f.value(new DerivativeStructure(1, 1, 0, x)).getPartialDerivative(1); - } - }; - } - }; - NewtonSolver newton = new NewtonSolver(1.0e-12); + NewtonRaphsonSolver newton = new NewtonRaphsonSolver(1.0e-12); BracketingNthOrderBrentSolver bracketing = new BracketingNthOrderBrentSolver(1.0e-12, 1.0e-12, 1.0e-18, 5); double resultN; try { - resultN = newton.solve(100, df, min, max); + resultN = newton.solve(100, f, min, max); } catch (TooManyEvaluationsException tmee) { resultN = Double.NaN; } double resultB; try { - resultB = bracketing.solve(100, df, min, max); + resultB = bracketing.solve(100, f, min, max); } catch (TooManyEvaluationsException tmee) { resultB = Double.NaN; } Assert.assertEquals(root, resultN, newton.getAbsoluteAccuracy()); Assert.assertEquals(root, resultB, bracketing.getAbsoluteAccuracy()); - Assert.assertTrue(bracketing.getEvaluations() < newton.getEvaluations()); + + // bracketing solver evaluates only function value, we set the weight to 1 + final int weightedBracketingEvaluations = bracketing.getEvaluations(); + + // Newton-Raphson solver evaluates both function value and derivative, we set the weight to 2 + final int weightedNewtonEvaluations = 2 * newton.getEvaluations(); + + Assert.assertTrue(weightedBracketingEvaluations < weightedNewtonEvaluations); + } private static abstract class TestFunction implements UnivariateDifferentiable { Copied: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java (from r1377244, commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java) URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java?p2=commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java&p1=commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java&r1=1377244&r2=1377245&rev=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java Sat Aug 25 10:06:00 2012 @@ -16,10 +16,7 @@ */ package org.apache.commons.math3.analysis.solvers; -import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction; import org.apache.commons.math3.analysis.QuinticFunction; -import org.apache.commons.math3.analysis.UnivariateFunction; -import org.apache.commons.math3.analysis.differentiation.DerivativeStructure; import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable; import org.apache.commons.math3.analysis.function.Sin; import org.apache.commons.math3.util.FastMath; @@ -30,16 +27,16 @@ import org.junit.Test; /** * @version $Id$ */ -public final class NewtonSolverTest { +public final class NewtonRaphsonSolverTest { /** * */ @Test public void testSinZero() { - DifferentiableUnivariateFunction f = new Sin(); + UnivariateDifferentiable f = new Sin(); double result; - NewtonSolver solver = new NewtonSolver(); + NewtonRaphsonSolver solver = new NewtonRaphsonSolver(); result = solver.solve(100, f, 3, 4); Assert.assertEquals(result, FastMath.PI, solver.getAbsoluteAccuracy()); @@ -54,25 +51,10 @@ public final class NewtonSolverTest { */ @Test public void testQuinticZero() { - final UnivariateDifferentiable q = new QuinticFunction(); - DifferentiableUnivariateFunction f = new DifferentiableUnivariateFunction() { - - public double value(double x) { - return q.value(x); - } - - public UnivariateFunction derivative() { - return new UnivariateFunction() { - public double value(double x) { - return q.value(new DerivativeStructure(1, 1, 0, x)).getPartialDerivative(1); - } - }; - } - - }; + final UnivariateDifferentiable f = new QuinticFunction(); double result; - NewtonSolver solver = new NewtonSolver(); + NewtonRaphsonSolver solver = new NewtonRaphsonSolver(); result = solver.solve(100, f, -0.2, 0.2); Assert.assertEquals(result, 0, solver.getAbsoluteAccuracy()); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java?rev=1377245&r1=1377244&r2=1377245&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java Sat Aug 25 10:06:00 2012 @@ -29,7 +29,9 @@ import org.junit.Test; /** * @version $Id$ + * @deprecated */ +@Deprecated public final class NewtonSolverTest { /** *