Bill Allombert on Mon, 15 Apr 2024 12:00:45 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: general question relating to elliptic curves and their rational points and creating a pool of rational points of count N


On Sun, Apr 14, 2024 at 05:51:24PM -0700, American Citizen wrote:
> Hello:
> 
> I am currently working with rational Diophantine sextuples, example: [5/4,
> 5/36, 32/9, 189/4, 665/1521, 3213/676] where the product of any pair + 1 is
> a rational square.
> 
> If we select 3 of the ratios, making a triple, say [5/4, 5/36, 32/9], we can
> create an elliptic curve associated with the triple [a,b,c]
> 
> E:  [0,(a*b+a*c+b*c),0,(a*b*c)*(a+b+c),(a*b*c)^2]
> 
> I have been working with 758 sextuples, and found elliptic curves of rank =1
> through rank = 10 for Diophantine triples derived from the sextuples. (20
> triples per sextuple).
> 
> My question to the group is this, given the Mordell-Weil basis (which seems
> quite easy to find for E), how can I determine a cut-off value of elliptic
> curve point heights for creating a pool of 10K points that are on the curve?
> 
> I am using a gp-pari command called "ellpool(E,p,h)" where E is the curve, p
> 
> I need to determine h such that the count of the pool is around 10K or so.
> Determining h seems somewhat hard to figure out, although I was using the
> regulator^(1/rank) * F to set the height h (where F is around 5 to 12 or so)
> and that generally works, but not always. Of  course the torsion group for
> the curve E plays a huge part too in finding the pool of points, as the
> torsion points automatically increase the rational points found.
> 
> Has someone done this work before? Can any papers be cited?

This is just come from lattice theory:

M=ellheightmatrix(E,MW_basis)
gives you a lattice and you can use qfminim(M,B,,2) to find short vectors in
your lattices.

Each lattice vectors will give you #tors points having the same height.
So pick 
N=10000/elltors(E)[1]

What you need to do then is to pick B so that qfminim return about N vectors.

The expected relation between N and B is something like this:

B = sqrtn((N /(Pi^(n/2) / gamma(n/2 + 1)))^2*reg,n)
when n is the rank.

E=ellinit([0, 6625/1296, 0, 2225/729, 2500/6561])
MW_basis = [[124/9, 4879/81], [1600/9, 194750/81]]
M=ellheightmatrix(E,MW_basis)
n=#MW_basis; reg = matdet(M);
tors=elltors(E);
N=10000/tors[1];
B = sqrtn((N /(Pi^(n/2) / gamma(n/2 + 1)))^2*reg,n)
qfminim(M,B,,2)

%8 = [2500,2826.9854922754748719832305224795906320

We are very lucky, we get exactly the number we asked for!

Cheers,
Bill.