Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Maybe something like that:

sage: E = EllipticCurve(QQ,[-35/4,-49/4])
sage: E2 = E.change_ring(CC)
sage: p = E.torsion_polynomial(3)
sage: p.complex_roots()
[-0.682991613296036,
 5.26556730825188,
 -2.29128784747792 - 1.35880032042306*I,
 -2.29128784747792 + 1.35880032042306*I]
sage: x=p.complex_roots()[1]
sage: E2.lift_x(x)
(5.26556730825188 : 9.36325015678740 : 1.00000000000000)

Maybe something like that:

sage: E = EllipticCurve(QQ,[-35/4,-49/4])
sage: E2 = E.change_ring(CC)
sage: p = E.torsion_polynomial(3)
sage: p.complex_roots()
[-0.682991613296036,
 5.26556730825188,
 -2.29128784747792 - 1.35880032042306*I,
 -2.29128784747792 + 1.35880032042306*I]
sage: x=p.complex_roots()[1]
sage: E2.lift_x(x)
(5.26556730825188 : 9.36325015678740 : 1.00000000000000)

Sometimes it is better (but maybe slower) to work over QQbar for exact results.

sage: E3 = E.change_ring(QQbar)
sage: p = E3.torsion_polynomial(3)
sage: p.roots()
[(-0.6829916132960358?, 1),
 (5.265567308251876?, 1),
 (-2.291287847477920? - 1.358800320423061?*I, 1),
 (-2.291287847477920? + 1.358800320423061?*I, 1)]
sage: x = p.roots()[1][0]
sage: g = E3.lift_x(x); g
(5.265567308251876? : 9.363250156787399? : 1)
sage: g+g
(5.265567308251876? : -9.363250156787399? : 1)
sage: g+g+g
(0 : 1 : 0)

Maybe something like that:

sage: E = EllipticCurve(QQ,[-35/4,-49/4])
sage: E2 = E.change_ring(CC)
sage: p = E.torsion_polynomial(3)
sage: p.complex_roots()
[-0.682991613296036,
 5.26556730825188,
 -2.29128784747792 - 1.35880032042306*I,
 -2.29128784747792 + 1.35880032042306*I]
sage: x=p.complex_roots()[1]
x = p.complex_roots()[1]
sage: E2.lift_x(x)
(5.26556730825188 : 9.36325015678740 : 1.00000000000000)

Sometimes it is better (but maybe slower) to work over QQbar for exact results.

sage: E3 = E.change_ring(QQbar)
sage: p = E3.torsion_polynomial(3)
sage: p.roots()
[(-0.6829916132960358?, 1),
 (5.265567308251876?, 1),
 (-2.291287847477920? - 1.358800320423061?*I, 1),
 (-2.291287847477920? + 1.358800320423061?*I, 1)]
sage: x = p.roots()[1][0]
sage: g = E3.lift_x(x); g
(5.265567308251876? : 9.363250156787399? : 1)
sage: g+g
(5.265567308251876? : -9.363250156787399? : 1)
sage: g+g+g
(0 : 1 : 0)

You could also work over the splitting field of the division polynomial.