The Numerical Algorithms Group (NAG) does this kind of thing for

a living; they have a Laguerre method as their primary algorithm

it seems.

http://www.nag.com/numeric/FL/manual/pdf/C02/c02_intro.pdf

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

activities.

In order to convert a Matlab value to a symbolic one, you can

add sym(0) to it.

Thus

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

but

simplify(pi+sym(1)) returns pi+1

Cheers..

RJF

> 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