This document is one of More SageMath Tutorials. You may edit it on github. \(\def\NN{\mathbb{N}}\) \(\def\ZZ{\mathbb{Z}}\) \(\def\QQ{\mathbb{Q}}\) \(\def\RR{\mathbb{R}}\) \(\def\CC{\mathbb{C}}\)

Demonstration: Sage combines the power of multiple software

(taken from a talk from William Stein)

Construct an elliptic curve using John Cremona’s table:

sage: E = EllipticCurve('389a')

Use matplotlib to plot it:

sage: plot(E,thickness=3)

Use mwrank to do a 2-descent:

sage: print E.mwrank()
Curve [0,1,1,-2,0] :    Rank = 2

PARI to compute Fourier coefficients \(a_n\):

sage: E.anlist(15)
[0, 1, -2, -2, 2, -3, 4, -5, 0, 1, 6, -4, -4, -3, 10, 6]

lcalc to compute zeros in the critical strip of the L-series:

sage: E.lseries().zeros(5)
[0.000000000, 0.000000000, 2.87609907, 4.41689608, 5.79340263]

sympow to compute the modular degree:

sage: E.modular_degree()
40

Magma to compute the rank of the 3-selmer group:

sage: magma(E).ThreeSelmerGroup()