Modular Form L-function Profiles

Chris King

PDF

 

Echelon bases and newforms can all be accessed with Sage http://www.sagemath.org/

Images are generated with RZViewer for Mac http://dhushara.com/DarkHeart/RZV/

For companion research article see: http://www.dhushara.com/DarkHeart/key/key2.htm

Click on an image for full resolution portrait

 

Weight 2

 

N=26 Left are the two echelon basis functions right are the two eigenfunction newforms corresponding to elliptic curves e26a and e26b. Matrix A, determined by the first d = 2 coefficients of the eigenforms, and its inverse give the linear transformations between the two bases.

 

sage: M=CuspForms(Gamma0(26),2, prec=10);

sage: M.basis()

[

q - q^3 + q^4 - 2*q^5 - 2*q^6 + 2*q^9 + O(q^10),

q^2 - 2*q^3 + q^5 - q^6 + q^7 + q^8 + 4*q^9 + O(q^10)

]

sage: M.newforms('a')

[

q - q^2 + q^3 + q^4 - 3*q^5 - q^6 - q^7 - q^8 - 2*q^9 + O(q^10),

q + q^2 - 3*q^3 + q^4 - q^5 - 3*q^6 + q^7 + q^8 + 6*q^9 + O(q^10)

]

sage: E=EllipticCurve('26a')

sage: E.q_eigenform(10)

q - q^2 + q^3 + q^4 - 3*q^5 - q^6 - q^7 - q^8 - 2*q^9 + O(q^10)

sage: E=EllipticCurve('26b')

sage: E.q_eigenform(10)

q + q^2 - 3*q^3 + q^4 - q^5 - 3*q^6 + q^7 + q^8 + 6*q^9 + O(q^10)

sage: A=Matrix([[1,-1],[1,1]])

sage: A

[ 1 -1]

[ 1  1]

sage: A.inverse()

[ 1/2  1/2]

[-1/2  1/2]

N=37 Left are the two echelon basis components the first of which is e37b. Right is e37a, which forms an eigenfunction basis with e37b.

 

sage: M=CuspForms(Gamma0(37),2, prec=10);

sage: M.basis()

[

q + q^3 - 2*q^4 - q^7 - 2*q^9 + O(q^10),

q^2 + 2*q^3 - 2*q^4 + q^5 - 3*q^6 - 4*q^9 + O(q^10)

]

sage: M.newforms('a')

[

q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + 6*q^6 - q^7 + 6*q^9 + O(q^10),

q + q^3 - 2*q^4 - q^7 - 2*q^9 + O(q^10)

]

sage: E=EllipticCurve('37a')

sage: E.q_eigenform(10)

q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + 6*q^6 - q^7 + 6*q^9 + O(q^10)

sage: E=EllipticCurve('37b')

sage: E.q_eigenform(10)

q + q^3 - 2*q^4 - q^7 - 2*q^9 + O(q^10)

sage: A=Matrix([[1,-2],[1,0]])

sage: A

[ 1 -2]

[ 1  0]

sage: A.inverse()

[   0    1]

[-1/2  1/2]

 

 

N=38 has a four-dimensional echelon basis (left). There are two newforms corresponding to e38a and e38b. There are two other eigenforms e19a and its ‘harmonic’ 2-ze19a, which is equivalent to the second echelon basis function 38m1.

 

sage: M=CuspForms(Gamma0(38),2, prec=10);

sage: M.basis()

[

q + q^5 - 2*q^6 - q^7 - 2*q^8 - q^9 + O(q^10),

q^2 - 2*q^6 - 2*q^8 + O(q^10),

q^3 + 2*q^5 - 2*q^6 - 2*q^7 - 3*q^8 + O(q^10),

q^4 - 3*q^5 + q^6 + 2*q^7 + 2*q^8 - q^9 + O(q^10)

]

sage: M.newforms('a')

[

q - q^2 + q^3 + q^4 - q^6 - q^7 - q^8 - 2*q^9 + O(q^10),

q + q^2 - q^3 + q^4 - 4*q^5 - q^6 + 3*q^7 + q^8 - 2*q^9 + O(q^10)

]

sage: E=EllipticCurve('38a')

sage: E.q_eigenform(10)

q - q^2 + q^3 + q^4 - q^6 - q^7 - q^8 - 2*q^9 + O(q^10)

sage: E=EllipticCurve('38b')

sage: E.q_eigenform(10)

q + q^2 - q^3 + q^4 - 4*q^5 - q^6 + 3*q^7 + q^8 - 2*q^9 + O(q^10)

sage: E=EllipticCurve('19a')

sage: E.q_eigenform(10)

q - 2*q^3 - 2*q^4 + 3*q^5 - q^7 + q^9 + O(q^10)

sage: A=Matrix([[1,-1,1,1],[1,1,-1,1],[1,0,-2,-2],[0,1,0,0]])

sage: A

[ 1 -1  1  1]

[ 1  1 -1  1]

[ 1  0 -2 -2]

[ 0  1  0  0]

sage: A.inverse()

[ 2/3    0  1/3  2/3]

[   0    0    0    1]

[ 1/2 -1/2    0    1]

[-1/6  1/2 -1/3 -2/3]

N=39 has a three-dimensional echelon basis (left). There are three newforms (right)

forming a Hecke eigenform basis, one of which corresponds to e39a

and the other two of which are solutions to the irrational eigenvalues .

 

sage: M=CuspForms(Gamma0(39),2, prec=10);

sage: M.basis()

[

q + q^5 - q^6 - 2*q^7 - 3*q^8 + q^9 + O(q^10),

q^2 - 2*q^4 - 2*q^5 + q^6 + 2*q^7 + q^8 + O(q^10),

q^3 - q^4 - 3*q^5 + q^6 + 4*q^7 + q^8 + O(q^10)

]

sage: M.newforms('a')

[

q + q^2 - q^3 - q^4 + 2*q^5 - q^6 - 4*q^7 - 3*q^8 + q^9 + O(q^10),

q + a1*q^2 + q^3 + (-2*a1 - 1)*q^4 + (-2*a1 - 2)*q^5 + a1*q^6 + (2*a1 + 2)*q^7 + (a1 - 2)*q^8 + q^9 + O(q^10)

]

sage: T2 = M.hecke_matrix(2); T2

[ 0  2 -1]

[ 1 -2  1]

[ 0 -1  1]

sage: T2.eigenvalues()

[1, -2.414213562373095?, 0.4142135623730951?]

sage: E=EllipticCurve('39a')

sage: E.q_eigenform(10)

q + q^2 - q^3 - q^4 + 2*q^5 - q^6 - 4*q^7 - 3*q^8 + q^9 + O(q^10)

sage: ei=T2.eigenvalues()

sage: a1=ei[1]

sage: a2=ei[2]

sage: A=Matrix([[1,1,-1],[1,a1,1],[1,a2,1]])

sage: A

[                  1                   1                  -1]

[                  1 -2.414213562373095?                   1]

[                  1 0.4142135623730951?                   1]

sage: A.inverse()

[  0.500000000000000?  0.2500000000000000?  0.2500000000000000?]

[             0.?e-37 -0.3535533905932738?  0.3535533905932738?]

[ -0.500000000000000? -0.1035533905932738?  0.6035533905932738?]

 

N=43 proceeds essentially similarly to N=39 (above) with irrational eigenvalues .

 

sage: M=CuspForms(Gamma0(43),2, prec=10);

sage: M.basis()

[

q + 2*q^5 - 2*q^6 - 2*q^7 - q^9 + O(q^10),

q^2 - 1/2*q^4 + q^5 - 3/2*q^6 - q^8 - 1/2*q^9 + O(q^10),

q^3 - 1/2*q^4 + 2*q^5 - 3/2*q^6 - q^7 + q^8 - 1/2*q^9 + O(q^10)

]

sage: M.newforms('a')

[

q - 2*q^2 - 2*q^3 + 2*q^4 - 4*q^5 + 4*q^6 + q^9 + O(q^10),

q + a1*q^2 - a1*q^3 + (-a1 + 2)*q^5 - 2*q^6 + (a1 - 2)*q^7 - 2*a1*q^8 - q^9 + O(q^10)

]

sage: T2 = M.hecke_matrix(2); T2

[   0    2   -2]

[   1 -1/2 -3/2]

[   0 -1/2 -3/2]

sage: T2.eigenvalues()

[-2, -1.414213562373095?, 1.414213562373095?]

sage: E=EllipticCurve('43a')

sage: E.q_eigenform(10)

q - 2*q^2 - 2*q^3 + 2*q^4 - 4*q^5 + 4*q^6 + q^9 + O(q^10)

sage: ei=T2.eigenvalues()

sage: a1=ei[1]

sage: a2=ei[2]

sage: A=Matrix([[1,-2,-2],[1,a1,-a1],[1,a2,-a2]])

sage: A

[                  1                  -2                  -2]

[                  1 -1.414213562373095?  1.414213562373095?]

[                  1  1.414213562373095? -1.414213562373095?]

sage: A.inverse()

[              0.?e-36    0.500000000000000?    0.500000000000000?]

[ -0.2500000000000000? -0.05177669529663688?   0.3017766952966369?]

[ -0.2500000000000000?   0.3017766952966369? -0.05177669529663688?]

 

N=57 has a five-dimensional echelon basis (right) . There are newforms (left) corresponding to e57a, e57b, and e57c. We also have the Hecke eigenforms e19a and it’s ‘harmonic’ 3-ze19a, which is equivalent to the third echelon basis function 57m2.

 

sage: M=CuspForms(Gamma0(57),2, prec=10);

sage: M.basis()

[

q - q^6 + 3*q^7 - 2*q^8 + 4*q^9 + O(q^10),

q^2 - 2*q^6 + 6*q^7 - 2*q^8 + 6*q^9 + O(q^10),

q^3 - 2*q^9 + O(q^10),

q^4 - 2*q^6 + 5*q^7 - q^8 + 5*q^9 + O(q^10),

q^5 - q^6 + 2*q^7 + q^9 + O(q^10)

]

sage: M.newforms('a')

[

q - 2*q^2 - q^3 + 2*q^4 - 3*q^5 + 2*q^6 - 5*q^7 + q^9 + O(q^10),

q - 2*q^2 + q^3 + 2*q^4 + q^5 - 2*q^6 + 3*q^7 + q^9 + O(q^10),

q + q^2 + q^3 - q^4 - 2*q^5 + q^6 - 3*q^8 + q^9 + O(q^10)

]

sage: E=EllipticCurve('57a')

sage: E.q_eigenform(10)

q - 2*q^2 - q^3 + 2*q^4 - 3*q^5 + 2*q^6 - 5*q^7 + q^9 + O(q^10)

sage: E=EllipticCurve('57b')

sage: E.q_eigenform(10)

q + q^2 + q^3 - q^4 - 2*q^5 + q^6 - 3*q^8 + q^9 + O(q^10)

sage: E=EllipticCurve('57c')

sage: E.q_eigenform(10)

q - 2*q^2 + q^3 + 2*q^4 + q^5 - 2*q^6 + 3*q^7 + q^9 + O(q^10)

sage: E=EllipticCurve('19a')

sage: E.q_eigenform(10)

q - 2*q^3 - 2*q^4 + 3*q^5 - q^7 + q^9 + O(q^10)

sage: A=Matrix([[1,-2,-1,2,-3],[1,-2,1,2,1],[1,1,1,-1,-2],[1,0,-2,-2,3],[0,0,1,0,0]])

sage: A

[ 1 -2 -1  2 -3]

[ 1 -2  1  2  1]

[ 1  1  1 -1 -2]

[ 1  0 -2 -2  3]

[ 0  0  1  0  0]


sage: A.inverse()

[-1/4 7/12  2/3    0 -3/2]

[-3/4 7/12  2/3 -1/2   -3]

[   0    0    0    0    1]

[-1/2  2/3  1/3 -1/2 -5/2]

[-1/4  1/4    0    0 -1/2]

 

Weight 12

 

A series of modular form L-functions constructed from the echelon bases.

N=2, 5 are not eigenfunctions. The echelon bases and newforms are listed below.

 

sage: M=CuspForms(Gamma0(2),12, prec=12)

sage: M.basis()

[

q + 252*q^3 - 2048*q^4 + 4830*q^5 - 16744*q^7 + 49152*q^8 - 113643*q^9 + 534612*q^11 + O(q^12),

q^2 - 24*q^4 + 252*q^6 - 1472*q^8 + 4830*q^10 + O(q^12)

]

sage: M.newforms('a')

[]

 

sage: M=CuspForms(Gamma0(3),12, prec=12);

sage: M.basis()

[

q - 176*q^4 + 2430*q^5 - 5832*q^6 - 19336*q^7 + 101088*q^8 - 107163*q^9 - 187200*q^10 + 558900*q^11 + O(q^12),

q^2 + 54*q^4 - 100*q^5 - 243*q^6 - 108*q^7 + 692*q^8 + 2916*q^9 - 2970*q^10 + 1012*q^11 + O(q^12),

q^3 - 24*q^6 + 252*q^9 + O(q^12)

]

sage: M.newforms('a')

[q + 78*q^2 - 243*q^3 + 4036*q^4 - 5370*q^5 - 18954*q^6 - 27760*q^7 + 155064*q^8 + 59049*q^9 - 418860*q^10 + 637836*q^11 + O(q^12)]

 


sage: M=CuspForms(Gamma0(4),12, prec=12)

sage: M.basis()

[

q - 210*q^5 + 4928*q^7 - 47115*q^9 + 257664*q^11 + O(q^12),

q^2 + 252*q^6 - 2048*q^8 + 4830*q^10 + O(q^12),

q^3 + 20*q^5 - 86*q^7 - 264*q^9 + 1099*q^11 + O(q^12),

q^4 - 24*q^8 + O(q^12)

]

sage: M.newforms('a')

[q - 516*q^3 - 10530*q^5 + 49304*q^7 + 89109*q^9 - 309420*q^11 + O(q^12)]

 

N=5 has a 5-dimensional echelon basis (right) with one integral and two irrational eigenvalues generating three newform eigenfunctions (left), in addition to N=1 modular form delta and its ‘harmonic’, 5-z times delta.

 

sage: M=CuspForms(Gamma0(5),12, prec=12);

sage: M.basis()

[

q - 980*q^7 + 1440*q^8 + 9261*q^9 - 9800*q^10 + 9372*q^11 + O(q^12),

q^2 - 90*q^6 + 264*q^7 + 144*q^8 + 1080*q^9 - 2025*q^10 - 12320*q^11 + O(q^12),

q^3 + 20*q^6 + 21*q^7 + 168*q^8 - 490*q^9 - 300*q^10 + 210*q^11 + O(q^12),

q^4 + 9*q^6 + 10*q^7 - 30*q^8 - 18*q^9 - 25*q^10 - 120*q^11 + O(q^12),

q^5 - 24*q^10 + O(q^12)

]

sage: M.newforms('a')

[

q + 34*q^2 - 792*q^3 - 892*q^4 + 3125*q^5 - 26928*q^6 - 17556*q^7 - 99960*q^8 + 450117*q^9 + O(q^10),

q + a1*q^2 + (16/3*a1 - 170/3)*q^3 + (-20*a1 + 3288)*q^4 - 3125*q^5 + (-490/3*a1 + 85376/3)*q^6 + (176*a1 + 30710)*q^7 + (1640*a1 - 106720)*q^8 + (-3520/3*a1 - 66469/3)*q^9 + O(q^10)

]

sage: T2 = M.hecke_matrix(2); T2

[    0  2048     0  1440 -9800]

[    1     0   -90  2192 -2025]

[    0     0    20   168  -300]

[    0     1     9   -30   -25]

[    0     0     0     0   -24]

sage: T2.eigenvalues()

[34, -24, -24, -83.7292343646671?, 63.72923436466705?]

sage: M=CuspForms(Gamma0(1),12, prec=10);

sage: M.basis()

[

q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 - 6048*q^6 - 16744*q^7 + 84480*q^8 - 113643*q^9 + O(q^10)

]

sage: ei=T2.eigenvalues()      

sage: a1=ei[3]

sage: a2=ei[4]

sage: A=Matrix([[1,34,-792,-892,3125],[1,a1,(16/3*a1-170/3),-20*a1+3288,-3125],[1,a2,(16/3*a2-170/3),-20*a2+3288,-3125],[1,-24,252,-1472,4830],[0,0,0,0,1]])

sage: A

[1                  34                -792                -892             3125]

[1  -83.7292343646671? -503.2225832782242?  4962.584687293341?            -3125]

[1  63.72923436466705?  283.2225832782242?  2013.415312706660?            -3125]

[1                 -24                 252               -1472             4830]

[0                   0                   0                   0                1]

sage: A.inverse()

[    0.1798620689655173?     0.0940818718501889?     0.2187120212795821?     0.5073440379047118?     -2035.059752566465?]

[  0.003034482758620690?  -0.003916726670102101?   0.006725886975445612?  -0.005843643063964202?             104551/3799]

[-0.0008275862068965518? -0.0001620198756699992?  0.0004368290359753427?  0.0005527770465912082?     0.7750723874703869?]

[-0.0000689655172413793? 0.00010003689080421164?  0.0001137035672110556? -0.0001447749407738879?      1.582719136614899?]

[                      0                       0                       0                       0                       1]

 

N=6 has a 9-dimensional basis. Shown is the eigenfunction basis, firstly the three newforms for N=6, then the newform for N=3 and its ‘harmonic’ multiplied by 2-z. There is no newform for N=2. The last four consist of N=1 (modular form delta) and its ‘harmonics’ k-z, k=2, 3, 6.

 

sage: M=CuspForms(Gamma0(6),12, prec=12);

sage: M.basis()

[

q - 26730*q^10 + 184833*q^11 + O(q^12),

q^2 - 5490*q^10 + 50336*q^11 + O(q^12),

q^3 + 2520*q^10 - 12348*q^11 + O(q^12),

q^4 + 2330*q^10 - 15444*q^11 + O(q^12),

q^5 + 738*q^10 - 5187*q^11 + O(q^12),

q^6 + O(q^12),

q^7 - 100*q^10 + 693*q^11 + O(q^12),

q^8 - 45*q^10 + 286*q^11 + O(q^12),

q^9 - 10*q^10 + 49*q^11 + O(q^12)

]

sage: M.newforms('a')

[

q - 32*q^2 - 243*q^3 + 1024*q^4 + 5766*q^5 + 7776*q^6 + 72464*q^7 - 32768*q^8 + 59049*q^9 - 184512*q^10 - 408948*q^11 + O(q^12),

q - 32*q^2 + 243*q^3 + 1024*q^4 - 11730*q^5 - 7776*q^6 - 50008*q^7 - 32768*q^8 + 59049*q^9 + 375360*q^10 - 531420*q^11 + O(q^12),

q + 32*q^2 + 243*q^3 + 1024*q^4 + 3630*q^5 + 7776*q^6 + 32936*q^7 + 32768*q^8 + 59049*q^9 + 116160*q^10 - 758748*q^11 + O(q^12)

]

Effects of increasing weight w≥12

 

As we increase the weight from 12 for SL(2,Z) or N=1, there is no form of weight 14, and only one cusp form for weights up to 24.  At 24 there are two cusp forms with irrational eigenvalues, which can be elucidated using the Hecke operator eigenvalues as previously.

 

Profiles of the N=1 cusp forms for weights 12, 16, 18, 20, 22 and the two of weight 24. There are none of weight 14.

 

sage: M=CuspForms(Gamma0(1),24, prec=12);

sage: M.basis()

[

q + 195660*q^3 + 12080128*q^4 + 44656110*q^5 - 982499328*q^6 - 147247240*q^7 + 22106234880*q^8 - 8700375483*q^9 - 307849789440*q^10 + 407518320132*q^11 + O(q^12),

q^2 - 48*q^3 + 1080*q^4 - 15040*q^5 + 143820*q^6 - 985824*q^7 + 4857920*q^8 - 16295040*q^9 + 28412910*q^10 + 38671600*q^11 + O(q^12)

]

sage: M.newforms('a')

[q + a0*q^2 + (-48*a0 + 195660)*q^3 + (1080*a0 + 12080128)*q^4 + (-15040*a0 + 44656110)*q^5 + (143820*a0 - 982499328)*q^6 + (-985824*a0 - 147247240)*q^7 + (4857920*a0 + 22106234880)*q^8 + (-16295040*a0 - 8700375483)*q^9 + (28412910*a0 - 307849789440)*q^10 + (38671600*a0 + 407518320132)*q^11 + O(q^12)]

sage: T2 = M.hecke_matrix(2); T2

[       0 20468736]

[       1     1080]

sage: T2.eigenvalues()

[-4016.351171716246?, 5096.351171716245?]

sage: T3 = M.hecke_matrix(3); T3

[    195660 -982499328]

[       -48     143820]

sage: T3.eigenvalues()

[-48964.85624237977?, 388444.8562423798?]

sage: ei=T2.eigenvalues()

sage: a1=ei[0]

sage: a2=ei[1]

sage: A=Matrix([[1,a1],[1,a2]])

sage: A

[                  1 -4016.351171716246?]

[                  1  5096.351171716245?]

sage: A.inverse()

[     0.559257943434220?     0.4407420565657807?]

[-0.0001097369322855913?  0.0001097369322855913?]

 

NOTE: T3 eigenvalues are 195660-48*eig(T2) as expected.