Ask Your Question
1

Change Precision of complex_roots()

asked 7 years ago

cshiring gravatar image

updated 7 years ago

tmonteil gravatar image

I am trying to find the complex roots of the polynomial

poly = x^7 - 6*x^6 + 15*x^5 - 20*x^4 + 15*x^3 - 6*x^2 + x

But when I do poly.complex_roots(), the system gives:

 PariError: overflow in expo()

Apparently there are options for how much precision you want when computing roots -- one option is to use Pari, which is the high-precision option, and the other NumPy, which is the low-precision option. The default is set to use Pari, which apparently overloads when I try to compute the roots of this polynomial (and many others as well, this polynomial is just one example).

How do I change the complex_roots() function to get lower-precision roots?

Preview: (hide)

Comments

How did you define x ? By default, you will get:

sage: poly = x^7 - 6*x^6 + 15*x^5 - 20*x^4 + 15*x^3 - 6*x^2 + x
AttributeError: 'sage.symbolic.expression.Expression' object has no attribute 'complex_roots'
tmonteil gravatar imagetmonteil ( 7 years ago )

1 Answer

Sort by » oldest newest most voted
0

answered 7 years ago

tmonteil gravatar image

updated 7 years ago

OK, you hit a bug, thanks for reporting !

sage: R.<x> = QQ[]
sage: poly = x^7 - 6*x^6 + 15*x^5 - 20*x^4 + 15*x^3 - 6*x^2 + x
sage: poly.complex_roots()
PariError: overflow in expo()

See:

sage: poly.roots(ring=CDF)
[(0.0, 1),
 (0.9970597732189228 - 0.0016886658100989547*I, 1),
 (0.9970597732189228 + 0.0016886658100989547*I, 1),
 (0.9999846391506835 - 0.003403956023304669*I, 1),
 (0.9999846391506835 + 0.003403956023304669*I, 1),
 (1.0029555876303982 - 0.0017152722520868947*I, 1),
 (1.0029555876303982 + 0.0017152722520868947*I, 1)]
sage: poly.roots(ring=QQbar)
[(0, 1), (1, 6)]
sage: poly.roots(ring=ZZ)
[(0, 1), (1, 6)]

Those can be used as workarounds.

However:

sage: poly.roots(ring=CC)
PariError: overflow in expo()

sage: poly.roots(ring=RealField(123))
PariError: overflow in expo()

This seems to be en interface problem with cypari2, the bug is now tracked at trac ticket 24332

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 7 years ago

Seen: 797 times

Last updated: Dec 07 '17