commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-631) "RegulaFalsiSolver" failure
Date Mon, 08 Aug 2011 22:08:27 GMT

    [ https://issues.apache.org/jira/browse/MATH-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13081242#comment-13081242
] 

Gilles commented on MATH-631:
-----------------------------

{quote}
Gilles, you obviously don't share the views that Luc and I have on implementing standard algorithms

{quote}

That's simply _not true_.
I was the one pointing out that standard algorithms should have precedence: Please recall
that it was considered fine that "Levenberg-Marquardt" and "Brent" would be, unknowingly to
the user, "twisted" to perform _non-standard_ convergences check.
In those cases, there was the risk that the result of the algorithm would not be the same
as the reference implementation.

In this case, there is no such thing as deviating from standard numerics! It was just a matter
of throwing the right exception. So: "The algorithm fails? Let's tell it sooner rather than
later."

Very interesting question that you ask: "what it means to implement the algorithm". But please
note that I asked it several posts ago[1], and an answer would have helped sort out this discussion.
What is your definition?


[1] 08/Aug/11 07:24


> "RegulaFalsiSolver" failure
> ---------------------------
>
>                 Key: MATH-631
>                 URL: https://issues.apache.org/jira/browse/MATH-631
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Gilles
>             Fix For: 3.0
>
>
> The following unit test:
> {code}
> @Test
> public void testBug() {
>     final UnivariateRealFunction f = new UnivariateRealFunction() {
>             @Override
>             public double value(double x) {
>                 return Math.exp(x) - Math.pow(Math.PI, 3.0);
>             }
>         };
>     UnivariateRealSolver solver = new RegulaFalsiSolver();
>     double root = solver.solve(100, f, 1, 10);
> }
> {code}
> fails with
> {noformat}
> illegal state: maximal count (100) exceeded: evaluations
> {noformat}
> Using "PegasusSolver", the answer is found after 17 evaluations.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message