[Rd] PR#751

Peter Dalgaard BSA p.dalgaard@biostat.ku.dk
17 Jan 2001 08:01:11 +0100


mark0060@tc.umn.edu writes:

> I'd just like to report a possible R bug--or rather, confirm an existing one
> (bug #751).
> 
> I have had some difficulty using the polyroot() function.
> 
> For example, in Win 98, R 1.1.1,
> 
> > polyroot(c(2,1,1))
> 
> correctly (per the help index) gives the roots of  1 + (1*x) + (2*x^2) as
> 
> [1] -0.5+1.322876i -0.5-1.322876i

Mm, no. The coefficients are by increasing degree, so these are the
roots of 2+x+x^2

> x<-polyroot(c(2,1,1))
> x
[1] -0.5+1.322876i -0.5-1.322876i
> 2+x+x^2
[1] -2.220446e-16+4.440892e-16i -2.220446e-16-4.440892e-16i


> However,
> 
> > polyroot(c(-100,0,1))
> 
> gives the roots of
> 
> [1]  10+0i -10+0i
> 
> which corresponds to -100 + x^2, not 1 - (100*x^2).

as it should.

> 
> Also,
> 
> > polyroot(c(0,0,0,1))
> 
> gives
> 
> [1]   0+0i   0+0i -10+0i
> 
> which aren't all roots of x^3.

That one is way out, however. Even more "fun":

> polyroot(c(-100,0,1))
[1]  10+0i -10+0i
> x<- polyroot(c(0,0,0,1))
> x
[1]   0+0i   0+0i -10+0i
> x<-polyroot(c(2,1,1))
> x<- polyroot(c(0,0,0,1))
> x
[1]  0.0+0.000000i  0.0+0.000000i -0.5-1.322876i

I.e. the result of polyroot(c(0,0,0,1)) depends on the previous
polyroot calculation! So there's more to the problem than numerical
instability.

Thanks for pointing it out.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._