Re: numerical roots of a polynomial
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg1204] Re: numerical roots of a polynomial
- From: danl (Daniel Lichtblau)
- Date: Tue, 23 May 1995 02:57:37 -0400
- Organization: Wolfram Research, Inc.
In article <3pjkiu$7h0 at news0.cybernetics.net>
Sigurd.Schelstraete at rug.ac.be (Sigurd Schelstraete) writes:
> hello,
>
> does anyone know if there exists a package/function that allows one to
find
> (numerically) all n roots of a polynomial of degree n, whether they are
> real or not? Since NSolve seems to be equivalent to N[Solve], it can not
> be used for generic polynomials of fifth degree or higher. Also the
> function FindRoot only allows one to find a single root near a given
> starting value (which can be complex though).
>
> What I would like, is a function that returns the numerical values of
all
> n roots as a list of substitution rules, as does Solve or NSolve.
>
> I guess it could be done by successively dividing out a single root
found
> with FindRoot, but I'd rather first hear if anyone out there already has
> a clear-cut solution to this problem.
>
> All answers are appreciated.
>
> Greetings,
>
> Sigurd Schelstraete
> University of Gent
> Belgium
>
>
NSolve will indeed do this in versions 2.0 and later. For example,
In[2]:= NSolve[x^5+x+3==0, x]
Out[2]= {{x -> -1.133}, {x -> -0.475381 - 1.1297 I},
> {x -> -0.475381 + 1.1297 I}, {x -> 1.04188 - 0.82287 I},
> {x -> 1.04188 + 0.82287 I}}
For higher precision, use
NSolve[..., WorkingPrecision->...]
Daniel Lichtblau, WRI