The following intrinsics give the q-expansion of
a modular form (about the cusp ∞).
In this example, we compute the q-expansion of a
modular form f∈M
3(Γ
1(11)) in several ways.
> M := ModularForms(Gamma1(11),3); M;
Space of modular forms on Gamma_1(11) of weight 3 and dimension 15
over Integer Ring.
> f := M.1;
> f;
1 + O(q^8)
> qExpansion(f);
1 + O(q^8)
> Coefficient(f,16); // f is a modular form, so has infinite precision
-5457936
> qExpansion(f,17);
1 + 763774*q^15 - 5457936*q^16 + O(q^17)
> PowerSeries(f,20); // same as qExpansion(f,20)
1 + 763774*q^15 - 5457936*q^16 + 14709156*q^17 - 12391258*q^18 -
21614340*q^19 + O(q^20)
The "big-oh" notation is supported via addition of a modular
form and a power series.
> M<q> := Parent(f);
> Parent(q);
Power series ring in q over Integer Ring
> f + O(q^17);
1 + 763774*q^15 - 5457936*q^16 + O(q^17)
> 5*q - O(q^17) + f;
1 + 5*q + 763774*q^15 - 5457936*q^16 + O(q^17)
> 5*q + f;
1 + 5*q + O(q^8)
Default printing precision can be set using the command
SetPrecision.
> SetPrecision(M,16);
> f;
1 + 763774*q^15 + O(q^16)
The
PrecisionBound intrinsic is related to Weierstrass
points on modular curves.
Let N be a positive integer such that
S = S
2(Γ
0(N)) has dimension at least 2.
Then the point ∞ is a Weierstrass
point on X
0(N) if and only if
PrecisionBound(S : Exact := true)-1 ne Dimension(S).
> function InftyIsWP(N)
> S := CuspidalSubspace(ModularForms(Gamma0(N),2));
> assert Dimension(S) ge 2;
> return (PrecisionBound(S : Exact := true)-1) ne Dimension(S);
> end function;
> [<N,InftyIsWP(N)> : N in [97..100]];
[ <97, false>, <98, true>, <99, false>, <100, true> ]
It is an open problem to give a simple characterization
of the integers N such that ∞ is a Weierstrass point
on X
0(N), though Atkin and others have made significant progress on
this problem (see, e.g., 1967 Annals paper
[Atk67]).
I verified that if N<3223 is square free, then ∞ is not
a Weierstrass point on X
0(N), which suggests a nice conjecture.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]