Dear Marek, On Thu, May 19, 2016 at 07:48:05AM +0200, Marek Mitros wrote: > 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.
Another way to get a diagonalising transformation H would be to sum up g^*g, with g running through your size 10 conjugacy class T (and ^* denotes taking conjugate transpose). H is the matrix of a positive definite Hermitean form stabilised by the subgroup generated by T. Then you'd need to factor H=UU^* (A Cholesky factorisation), and conjugate the group by U. This is basically the standard way to show that every representation of a finite groups is unitary). Computing U needs taking square roots. However, there is also a decomposition of the form H=VDV^*, with V being lower-triangular with 1s on the diagonal, and D a diaginal matrix; such a decomposition does not need square roots, IIRC. To pass between U and V you'd need to take square roots of the elements of D. But you can conjugate your group by V, still getting a representation hopefully close to the form you want to see. (Computing V and D can be done in GAP, although you probably would need to program it yourself). > 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. using Sage, and the data type AA, as proposed by Samuel, one would see quickly whether building A is feasible in the sense that you do not get to deal with algebraic numbers of huge degree. (If you go the way I described above, you'd get to compute the Cholesky decomposition of H, something that is implemented in Sage). Converting a Sage matrix of algebraic numbers to a GAP one isn't implemented well, but should be doable. HTH, Dima > > 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.lelie...@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 > > _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum