commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <>
Subject [jira] [Commented] (MATH-871) math3 SecantSolver can return Double.INFINITE
Date Fri, 28 Sep 2012 11:25:07 GMT


Gilles commented on MATH-871:

Thanks for the report. Could you provide a unit test showing the failure?

At first sight, this seems the result of a inherent weakness of the algorithm, not a bug in
the implementation.
With your particular use-case (i.e. a code excerpt), it will be useful to raise the issue
on the "dev" in order to discuss whether to introduce a check to detect this problem.

> math3 SecantSolver can return Double.INFINITE
> ---------------------------------------------
>                 Key: MATH-871
>                 URL:
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Anthony Maidment
>            Priority: Minor
> In SecantSolver.doSolve(), I had a situation in which f0 and f1, from computeObjectiveValue()
on lines 77 & 78, were the same value.
> Then when it calculates the next appromixation at line 101:
> final double x = x1 - ((f1 * (x1 - x0)) / (f1 - f0));
> The denominator is then zero, and the next approximation is Double.INFINITE.
> I was able to work around this in this particular instance by relaxing the accuracy requirements
of the solver, although I haven't yet fully tested the downstream implications of this change.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message