Ahmad Mostafa Ismail El-Guindy on Tue, 10 Dec 2024 12:47:22 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Question about mfatkineigenvalues |
Hello,
I am confused by the behavior of mfatkinvalues, where sometimes it seems to output eigenvalues that are not a power of I (for odd characters). For example I get the following:
(04:07) gp > sc(p,k,n)=mfinit([p,k,kronecker(-1,p)*p],n);
(04:08) gp > mfatkineigenvalues(sc(11,5,1),11)
%18 = [[-I], [-0.99585919546393838810358142327418569810 - 0.090909090909090909090909090909090909091*I, 0.99585919546393838810358142327418569810 - 0.090909090909090909090909090909090909091*I]]
On the other hand,
(04:17) gp > [mfb,M,C]=mfatkininit(sc(11,5,1),11);
(04:18) gp > polroots(charpoly(M))
%20 = [-1.0000000000000000000000000000000000000 + 0.E-38*I, -1.0000000000000000000000000000000000000 + 0.E-38*I, 1.0000000000000000000000000000000000000 + 0.E-38*I]~
(04:19) gp > C
%21 = -1.0000000000000000000000000000000000000*I
(04:19) gp > polroots(charpoly(M/C))
%22 = [-3.8332335417084352035971249315516686802 E-20 - 1.0000000000000000000000000000000000000*I, 0.E-38 + 0.99999999999999999999999999999999999999*I, 3.8332335417084352035971249315516686802 E-20 - 1.0000000000000000000000000000000000000*I]~
I thought that the direct call of mfatkineigenvalues should give the same answer as computing the roots of charpoly(M/C) according to the documentation below; or is there something more subtle going on?
" To obtain the eigenvalues on a larger space than the new space, e.g., the full space, you can directly call
[mfB,M,C] = mfatkininit and compute the eigenvalues as the roots of the characteristic polynomial of M/C, by dividing
the roots of charpoly(M) by C. Note that the characteristic polynomial is computed exactly since M has coefficients in
Q(chi), whereas C may be given by a complex number. If the coefficients of the characteristic polynomial are polmods
modulo T they must be embedded to C first using subst(lift(), t, exp(2*I*Pi/n)), when T is poliscyclo(n); note that T =
mf.mod.
The library syntax is GEN mfatkineigenvalues(GEN mf, long Q, long prec)."
Thanks,
Ahmad
|