|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
Let E be an elliptic curve defined over the rational numbers Q
and denote by S={p1, ..., ps - 1, ∞} a finite set of primes
containing the prime at infinity.
There are only finitely many S-integral points on E. (That is, points
where the denominators of the coordinates are only supported by primes
in S.) Note that the point at infinity on E is never returned, since
it is supported at every prime.
The following algorithms use the technique of linear forms in complex
and p-adic elliptic logarithms.
Subsections
FBasis: SeqEnum[PtEll] Default:
Given an elliptic curve E over the Q, this returns a sequence
containing all the integral points on E, modulo negation.
Secondly, a sequence is returned containing representations of the same points
in terms of a fixed basis of the Mordell-Weil group (each such representation
is a sequence of tuples of the form [< (Pi, ni) >]).
The algorithm involves first computing generators of the Mordell-Weil group,
by calling MordellWeilShaInformation which accesses the appropriate tools
available in Magma (various descents, and also analytic tools).
Alternatively, the user may precompute
generators and pass them to IntegralPoints as the optional parameter FBasis.
This should be a sequence of points on E that are independent modulo torsion
(for instance, as returned by ReducedBasis).
IntegralPoints will then find all integral points on E that are in
the group generated by FBasis and torsion.
We find all integral points on a certain elliptic curve:
> E := EllipticCurve([0, 17]);
> Q, reps := IntegralPoints(E);
> Q;
[ (-2 : -3 : 1), (8 : 23 : 1), (43 : -282 : 1), (4 : 9 : 1),
(2 : -5 : 1), (-1 : 4 : 1), (52 : -375 : 1), (5234 : 378661 : 1) ]
> reps;
[
[ <(-2 : -3 : 1), 1> ],
[ <(-2 : -3 : 1), 2> ],
[ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), -2> ],
[ <(4 : -9 : 1), -1> ],
[ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), -1> ],
[ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), 1> ],
[ <(-2 : -3 : 1), 2>, <(4 : -9 : 1), 1> ],
[ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), 3> ]
]
We see here that the chosen basis consists of the points
( - 2 : - 3 : 1) and (4 : - 9 : 1), and that coefficients which are
zero are omitted.
If Q is a sequence of five integers [a, b, c, d, e] where e is a
square, this function returns all integral points (modulo negation)
on the curve y2=ax4 + bx3 + cx2 + dx + e.
If Q is a list of five integers [a, b, c, d, e] defining the
hyperelliptic quartic y2=ax4 + bx3 + cx2 + dx + e and P is a
sequence representing a rational point [x, y], this function
returns all integral points on Q.
We find all integral points (modulo negation) on the curve
y2 = x4 - 8x2 + 8x + 1. Since the constant term is a square we
can use the first form and do not have to provide a point as well.
> IntegralQuarticPoints([1, 0, -8, 8, 1]);
[
[ 2, -1 ],
[ -6, 31 ],
[ 0, 1 ]
]
FBasis: SeqEnum[PtEll] Default:
Given an elliptic curve E over the rationals and a set S
of finite primes, returns the sequence of all S-integral points,
modulo negation. The second return value, and the optional parameter
FBasis, are the same as in IntegralPoints.
We find all S-integral points on an elliptic curve of rank 2, for
the set of primes S = {2, 3, 5, 7}.
> E := EllipticCurve([-228, 848]);
> Q := SIntegralPoints(E, [2, 3, 5, 7]);
> for P in Q do P; end for; // Print one per line
(4 : 0 : 1)
(-11 : 45 : 1)
(16 : 36 : 1)
(97/4 : -783/8 : 1)
(-44/9 : -1160/27 : 1)
(857/4 : -25027/8 : 1)
(6361/400 : -282141/8000 : 1)
(534256 : -390502764 : 1)
(946/49 : -20700/343 : 1)
(-194/25 : -5796/125 : 1)
(34/9 : 172/27 : 1)
(814 : 23220 : 1)
(13 : 9 : 1)
(-16 : 20 : 1)
(1/4 : -225/8 : 1)
(52 : -360 : 1)
(53 : 371 : 1)
(16/49 : 9540/343 : 1)
(-16439/1024 : -631035/32768 : 1)
(34 : 180 : 1)
(-2 : 36 : 1)
(-14 : -36 : 1)
(14 : -20 : 1)
(754 : -20700 : 1)
(94/25 : -828/125 : 1)
(2 : 20 : 1)
(94 : 900 : 1)
(-818/49 : 468/343 : 1)
(49/16 : -855/64 : 1)
(196 : -2736 : 1)
(629/25 : 13133/125 : 1)
(1534/81 : -42020/729 : 1)
(8516/117649 : -1163623840/40353607 : 1)
Given a sequence of integers Q = [a, b, c, d, e] where a is a square,
this function returns all S-integral points on the quartic
curve y2 = ax4 + bx3 + cx2 + dx + e for the set S of finite primes.
Given a sequence of integers Q = [a, b, c, d], this function
returns all S-integral points on the curve
C: ay2 = bx4 + cx2 + d for the set S of finite primes, provided that C is nonsingular.
Given a sequence of integers Q = [a, b, c, d], this function
returns all S-integral points on C: ay3 + bx3 + cxy + d=0 for the set S of finite primes,
provided that C is nonsingular.
We find the points supported by [2, 3, 5, 7] on the curve
9y3 + 2x3 + xy + 8 = 0.
> S := [2, 3, 5, 7];
> SIntegralDesbovesPoints([9, 2, 1, 8], S);
[
[ 1, -1 ],
[ -94/7, 172/21 ],
[ -11/7, 2/7 ],
[ 5, -3 ],
[ 2, -4/3 ],
[ 2/7, -20/21 ],
[ -8/5, -2/15 ]
]
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|