Tried out my own Laguerre implementation from here:

https://github.com/mlochbaum/bqn-libs/blob/master/polynomial.bqn#L80-L113

I remember I used J as a reference for this, but I think I ended up
following this one in Julia:

https://github.com/giordano/PolynomialRoots.jl/blob/master/src/PolynomialRoots.jl#L255

With the starting point at 0 it converges, but only with a few random
adjustments from this line:

    { 0=jump_i|i ? root +↩ dx × Jump i÷jump_i ;@}

Here Jump i÷jump_i just ignores the argument and produces a random
float, ?0 in J (Julia has a table to avoid computing one).

Removing this, I see a small region of non-convergence around 0, radius
between 0.1 and 0.2. I suppose this isn't what you get?

Marshall

On Sat, Feb 04, 2023 at 08:34:46PM -0500, Henry Rich wrote:
> Somehow I lost the original post.
> 
> For some reason Laguerre's method doesn't converge for this polynomial. 
> There seem to be large regions of non-convergence. Changes of up to 1e_5 in
> any of the constants still fail to converge.
> 
> The point seems to oscillate in a wide range but doesn't head toward any
> solution.  In the implementation the initial guess is always 0j0.
> 
> I don't see why this would fail.  If anyone on this list can help, or knows
> someone who can help, I'd appreciate suggestions.
> 
> Henry Rich
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to