[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Elliptic Curves

Let E be an elliptic curve. By the modularity theorem, which was recently proved by Breuil, Conrad, Diamond, Taylor, and Wiles there is a two-dimensional space M of modular symbols attached to E. Let N be the conductor of E; then M is obtained from ModularSymbols(N,2) by intersecting the kernels of T_p - a_p(E) for sufficiently many p.

Warning: The computation of M can already be very resource intensive for elliptic curves for which Conductor(E) is on the order of 5000. For example, the seemingly harmless expression ModularSymbols(EllipticCurve([0,6])) would bring my computer to its knees.

ModularSymbols(E) : CurveEll -> ModSym
ModularSymbols(E, sign) : CurveEll, RngIntElt -> ModSym
The space M of modular symbols associated to the elliptic curve E.

Example ModSym_BSD389A (H94E27)

We use the elliptic curve functions to numerically compute the Birch and Swinnerton-Dyer conjectural order of the Shafarevich-Tate group of the elliptic curve 389A, which is the curve of rank 2 with smallest conductor. The Birch and Swinnerton-Dyer conjecture asserts that (L^((r))(E, 1) /r!)= (prod c_p .( Sha) .( Reg) /|E(Q)_( tor)|^2), where r is the order of vanishing of L(E, s) at s=1.

> E := EllipticCurve(CremonaDatabase(),"389A");
> M := ModularSymbols(E);
> M;
Modular symbols space of level 389, weight 2, and dimension 2
> LRatio(M,1);  
0    
Next we compute the analytic rank and the leading coefficient of the L-series at s=1. (If your computer is very slow, use a number smaller than 300 below.)

> L1, r := LSeriesLeadingCoefficient(M,1,300);
> L1;
0.7593165002922467906576260031        
> r;        // The analytic rank is 2.
2            
Finally we check that the rank conjecture is true in this case, and compute the conjectural order of the Shafarevich-Tate group.

> Rank(E);  // The algebraic rank is 2.
2            
> Omega := RealVolume(M,300); Omega;
4.980435433609741580582713757
> Reg := Regulator(E); Reg;
0.1524601779431437875
> #TorsionSubgroup(E);
1
> TamagawaNumber(E,389);
1
> TamagawaNumber(M,389);        // entirely different algorithm
1
> Sha := L1/(Omega*Reg); Sha;
0.9999979295234896211


 [Next][Prev] [Right] [Left] [Up] [Index] [Root]