Modular
Form L-function Profiles
Chris
King
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.