# why elliptic curve plot() the same in Q and QuadraticField()?

asked 2014-10-28 05:59:14 -0500

This post is a wiki. Anyone with karma >750 is welcome to improve it.

sage: E = EllipticCurve([0,0,0,-15,22])
sage: show(E)
sage: K1.<a> = QuadraticField(3)
sage: E1 = EllipticCurve(K1,[0,0,0,-15,22])
sage: show(E1)
sage: E.torsion_subgroup()
Torsion Subgroup isomorphic to Z/6 associated to the Elliptic Curve defined by y^2 = x^3 - 15*x + 22 over Rational Field
sage: E1.torsion_subgroup()
Torsion Subgroup isomorphic to Z/2 + Z/6 associated to the Elliptic Curve defined by y^2 = x^3 + (-15)*x + 22 over Number Field in a with defining polynomial x^2 - 3
sage: table(E1.torsion_subgroup().list(),frame="true").transpose()
+----------------------------+
| (0 : 1 : 0)                |
+----------------------------+
| (-2*a + 5 : -6*a + 12 : 1) |
+----------------------------+
| (3 : 2 : 1)                |
+----------------------------+
| (-2*a - 1 : 0 : 1)         |
+----------------------------+
| (3 : -2 : 1)               |
+----------------------------+
| (-2*a + 5 : 6*a - 12 : 1)  |
+----------------------------+
| (2 : 0 : 1)                |
+----------------------------+
| (2*a + 5 : 6*a + 12 : 1)   |
+----------------------------+
| (-1 : 6 : 1)               |
+----------------------------+
| (2*a - 1 : 0 : 1)          |
+----------------------------+
| (-1 : -6 : 1)              |
+----------------------------+
| (2*a + 5 : -6*a - 12 : 1)  |
+----------------------------+
sage: E.plot()
sage: E1.plot()

edit retag close merge delete

Sort by » oldest newest most voted

Hello,

The method plot actually plots the real points of the curve. Hence, it does not depend on the field of definition.

I agree that it is not very well documented.

Vincent

more

This does actually depend on the field of definition, see for example: E.change_ring(RealField(10)).plot() E.change_ring(CC).plot()

( 2014-10-29 11:05:24 -0500 )edit

As you can see (by typing E.plot??) that the first thing that the plot method does is to see if the field of definition of the curve can be put in RR, and then work on RR:

    RR = rings.RealField()
K = self.base_ring()
try:
RR._coerce_(K(1))


This is indeed a bug since it is not documented. It is now reported at trac ticket 17256.

more