Homeに戻る  一覧に戻る 

Rational Points on Elliptic Curve: x^4+y^2=257


[2004.08.29]x^4+y^2=257の有理点


楕円曲線
     C: x4+y2 = 257
の整点と有理点を求める。
■楕円曲線Cの整点(x,y)は、|x| <= 257(1/4) < 4.004, |y| <= 257(1/2) < 16.032を満たすので、有限個の組合せを調べて、
     (x,y)=(±4,±1),(±1,±16)
であることが直ちに分かる。

■楕円曲線CをWeierstrass標準形に有理変換する。
楕円曲線Cは有理変換(x,y)→(x-4,y)[逆変換は(x',y')→(x'+4,y')]によって、楕円曲線
     C1: y2=-x4-16x3-96x2-256x+1
に写される。
[pari/gpによる計算]
gp>  read("x4py2m257.gp")
time = 36 ms.
gp>  cc(x,y)
time = 0 ms.
%1 = x^4 + (y^2 - 257)
gp>  cc(x+4,y)
time = 1 ms.
%2 = x^4 + 16*x^3 + 96*x^2 + 256*x + (y^2 - 1)

楕円曲線C1は、双有理点変換(x,y)→(X,Y)
     X={2(-128x+y+1)}/{x2},
     Y={4(-8240x2-128x+y+1)}/{x3}
[逆変換(X,Y)→(x,y)は、
     x={2(X-16480)}/{Y},
     y={2X3-65920X2+256Y+543180800X-Y2-4218880Y)}/{Y2}
]
によって、楕円曲線
     E1: Y2-256XY-32Y=X3-16480X2+4X-65920
に写される。
[pari/gpによる計算]
gp>  aa
time = 0 ms.
%3 = [-256, -16480, -32, 4, -65920]
gp>  xx(x,y)
time = 1 ms.
%4 = (-256*x + (2*y + 2))/x^2
gp>  yy(x,y)
time = 6 ms.
%5 = (-32960*x^2 - 512*x + (4*y + 4))/x^3
gp>  uu(X,Y)
time = 0 ms.
%6 = 2/Y*X - 32960/Y
gp>  vv(X,Y)
time = 19 ms.
%7 = 2/Y^2*X^3 - 65920/Y^2*X^2 + ((256*Y + 543180800)/Y^2)*X + ((-Y - 4218880)/Y)

楕円曲線E1は、双対有理変換[1, 32, 128, 4112]によって、
楕円曲線
     E: Y2 = X3+1028X
に写される。
[pari/gpによる計算]
gp>  e1=ellinit(aa)
time = 189 ms.
%8 = [-256, -16480, -32, 4, -65920, -384, 8200, -262656, 8404976, -49344, 0, -69527932928, 1728, [32.00000000000000000000000000, 31.99999999999999999999999999 + 32.06243908376279472974270951*I, 31.99999999999999999999999999 - 32.06243908376279472974270951*I]~, 0.6548757961067990028692799595, -0.3274378980533995014346399797 + 0.3274378980533995014346399797*I, -4.797234334001028486722479519 + 5.45296774 E-29*I, 2.398617167000514243361239759 - 7.195851501001542730083719278*I, 0.2144311541632568900217290109]
gp>  ellglobalred(e1)
time = 10 ms.
%9 = [2113568, [1, 32, 128, 4112], 8]
gp>  e=ellchangecurve(e1,[1, 32, 128, 4112])
time = 3 ms.
%10 = [0, 0, 0, 1028, 0, 0, 2056, 0, -1056784, -49344, 0, -69527932928, 1728, [0.E-27, -4.03896783 E-28 + 32.06243908376279472974270951*I, -4.03896783 E-28 - 32.06243908376279472974270951*I]~, 0.6548757961067990028692799595, -0.3274378980533995014346399797 + 0.3274378980533995014346399797*I, -4.797234334001028486722479519 + 5.45296774 E-29*I, 2.398617167000514243361239759 - 7.195851501001542730083719278*I, 0.2144311541632568900217290109]

これらの各有理変換を合成すると、楕円曲線Cから楕円曲線Eへの有理変換(x,y)→(X,Y)は、
     X={2(16x2-256x+y+769)}/{(x-4)2},
     Y={4(1028x3-28768x2+64xy+180736x-255y-3284447)}/{(x-4)3}
となり、楕円曲線Eから楕円曲線Cへの逆変換(X,Y)→(x,y)は
     x={2(255X-2Y+16544)}/{128X-Y+16},
     y={2X3 - 115264X2 - 512XY+1088462848X-Y2 - 4227040Y - 17381720320}/{(128X-Y+4112)2}
となることが分かる。

[pari/gpによる計算]
gp>  ee=[1, 32, 128, 4112]
time = 0 ms.
%11 = [1, 32, 128, 4112]
gp>  qq             
time = 0 ms.
%12 = [-1, -16, -96, -256, 1]
gp>  ggg([x,y],-4,qq,ee)
time = 19 ms.
%13 = [(32*x^2 - 512*x + (2*y + 1538))/(x^2 - 8*x + 16), (4112*x^3 - 115072*x^2 + (256*y + 722944)*x + (-1020*y - 1313788))/(x^3 - 12*x^2 + 48*x - 64)]
gp>  fff([X,Y],-4,qq,ee)
time = 7 ms.
%14 = [(-510*x + (4*y - 33088))/(-128*x + (y - 16)), (2*x^3 - 115264*x^2 + (512*y + 1088462848)*x + (-y^2 - 4227040*y - 17381720320))/(16384*x^2 + (-256*y + 4096)*x + (y^2 - 32*y + 256))]

■楕円曲線E:Y2=X3+1028Xの有理点を求める。
SIMATH-4.6.1(simcalc)によって、楕円曲線Eのねじれ点群E(Q)torsは、{(0,0), O}つまりZ/2Zであり、Mordell-Weil群E(Q)のrankは2であり、その生成元は(18,156),(50,420)であることが分かる。

また、楕円曲線Eの整点は、Pと-Pを同一視すると、
     (0,0), (18,156), (50,420), (256,4128), (16448,219456)
である。(0,0)以外は、(-1)倍した点も異なる整点であるので、楕円曲線Eは
     (0,0), (18,±156), (50,±420), (256,±4128), (16448,±219456)
の合計9個の整点を持つことが分かる。

[simcalcによる計算]
> E=EC(1028,0)
                       E = EC(1028, 0)
> tors(E,3)
             structure:      Z/2Z
  generator:      PT(0, 0, 1)
  torsion points: PT(0, 0, 1)
                  PT(0, 1, 0)
         @ = 2
> basismwg(E)
               basis :  PT(18, 156, 1)
           PT(50, 420, 1)
         @ = 2
> faintp(E)
             all nontrivial integral points modulo negation :
  PT(0, 0, 1) = PT(0, 0, 1) + 0*PT(18, 156, 1) + 0*PT(50, 420, 1)
  PT(18, 156, 1) = PT(0, 1, 0) + PT(18, 156, 1) + 0*PT(50, 420, 1)
  PT(256, 4128, 1) = PT(0, 1, 0) + PT(18, 156, 1) - PT(50, 420, 1)
  PT(50, 420, 1) = PT(0, 1, 0) + 0*PT(18, 156, 1) + PT(50, 420, 1)
  PT(16448, 2109456, 1) = PT(0, 0, 1) + PT(18, 156, 1) + PT(50, 420, 1)
 
         @ = PT(0, 0, 1)

■楕円曲線Eの有理点をいくつか計算すると、以下のようになる。
[pari/gpによる計算]
gp>  rpE(2)
[69256869889/16842816, -18226676735142911/69122916864]
[17314414848/69256869889, 292197521718206496/18226122678078463]
[5398898/82369, 13965059676/23639903]
[42337666/2699449, -626931732588/4435194707]
[7744/1521, 4345264/59319]
[390897/1936, -247457847/85184]
[64082/14161, -116075772/1685159]
[7278754/32041, 19832096844/5735339]
[260080129/4260096, -4737558363391/8792838144]
[4379378688/260080129, 623309569974336/4194312240383]
[14938578/638401, 97941241956/510082399]
[328138114/7469289, -7358780990476/20413566837]
[1/16, 513/64]
[16448, -2109456]
[18, -156]
[514/9, 13364/27]
[256, -4128]
[257/64, 33153/512]
[1924722/10609, 2711629188/1092727]
[5453026/962361, -73169761708/944076141]
[33856/11025, -65339504/1157625]
[2833425/8464, 4791267705/778688]
[50, -420]
[514/25, 21588/125]
[0]
[0, 0]
[50, 420]
[514/25, -21588/125]
[33856/11025, 65339504/1157625]
[2833425/8464, -4791267705/778688]
[1924722/10609, -2711629188/1092727]
[[5453026/962361, 73169761708/944076141]
[256, 4128]
[257/64, -33153/512]
[18, 156]
[514/9, -13364/27]
[1/16, -513/64]
[16448, 2109456]
[14938578/638401, -97941241956/510082399]
[328138114/7469289, 7358780990476/20413566837]
[260080129/4260096, 4737558363391/8792838144]
[4379378688/260080129, -623309569974336/4194312240383]
[64082/14161, 116075772/1685159]
[7278754/32041, -19832096844/5735339]
[7744/1521, -4345264/59319]
[390897/1936, 247457847/85184]
[5398898/82369, -13965059676/23639903]
[42337666/2699449, 626931732588/4435194707]
[69256869889/16842816, 18226676735142911/69122916864]
[17314414848/69256869889, -292197521718206496/18226122678078463]
time = 12 ms.

■楕円曲線Cの有理点をいくつか計算すると、以下のようになる。
[pari/gpによる計算]
gp>  rpC(2)
[72050679051419668/18439021534132225, 1661073870871888638676204171769857/339997515136191912400683783450625]
[-72050679051419668/18439021534132225, -1661073870871888638676204171769857/339997515136191912400683783450625]
[38622145777/25792188145, -10559723390827683265072/665236969307078541025]
[-38622145777/25792188145, 10559723390827683265072/665236969307078541025]
[-25095676/8966345, -1124480988450257/80395342659025]
[25095676/8966345, 1124480988450257/80395342659025]
[-6183017/1985065, 50289498102848/3940483054225]
[6183017/1985065, -50289498102848/3940483054225]
[168521188/150200305, 360549686000546017/22560131622093025]
[-168521188/150200305, -360549686000546017/22560131622093025]
[-93150274321/186159915793, -555502394011887388769776/34655514248056850818849]
[93150274321/186159915793, 555502394011887388769776/34655514248056850818849]
[-1048564/264193, -207773767679/69797941249]
[-391/313, 1563104/97969]
[391/313, -1563104/97969]
[268/89, 104719/7921]
[-268/89, -104719/7921]
[49151/16897, -3887570896/285508609]
[-49151/16897, 3887570896/285508609]
[-546086428/160932473, 288892532823204559/25899260865895729]
[546086428/160932473, -288892532823204559/25899260865895729]
[631/841, 11331584/707281]
[-631/841, -11331584/707281]
[4, 1]
[-4, -1]
[1, -16]
[-1, 16]
[-748/233, -666641/54289]
[748/233, 666641/54289]
[102065561/37929049, 20575887191465504/1438612758044401]
[-102065561/37929049, -20575887191465504/1438612758044401]
[748/233, -666641/54289]
[-748/233, 666641/54289]
[-1, -16]
[1, 16]
[-4, 1]
[4, -1]
[-631/841, 11331584/707281]
[631/841, -11331584/707281]
[1434731044/1046656273, -17440977039738643679/1095489353810250529]
[-1434731044/1046656273, 17440977039738643679/1095489353810250529]
[-49151/16897, -3887570896/285508609]
[49151/16897, 3887570896/285508609]
[-268/89, 104719/7921]
[268/89, -104719/7921]
[391/313, 1563104/97969]
[-391/313, -1563104/97969]
[1048564/264193, -207773767679/69797941249]
[-1048564/264193, 207773767679/69797941249]
time = 26 ms.


[参考文献]


Last Update: 2005.08.21
H.Nakao

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