Homeに戻る  一覧に戻る 

Rational Points on Elliptic Curve: y^2=x^3+7823


[2003.11.24]y^2=x^3+7823の有理点


■楕円曲線
     E: y2=x3+7823
の有理点を求める。
ここで、7823は素数である。

■楕円曲線Eの判別式 Δ,j-不変量 j,導手 Nは、それぞれ、
     Δ = -26438110128
     j = 0
     N = 26438110128
である。
gp>  e=ellinit([0,0,0,0,7823])
time = 38 ms.
%28 = [0, 0, 0, 0, 7823, 0, 0, 31292, 0, 0, -6759072, -26438110128, 0, [-19.85139861599267338366739366, 9.925699307996336691833696830 - 17.19181550210090147883446796*I, 9.925699307996336691833696830 + 17.19181550210090147883446796*I]~, 0.9441263528588053501078812122, -0.4720631764294026750539406061 + 0.2725458019860254346787548633*I, -5.763421470257824514359264813 + 0.E-28*I, 2.881710735128912257179632406 - 4.991269405959935527809297249*I, 0.2573176740160443415175089611]
gp>  e.j
time = 0 ms.
%29 = 0
gp>  e.disc
time = 0 ms.
%30 = -26438110128
gp>  ellglobalred(e)
time = 3 ms.
%31 = [26438110128, [1, 0, 0, 0], 1]

■楕円曲線Eは、自明なねじれ点Oを持つ。
つまり、Eのねじれ点群E(Q)torsは、{ O }に同型である。
gp>  elltors(e,1)
time = 68 ms.
%33 = [1, [], []]

■楕円曲線Eの有理点群E(Q)のrankは、Cremonaのmwrank3によって、0または1であることが分かる。
bash-2.05a$ mwrank3
Program mwrank: uses 2-descent (via 2-isogeny if possible) to
determine the rank of an elliptic curve E over Q, and list a
set of points which generate E(Q) modulo 2E(Q).
and finally search for further points on the curve.
For more details see the file mwrank.doc.
For details of algorithms see the author's book.

Please acknowledge use of this program in published work, 
and send problems to John.Cremona@nottingham.ac.uk.

Version compiled on Feb 11 2003 at 17:40:15 by GCC 3.2.1
using base arithmetic option LiDIA_ALL (LiDIA bigints and multiprecision floating point)
Using LiDIA multiprecision floating point with 15 decimal places.
Enter curve: [0,0,0,0,7823]

Curve [0,0,0,0,7823] :  No points of order 2
Basic pair: I=0, J=-211221
disc=-44614310841
2-adic index bound = 2
2-adic index = 2
Two (I,J) pairs
Looking for quartics with I = 0, J = -211221
Looking for Type 3 quartics:
Trying positive a from 1 up to 17 (square a first...)
Trying positive a from 1 up to 17 (...then non-square a)
Trying negative a from -1 down to -11
Finished looking for Type 3 quartics.
Looking for quartics with I = 0, J = -13518144
Looking for Type 3 quartics:
Trying positive a from 1 up to 68 (square a first...)
Trying positive a from 1 up to 68 (...then non-square a)
(30,-12,48,116,-18)     --nontrivial...locally soluble...no rational point found (limit 10) --new (B) #1
(41,-16,-6,112,-11)     --nontrivial...--equivalent to (B) #1
Trying negative a from -1 down to -45
(-11,-20,408,1784,2072) --nontrivial...--equivalent to (B) #1
(-18,-28,312,996,838)   --nontrivial...--equivalent to (B) #1
Finished looking for Type 3 quartics.
Mordell rank contribution from B=im(eps) = 0
Selmer  rank contribution from B=im(eps) = 1
Sha     rank contribution from B=im(eps) = 1
Mordell rank contribution from A=ker(eps) = 0
Selmer  rank contribution from A=ker(eps) = 0
Sha     rank contribution from A=ker(eps) = 0

Warning: Selmer rank = 1 and program finds 
lower bound for rank = 0 which differs by an odd
integer from the Selmer rank.   Hence the rank must be 1 more
than reported here.  Try rerunning with a higher bound for
quartic point search.

Summary of results (all should be powers of 2):

n0 = #E(Q)[2]    = 1
n1 = #E(Q)/2E(Q) >= 1
n2 = #S^(2)(E/Q) = 2
#III(E/Q)[2]     <= 2

0 <= rank <= selmer-rank = 1

0 <= rank <= selmer-rank = 1
After descent, rank of points found is 0


The rank has not been completely determined, 
only a lower bound of 0 and an upper bound of 1.
Standard parity conjectures would increase the lower bound by 1 to 1,
 implying that the rank was exactly 1.
 (13.2 seconds)
Enter curve: [0,0,0,0,0]

bash-2.05a$ 
参考文献[4],[5]によると、rank(E)=1であり、
E(Q)の生成元は、
     P(2263582143321421502100209233517777/119816734100955612,
       -186398152584623305624837551485596770028144776655756/119816734100955613)
であることが示されている。

■ここでは、[4],[5]の方法(4-descent)で、E(Q)の有理点を計算する。
mwrank3(2-descent)の結果より、楕円曲線Eの2-covering
     D: y2 = -18x4+116x3+48x2-12x+30
を得る。楕円曲線Dは、locally solutableである。
syzygyより、楕円曲線Dから、楕円曲線Eへの有理変換ξ:D→Eを求める。
     ξ(x,y) = ({3g4(x,1)}/{12y2},{27g6(x,1)/{12y3})
ただし、
     g4(X,Y) = 47280X4 + 17088X3Y + 43488X2Y2 - 85824XY3 - 11088Y4
     g6(X,Y) = 1930688X6 + 2034816X5Y - 3520320X4Y2 + 8125440X3Y3 + 2998080X2Y4 + 1224576XY5 - 902592Y6
である。よって、ξ(x,y)=(X,Y)とすると、
     X = {985x4 + 356x3 + 906x2 - 1788x - 231}/{y2},
     Y = {30167x6 + 31794x5 - 55005x4 + 126960x3 + 46845x2 + 19134x - 14103}/{y3}
である。
gp>  read("stoll.gp")
time = 57 ms.
gp>  gsi(x,y)
time = 39 ms.
%1 = [985/y^2*x^4 + 356/y^2*x^3 + 906/y^2*x^2 - 1788/y^2*x - 231/y^2, 30167/y^3*x^6 + 31794/y^3*x^5 - 55005/y^3*x^4 + 126960/y^3*x^3 + 46845/y^3*x^2 + 19134/y^3*x - 14103/y^3]
gp>  %1[1]*y^2
time = 13 ms.
%2 = 985*x^4 + 356*x^3 + 906*x^2 - 1788*x - 231
gp>  %1[2]*y^3
time = 15 ms.
%3 = 30167*x^6 + 31794*x^5 - 55005*x^4 + 126960*x^3 + 46845*x^2 + 19134*x - 14103

(x,y)を楕円曲線D上の有理点とすると、
     X3+7823-Y2
         = 7823(324x8-4176x7+11728x6+11568x5+(-18y2-1560)x4+(116y2+5808)x3+(48y2+3024)x2+(-12y2-720)x+y4+30y2+900)(18x4-116x3-48x2+12x+y2-30)/{y6}
         = 0
なので、(X,Y)は楕円曲線E上の有理点であることが分かる。

[asirによる計算]
[0] X=(985*x^4 + 356*x^3 + 906*x^2 - 1788*x - 231)/y^2;
(985*x^4+356*x^3+906*x^2-1788*x-231)/(y^2)
[1] Y=(30167*x^6 + 31794*x^5 - 55005*x^4 + 126960*x^3 + 46845*x^2 + 19134*x - 14103)/y^3;
(30167*x^6+31794*x^5-55005*x^4+126960*x^3+46845*x^2+19134*x-14103)/(y^3)
[2] F=red((X^3+7823-Y^2)*y^6);
45623736*x^12-882058896*x^11+5319389664*x^10-7415327824*x^9-15589236312*x^8-29289312*x^7-5925453120*x^6-7887837024*x^5+555933672*x^4-1625556816*x^3-1115246880*x^2+253465200*x+7823*y^6-211221000
[3] fctr(F);
[[7823,1],[324*x^8-4176*x^7+11728*x^6+11568*x^5+(-18*y^2-1560)*x^4+(116*y^2+5808)*x^3+(48*y^2+3024)*x^2+(-12*y^2-720)*x+y^4+30*y^2+900,1],[18*x^4-116*x^3-48*x^2+12*x+y^2-30,1]]

■多項式g(x)=-18x4+116x3+48x2-12x+30は、その判別式は負であり、2個の実根と2個の虚根を持つ。つまり、曲線DはType 3である。
gp>  f(x,0)   
time = 1 ms.
%5 = -18*x^4 + 116*x^3 + 48*x^2 - 12*x + 30
gp>  poldisc(-18*x^4+116*x^3+48*x^2-12*x+30)
time = 8 ms.
%6 = -6768156192768
gp>  polroots(-18*x^4 + 116*x^3 + 48*x^2 - 12*x + 30)
time = 286 ms.
%7 = [-0.8201001084511361836541385020 + 0.E-28*I, 6.826037817661110050780091244 + 0.E-28*I, 0.2192533676172352886592458509 - 0.4996513902612574259040823588*I, 0.2192533676172352886592458509 + 0.4996513902612574259040823587*I]~

■楕円曲線Eの4-covering Cが以下のように計算できる。
曲線Cは、P3の以下の2つの2次曲面の交わりである。
     x12+4x1x2-2x1x3-2x1x4-2x22-3x32+4x3x4+x42 = 0,
     x12-6x1x4+2x22+4x2x3+3x32+2x3x4+x42 = 0

曲線Cの有理点(x1:x2:x3:x4) \in P3をmax{|x1|,|x2|,|x3|,|x4|}<= 1000の範囲で探すと、(681:-116:-125:142)が見つかる。

[Cプログラムによる計算]
bash-2.05a$ gcc -m486 -O2 -lm x7823.c -o x7823  
bash-2.05a$ ./x7823 1000 1000 1000
find4 -- a1=1000, a2=1000, a3=1000
[681,-116,-125,142]

real    23m25.373s
user    22m50.790s
sys     0m0.270s
bash-2.05a$ 

■曲線Cから曲線Dへの有理変換ψを求める。
x=[x1;
       x2;
       x3;
       x4],
xt=[x1,x2,x3,x4],
M1=[1,0,0,-3;
         0,2,2,0;
         0,2,3,1;
         -3,0,1,1],
M2=[1,2,-1,-1;
         2,-2,0,0;
         -1,0,-3,2;
         -1,0,2,1],
とすると、曲線Cは、以下のように表現できる。
      xtM1x=0,
      xtM2x=0

M1,M2のadjointをそれぞれM1',M2'とすると、
      det(x*M1+M2)=g(x),
      adj(t1M1'+t2M2')=t13(-18)2M1+t12t2(-18)D1+t1t22(30)D2+t23(30)2M2,
である。ただし、
      D1=[-146,88,166,66;
            88,-20,-56,60;
            166,-56,-140,48;
            66,60,48,-102]
      D2=[282,84,8,-202;
            84,-84,-160,68;
            8,-160,-176,158;
            -202,68,158,174]
である。
F1=xtD1x,
F2=xtD2x
とすると、syzygy
      G2=-18F14-116F13F2+48F12F22+12F1F23+30F24
を得る。よって、ψ:C→D
     ψ(x)=({-F1(x)}/{F2(x)},{G(x)}/{F2(x)2})
つまり、
     ψ(x1:x2:x3:x4)=({146x12-176x1x2 -332x1x3 - 132x1x4 + 20x22 + 112x2x3 - 120x2x4+ 140x32 - 96x3x4+102x42}/{282x12 + 168x1x2 + 16x1x3 - 404x1x4 -84x22 -320x2x3 + 136x2x4-176x32 + 316x3x4 + 174x42},
{G(x)}/{(282x12 + 168x1x2 + 16x1x3 - 404x1x4 -84x22 -320x2x3 + 136x2x4-176x32 + 316x3x4 + 174x42)2})
とする。

■曲線Cの有理点P(681:-116:-125:142)をψで写すと、曲線Dの有理点Q(53463613/32109353, 23963346820191122/1031010550078609)を得る。有理点Qを有理変換ξで写すと、楕円曲線Eの有理点Rを得る。
gp>  read("stoll.gp")
time = 200 ms.
%1 = 0
gp>  P
time = 0 ms.
%2 = [53463613/32109353, 23963346820191122/1031010550078609]
gp>  gsi(53463613/32109353, 23963346820191122/1031010550078609)
time = 18 ms.
%3 = [2263582143321421502100209233517777/143560497706190989485475151904721, 186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481]
gp>  ec(2263582143321421502100209233517777/14356049770619098948547515194721, 186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481)
time = 2 ms.
%4 = 0
よって、楕円曲線Eの有理点
     R(2263582143321421502100209233517777/14356049770619098948547515194721,
         186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481)
が得られた。

[2016.06.19追記]
楕円曲線Eは、analyticrank(E)=1であることから、rank(E)=1が分かり、そのHeegner点を計算することにより、有理点を求めることができる。
Windows 10(x64)上のpari/gp-2.7.5(x64)により、楕円曲線EのHeegner点を計算すると、以下のようになる。
Reading GPRC: gprc.txt ...Done.

                  GP/PARI CALCULATOR Version 2.7.5 (released)
          amd64 running mingw (x86-64/GMP-6.0.0 kernel) 64-bit version
                compiled: Oct 26 2015, gcc version 4.9.3 (GCC)
                            threading engine: single
                 (readline v6.2 enabled, extended help enabled)

                     Copyright (C) 2000-2015 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes
WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 512000000, primelimit = 500000
(10:25) gp > e=ellinit([0,0,0,0,7823])
time = 1 ms.
%1 = [0, 0, 0, 0, 7823, 0, 0, 31292, 0, 0, -6759072, -26438110128, 0, Vecsmall([1]), [Vecsmall([128, -1])], [0, 0, 0, 0, 0, 0, 0, 0]]
(10:26) gp > elltors(e,1)
time = 2 ms.
%2 = [1, [], []]
(10:26) gp > ellanalyticrank(e)
time = 3min, 9,311 ms.
%3 = [1, 73.280985665204125605489526771501344538]
(10:29) gp > P=ellheegner(e)
(10:29) gp > P=ellheegner(e)
time = 11h, 46min, 44,151 ms.
%4 = [2263582143321421502100209233517777/143560497706190989485475151904721, 186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481]
(22:17) gp > ellisoncurve(e,P)
%5 = 1
(22:19) gp > ellheight(e,P)
%6 = 77.617773768638083972811277401165589664

このように、楕円曲線Eの有理点
     (2263582143321421502100209233517777/143560497706190989485475151904721,
      186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481)
       height 77.617773768638083
が計算できた。


[参考文献]


Last Update: 2022.10.24
H.Nakao

Homeに戻る[Homeに戻る]  一覧に戻る[一覧に戻る]