commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles <gil...@harfang.homelinux.org>
Subject Re: [Math] MullerSolver2 does not respect initial bracketing
Date Sat, 12 Mar 2016 02:34:25 GMT
Hi.

On Fri, 11 Mar 2016 17:50:59 -0800, Connor Petty wrote:
> I've been doing some investigation regarding MATH-1333 and I cam 
> across
> some bounds issues in MullerSolver and MullerSolver2. There are a few 
> test
> cases I've created which cause these solvers to return values outside 
> of
> their initial bracket. I've created fixes for MullerSolver but
> MullerSolver2 baffles me. MullerSolver is more or less an 
> implementation of
> the algorithm you can find at 
> https://en.wikipedia.org/wiki/Muller's_method
> while MullerSolver2 is an implementation of the algorithm at
> http://mathworld.wolfram.com/MullersMethod.html. But the major 
> difference
> between MullerSolver 1 & 2 is that MullerSolver2 was designed to work
> without bracketing. This turns out to make it fairly easy to make it 
> return
> faulty values.
>
> Now my question is: How much should these solvers stick to their 
> original
> algorithms?

Fully.
Or the name and documentation of the class must clearly reflect that
it is a variation.

> If the original algorithm is flawed should solver exhibit those
> same flaws?

Yes (if the flaw is in the algorithm itself, not just in the 
implementation,
e.g. because the expected properties assume infinite precision).

But whenever possible the implementation should (_must_, IMHO) check 
that
it has not hit one of its own limitation, and "fail early".

> There is some precedent for that in SecantSolver which has the same
> guarantees of convergence as the original algorithm (which has none).
> But MullerSolver2 is clearly a patched version of the algorithm

Do you have the possibility to check another implementation of that
algorithm?
Since the Javadoc says that the original deals with complex values but 
CM
avoids it, I wonder whether this could be the problem.

> it is based
> off of and exhibits some very characteristic flaws from the original
> algorithm. Should MullerSolver2's bounds issue be fixed or should 
> that
> issue just be accepted a limitation of that algorithm?

Cf. above.

Best regards,
Gilles

>
> Best Regards,
> Connor Petty


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message