# 楕円曲線 E_1 : y^2 = x^3 + 1
E1 = EllipticCurve([0,0,0,0,1])

# 楕円曲線 E_2 : y^2 = x^3 - 2
E2 = EllipticCurve([0,0,0,0,-2])

# 楕円曲線 E_3 : y^2 = x^3 - 17 x
E3 = EllipticCurve([0,0,0,-17,0])

# E_1 の有理点の無限位数の生成元はない
E1.gens()

# P : E_2 の有理点の生成元
P = E2.gens()[0]

# Q, R : E_2 の有理点の生成元
Q = E3.gens()[0]
R = E3.gens()[1]

P, Q, R

2*P, 3*P, 4*P, 5*P
2*Q, 3*Q, 4*Q, 5*Q
2*R, 3*R, 4*R, 5*R

# E_1, E_2, E_3 の位数有限な有理点
E1.torsion_subgroup()
E2.torsion_subgroup()
E3.torsion_subgroup()


[] ((3 : 5 : 1), (-4 : 2 : 1), (-1 : 4 : 1)) ((129/100 : -383/1000 : 1), (164323/29241 : -66234835/5000211 : 1), (2340922881/58675600 : 113259286337279/449455096000 : 1), (307326105747363/160280942564521 : 4559771683571581358275/2029190552145716973931 : 1)) ((1089/16 : -35871/64 : 1), (-4169764/1329409 : 7264943878/1532808577 : 1), (1416749814529/82350633024 : -1637173839697065089/23631996457631232 : 1), (-4366582265180491876/2293536464416890625 : 17527833872407565742070359818/3473429383704734932462890625 : 1)) ((81/16 : 423/64 : 1), (-36481/9409 : -2520436/912673 : 1), (119093569/11451456 : -1193164200991/38751727104 : 1), (-156588778369/1811244930625 : -2954516838414879596/2437618708758390625 : 1)) Torsion Subgroup isomorphic to Z/6 associated to the Elliptic Curve defined by y^2 = x^3 + 1 over Rational Field Torsion Subgroup isomorphic to Trivial group associated to the Elliptic Curve defined by y^2 = x^3 - 2 over Rational Field Torsion Subgroup isomorphic to Z/2 associated to the Elliptic Curve defined by y^2 = x^3 - 17*x over Rational Field

# N_p(E)/pの積を計算する。listのi番目の要素は、i番目の素数p_iまでのN_p(E)/pの積
E1L1 = [E1.Np(2)/2]
E2L1 = [E2.Np(2)/2]
E3L1 = [E3.Np(2)/2]
for i in range(10000):
p = Primes().unrank(i+1)
E1L1.append(E1L1[-1]*E1.Np(p)/p)
E2L1.append(E2L1[-1]*E2.Np(p)/p)
E3L1.append(E3L1[-1]*E3.Np(p)/p)

# N_p(E)/pの積のプロット
p1 = list_plot(E1L1, plotjointed=true)
p2 = list_plot(E2L1, rgbcolor='red')
p3 = list_plot(E3L1, rgbcolor='green')

p1.show()
p2.show()
p3.show()

p1.save('BSD1.png')
p2.save('BSD2.png')
p3.save('BSD3.png')

g = p1 + p2 + p3
g.show()
g.save('BSD.png')


verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw
verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw
verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw verbose 0 (163: primitive.py, options) WARNING: Ignoring option 'plotjointed'=True verbose 0 (163: primitive.py, options) The allowed options for Point set defined by 10001 point(s) are: alpha How transparent the point is. faceted If True color the edge of the point. (only for 2D plots) hue The color given as a hue. legend_color The color of the legend text legend_label The label for this item in the legend. marker the marker symbol for 2D plots only (see documentation of plot() for details) markeredgecolorthe color of the marker edge (only for 2D plots) rgbcolor The color as an RGB tuple. size How big the point is (i.e., area in points^2=(1/72 inch)^2). zorder The layer level in which to draw