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)
2 | No.2 Revision |
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)
3 | No.3 Revision |
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.