The Numerical Algorithms Group (NAG) does this kind of thing for
a living; they have a Laguerre method as their primary algorithm
I would not be surprised if Matlab previously had a Jenkins-Traub
algorithm and discarded it.
The Matlab symbolic toolkit, since you mention it, is something
I have been playing with. And I think it is more appropriate
to discuss that here, since it is peripheral to most Matlab
In order to convert a Matlab value to a symbolic one, you can
add sym(0) to it.
simplify(3+sym(0)) is ok, and returns 3. While simplify(3) is
illegal: an attempt to call a symbolic routine "simplify" on a
traditional Matlab value, the 1X1 array of double-precision numbers,
namely 3. This is a misfeature, certainly. Why not add sym(0)
and see what happens instead of the mysterious error message.
But here is an anomaly...
simplify(pi^2+sym(1)) returns a number 3059521645650671/281474976710656
simplify(pi+sym(1)) returns pi+1
> If you and/or the original poster would like to suggest that MATLAB use
> these algorithms for polynomial root finding instead of or in addition to
> the routine currently used in roots.m, please suggest it to
> future version of MATLAB. Also (to the original poster) while sometimes
> questions about MATLAB's Symbolic Math Toolbox are posted to
> sci.math.symbolic, you're more likely to get a discussion about MATLAB going
> on the MATLAB newsgroup comp.soft-sys.matlab.
> Steve Lord