[GAP Forum] Square root of cyclotomic real number

Marek Mitros marek at mitros.org
Thu May 19 06:48:05 BST 2016


Thank you for advice. Let me explain my plan, then we can judge whether
this advice work for me or it doesn't.

I have group of size 5120 of complex matrices of size 16x16. In this group
I listed two conjugacy classes of involutions of size 10 and 80. Next I
wanted to change the basis in a way that mentioned 10 matrices are
diagonal. Therefore I obtained 16 vectors as intersections of eigenspaces.
Unfortunately these vectors are not unit length, so I tried to normalize
them. This doesn't work in GAP, because complex numbers are cyclotomics
there. Then my question appeared on GAP forum. If I could normalize those
vectors, then obtained matrix A built with orthonormal hermitian vectors is
unitary and I can apply x-> A^-1 x A to group elements.

Can this plan be done in GAP or Sage ?

Mentioned group is index 2 in involution stabilizer of Tits group ^2F4(2)'.

Regards,
Marek
19-05-2016 04:30 użytkownik "Samuel Lelièvre" <samuel.lelievre at gmail.com>
napisał:

> Dear forum,
>
> To complement Dima's answer, if you are using Sage,
> you should be aware that Sage provides two useful
> exact fields:
> - QQbar, the algebraic closure of QQ,
> - AA, the "algebraic real field", which is the intersection
>   of QQbar with the reals.
>
> I would advise you to work in AA for your problem.
>
> Defining, as Dima suggested,
>
>     sage: a = libgap.eval('E(20)-E(20)^9').sage()
>
> you get an element in a cyclotomic field:
>
>     sage: a
>     -zeta20^7 + zeta20^5 - zeta20^3 + 2*zeta20
>     sage: a.parent()
>     Cyclotomic Field of order 20 and degree 8
>
> Now if you take its square root naively, you end up
> in Sage's "Symbolic Ring" which is something to avoid
> in general.
>
>     sage: b = a.sqrt()
>     sage: b
>     sqrt(-(1/4*I*sqrt(5) + 1/4*sqrt(2*sqrt(5) + 10) - 1/4*I)^7
>     + (1/4*I*sqrt(5) + 1/4*sqrt(2*sqrt(5) + 10) - 1/4*I)^5
>     - (1/4*I*sqrt(5) + 1/4*sqrt(2*sqrt(5) + 10) - 1/4*I)^3
>     + 1/2*I*sqrt(5) + 1/2*sqrt(2*sqrt(5) + 10) - 1/2*I)
>     sage: b.parent()
>     Symbolic Ring
>
> The best is to work with AA
>
>     sage: AA
>     Algebraic Real Field
>
> by moving there explicitly
>
>     sage: aa = AA(a)
>     sage: aa
>     1.902113032590308?
>     sage: aa.parent()
>     Algebraic Real Field
>
> Elements of AA are exact, and well-defined:
>
>     sage: aa.minpoly()
>     x^4 - 5*x^2 + 5
>
> Taking square roots stays in AA
>
>     sage: bb = aa.sqrt()
>     sage: bb
>     1.379171139703231?
>     sage: bb.parent()
>     Algebraic Real Field
>     sage: bb.minpoly()
>     x^8 - 5*x^4 + 5
>
> I hope this helps.
> Samuel
>


More information about the Forum mailing list