[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: roots(poly(r)) != r

**From**: |
Przemek Klosowski |

**Subject**: |
Re: roots(poly(r)) != r |

**Date**: |
Fri, 2 Mar 2007 18:35:08 -0500 (EST) |

Clearly there are convergence problems, and I think they are in
roots(). You give it a tough case because of your 0.1 factor in the
exponential, which forces the points in 'r' to lie on the complex
circle within 36 degrees of 1+0i. When you solve the resulting
polynomial, you are recreating the complex circle from the polynomial
defined by points in this segment only, which doesn't converge well
I tried the following expression:
size=9; delta=.01; a=rand(size,1); r=exp(I*delta*pi*2*a); abs(roots(poly(r)))
for different values of 9 and 0.01, and sure enough, roots() for
smaller values of delta diverges widely.
The other leading brand has similarly divergent behavior, by the way,
down to similar error magnitudes.
I didn't have time to check whether it's already the poly() result
or does it blow up in roots(). Anyone?
p