Ask Your Question

Computations with complex algebraic numbers?

asked 2015-12-27 09:33:06 +0200

Alasdair gravatar image

I am trying to perform some Newton-type computations: z-p(z)/p'(z) where p(z) is a polynomial over the field of algebraic numbers.

For example, this shows the sort of thing I'm trying to do:

p = (z^2+1)*(z^2+4)
q = p/(z-I)
pd = diff(p,z)
qd = diff(q,z)
sol = solve(qd=0,solution_dict='true')
a0 = sol[0][z]
b0 = a0-p.subs(z=a0)/pd.subs(z=a0)

However, this doesn't work because the expression z-I is not recognized as a factor of p. So I might try defining p as a polynomial over the field QQbar:

R.<z> = PolynomialRing(QQbar)
p = (z^2+1)*(z^2+4)
q = p.quo_rem(z-I)[0]
pd = p.differentiate(z)
qd = q.differentiate(z)

The trouble now is that I can only seem to solve qd over CC: that is, in numerical form. Both the commands


produce numerical roots; I can't use solve on qd to obtain closed-form expressions for the roots. I've also tried the first method above prefaced with z=QQbar['z'].0 but to no avail.

Is there some way of doing this entire computation over QQbar, that is, with exact complex numbers instead of numerical approximations?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2015-12-28 09:57:34 +0200

slelievre gravatar image

The impression that computations are numerical rather than in QQbar is mistaken.

Indeed, the trailing ?s in the following indicate elements in QQbar:

sage: R.<z> = PolynomialRing(QQbar)
sage: p = (z^2+1)*(z^2+4)
sage: q = p.quo_rem(z-I)[0]
sage: pd = p.differentiate(z)
sage: qd = q.differentiate(z)
sage: qd.roots()
[(-1.535183758487997?*I, 1), (0.8685170918213298?*I, 1)]
sage: qd.factor()
(3) * (z - 0.8685170918213298?*I) * (z + 1.535183758487997?*I)

Thus, you are working in QQbar and the following works, for instance:

sage: a = qd.roots()[0][0]
sage: a
sage: a.parent()
Algebraic Field
sage: a.radical_expression()
-1/3*sqrt(-2*sqrt(13) - 14)
edit flag offensive delete link more

Your Answer

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

Add Answer

Question Tools

1 follower


Asked: 2015-12-27 09:33:06 +0200

Seen: 527 times

Last updated: Dec 28 '15