Homeに戻る  一覧に戻る 

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


[2001.04.11]x^3+y^3=382の有理点


Diophantus方程式
     x3+y3=382 ----------------------------- (1)
つまり、
     (x+y)(x2-xy+y2)=2*191 ----------------------------- (2)
で定義される楕円曲線の有理点について考察する。2と191は素数である。

■楕円曲線(2)は、整点を持たない。
なぜなら、x,yを有理整数とすると、
     x2-xy+y2=(3/4)x2+((1/2)x-y)2 >= 0
よって、(2)から、x+y>=0となり、
     (x+y,x2-xy+y2)=(1,382),(2,191),(191,2),(382,1)
が得られるので、
     382 >= |x2-xy+y2|=(3/4)x2+((1/2)x-y)2 >= (3/4)x2
よって、
     |x| <= 2*\sqrt(382/3)=22.568414...
xは有理整数なので、
     |x| <= 22
を得る。同様に、
     |y| <= 22
を得るので、有限の組合せを調べて、(1)には整点(x,y)が存在しないことがすぐに分かる。

■ここで、参考文献[4]によると、最小解の(共通の)分母は、
     m=8122054393485793893167719500929060093151854013194574
であるので、この情報を使うことにする。筆者には、このヒントなしで、解を見つけることは、おそらく不可能であろう。

まず、楕円曲線を使った因数分解により、
     m=2*32*7*13*61*83*1471*4111*21751
         *63727*1830943*63812593012478171313181 ------------------------ (3)
を得る。ここで、2,3,7,13,61,83,1471,4111,21751,63727,1830943は全て素数であり、ECPP(Elliptic Curves and Primality Proving)により、最後の63812593012478171313181も素数であることが確認できる。

(1)において、x,yの代わりにX/m,Y/m(X,Yは互いに素な有理整数)とすると、
     X3+Y3=382*m3 ---------------- (4)
となる。つまり、
     (X+Y)(X2-XY+Y2)=24*36*833*191*73*133*613 *14713*41113
                 *217513*637273*18309433*638125930124781713131813 ---------- (5)
を考えることにする。
両辺をQ(\rho)で因数分解する。ここで、\rho=(-1+sqrt{-3})/2である。(5)の左辺は、
     X3+Y3=(X+Y)(X+Y\rho)(X+Y\rho2)
となる。
ここで、Q(\rho)はEuclid体であり、Q(\rho)の代数的整数(Eisenstein整数)は一意に分解できる。
Q(\rho)の単数は、±1,±\rho,±\rho2の6個である。
また、Q(\rho)の素数は、2,(1-\rho)とその同伴数(associate)--これらは、3の因数であることに注意--,有理素数p=3n+1の因数,有理素数p=3n+2である。
(5)の右辺の有理素数をQ(\rho)で分解すると、
     2 (素数)
     3=-\rho2(1-\rho)2
     83 (素数)
     191 (素数)
     7=(3+\rho)(3+\rho2)
     13=(4+\rho)(4+\rho2)
     61=(9+4\rho)(9+4\rho2)
     1471=(41+6\rho)(41+6\rho2)
     4111=(74+35\rho)(74+35\rho2)
     21751=(165+46\rho)(165+46\rho2)
     63727=(283+81\rho)(283+81\rho2)
     1830943=(1529+486\rho)(1529+486\rho2)
     63812593012478171313181=(a+b\rho)(a+b\rho2) ただし、a,bは有理整数。------ (6)
となる。
ここでは、有理整数a,bの具体的な値は不明だが、実はX,Yの値が求まった後で、求めることができる。[2001.06.02追記)直接(a,b)を求める方法が判明した。]

X,YはQ上で互いに素なので、
     gcd(X+Y,X+Y\rho)=gcd(X+Y,Y(1-\rho))|1-\rho
     gcd(X+Y,X+Y\rho2)=gcd(X+Y,Y(1-\rho2))|1-\rho2=\rho2(1-\rho)
から、X+Yと(X+Y\rho)(X+Y\rho2)のQ(\rho)上での共通素因数がもしあれば、3の素因数(1-\rho)であり、Q上での共通素因数がもしあれば、3である。
     X+Y=A
     X2-XY+Y2=B
つまり、
     (X+Y\rho)(X+Y\rho2)=B
とすると、A,Bは有理整数であり、
     (X+Y)2+3(X-Y)2=4B
よって、
     A2+3(X-Y)2=4B
     (X-Y)2=(4B-A2)/3
となる。よって、(4B-A2)/3は有理整数かつ平方数である。
(5)より、ある有理整数0<=i<= 6,0<= j1<=1,0<= j2<=1,...,0<= j9<=1に対して、
     A=24*833*191*3i*(7j1*13j2*61j3*1471j4*4111j5
             *21751j6*63727j7*1830943j8*63812593012478171313181j9)3
     B=3(6-i)*(7(1-j1)*13(1-j2)*61(1-j3)*1471(1-j4)*4111(1-j5)
             *21751(1-j6)*63727(1-j7)*1830943(1-j8)*63812593012478171313181(1-j9))3
となる。(i,j1,j2,...,j9)の組合せは有限なので、この中で、
     (X-Y)2 = (4B-A2)/3
が有理整数かつ平方数になるものを探すと、
     A=24*833*191*35*(7*61*1471*4111*21751)3
     B=3*(13*63727*1830943*63812593012478171313181)3
のみが条件を満たす。ここで、(4)は、X,Yについて対称なので、X>=Yとしてよい。このA,Bに対して、C=X-Y >= 0とすると、
     C=sqrt{(4B-A2)/3}
       =41724271824800280912406962758003874829396587094247210
となり、
     X=(A+C)/2
       =58477534119926126376218390196344577607972745895728749
     Y=(A-C)/2
       =16753262295125845463811427438340702778576158801481539
を得る。実際に、このX,Yが(4)を満たすことを容易に確認できる。

■X,Yの値が分かったので、(6)を満たす有理整数a,bを求めてみよう。

a+b\rhoは、X+Y\rhoの素因数であるので、X+Y\rhoを判明しているQ(\rho)の素因数またはその共役数で割ってみると、
     X+Y\rho=(1-\rho)*(4+\rho)3*(81+383\rho)3*(1529+486\rho)3
             *(15868980461307748470581129277546001
             -490441460409101532533184926797140\rho)
となる。ここで、
     (a+b\rho)3=15868980461307748470581129277546001
             -490441460409101532533184926797140\rho
となる有理整数a,bを探してみる。
     (a+b\rho)3=(a3+b3-3ab2)+3ab(a-b)\rho
より、
     3ab(a-b)= -490441460409101532533184926797140
     ab(a-b)= -163480486803033844177728308932380
右辺を楕円曲線を使って因数分解すると、
     ab(a-b)= -22*3*5*7*281989*900329*18301057*83773575467
となる。ここで、281989,900329,18301057,83773575467は、全て素数である。
a-bは22*3*5*7*281989*900329*18301057*83773575467の約数であり、有限個しかない。
(6)より、
     (a+b)2+3(a-b)2= 4*63812593012478171313181
よって、
     (a+b)2=4*63812593012478171313181-3(a-b)2
は、有理整数かつ平方数である。これを満たす(a-b)>0の組合せを探すと、
     a-b = 900329*18301057,7*83773575467
     (a+b,a-b)=(248758578421,253882874381),(256445022361 251320726401)
     (a,b)=(251320726401,-2562147980),(253882874381,2562147980)
となる。
実際に、これらの(a,b)に対して、
     a2-ab+b2=63812593012478171313181
となることは、容易に確認できる。

■次に、(1)の他の有理点を探してみよう。

まず、方程式(1)をある双有理変換\phiによって、楕円曲線 のWeierstrass標準形に変形する。
有理変換\phi:(x,y)--->(X,Y)を
     X={12*382}/{x+y}
     Y={36*382(x-y)}/{x+y}
で定義すると、
     x={36*382+Y}/{6X}
     y={36*382-Y}/{6X}
となり、\phi-1も有理変換であり、方程式(3)は、
     Y2=X3-432*3822 ------------------------- (7)
と同値になる。よって、楕円曲線(1)は、双有理変換\phiに
よって、楕円曲線(7)と有理同値になる。

\phiは楕円曲線(1)上の有理点を楕円曲線(7)上の有理点に写し、 \phi-1は楕円曲線(7)上の有理点を楕円曲線(1)上の有理点に写す双有理変換となる。

楕円曲線(7)の判別式Δは、
     Δ=-16*27*{432*3822}=-216*39*1914
となり、0でないので、(7)は非特異楕円曲線である。

(1)の有理点P
     (58477534119926126376218390196344577607972745895728749/
     8122054393485793893167719500929060093151854013194574,
     16753262295125845463811427438340702778576158801481539/
     8122054393485793893167719500929060093151854013194574)
は、双有理変換\phiによって、(7)の有理点Q
     (96793912150542047971667215388941033/
     195583944227823667629245665478169,
     20862135912400140456203481379001937414698293547123605/
     2735267467097584781850996859899842945991452323197)
に写される。
例えば、(7)上の有理点Qの2倍点2Qは、
     (45299388870477593213671021511199891246521689911539\
     42757467404531319885344570258482348557255468958066\
     01070990131517309773655775133868714534689/
     34049499474864182321243754592859704880833440412675\
     50773621474943279322926517290099706862432289779940\
     88725984068451464799904993221480312900,
     -95114344861289460448415152773980492471505167696212\
     59881918509551611516101688379038254183271338899109\
     84871301003128633373380614649986686188053687610319\
     27108094370158237944660547217092290414374431140163\
     47774630863/
     19868546554871522818541950043786671508359803067583\
     43620001938012274938058437120997613959469386848101\
     07136104034046210175349381629121445457881905132919\
     05617344846038554718012216736504627443286782198840\
     3117000)
であり、\phi-1で写すと、(1)上の有理点
     (-67791119639030142268356263073765061813208766517671\
     85735691844397131021283725650242335466209038105601\
     25537730735508285140240145033618874394374491671528\
     98503121737886017496450146761051126754366448260318\
     28109646863/
     15859845763866161508821255730149473348920197631935\
     72641328980781183491940144420613725862229755489532\
     50488753505026734077299061406860546543272453416780\
     90318366782501636588695245030791702451787535469233\
     83958899820,
     12243757008354877862847404247419592312980156887475\
     33402814517470609201091965110783417290033363969261\
     84420487127074898160652108426635449798173288354910\
     95571306700243045839287094767313345407438241402000\
     867439614863/
     15859845763866161508821255730149473348920197631935\
     72641328980781183491940144420613725862229755489532\
     50488753505026734077299061406860546543272453416780\
     90318366782501636588695245030791702451787535469233\
     83958899820)
が得られる。

[2007.08.11追記]
■楕円曲線y2=x3-432*3822のHeegner点の計算
CremonaのHeegner点計算プログラム(heegner.gp)[7]によって、楕円曲線(7)の有理点
     [96793912150542047971667215388941033/195583944227823667629245665478169, 20862135912400140456203481379001937414698293547123605/2735267467097584781850996859899842945991452323197]
を求めることができた。
これより、楕円曲線(1)の有理点を求めることができる。

Reading GPRC: /cygdrive/c/Program Files/PARI/.gprc ...Done.

                  GP/PARI CALCULATOR Version 2.3.2 (released)
                i686 running cygwin (ix86 kernel) 32-bit version
 compiled: Mar 28 2007, gcc-3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
                (readline v5.2 enabled, extended help available)

                     Copyright (C) 2000-2006 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 = 4000000, primelimit = 500000
gp> read("heegner.gp")
gp> H_auto([0,0,0,0,-432*382^2],1)
Saving old precision 300
N=3939948

Testing rank condition for D=-47 ... OK
[D,h,h0]=[-47,5,3]
[b,alist0]=[-379805207, [1, 2, 4]]
max a = 4:      sqrt(|d|)/maxa = 1.713913650100261031

Testing rank condition for D=-71 ... no, twist has rank >=2

Testing rank condition for D=-95 ... no, twist has rank >=2

Testing rank condition for D=-119 ... OK
[D,h,h0]=[-119,10,5]
[b,alist0]=[-184721981, [1, 2, 3, 4, 5]]
max a = 5:      sqrt(|d|)/maxa = 2.181742422927142882

Testing rank condition for D=-143 ... OK
[D,h,h0]=[-143,10,6]
[b,alist0]=[-259954343, [1, 2, 4, 6, 7, 9]]
max a = 9:      sqrt(|d|)/maxa = 1.328695638122377558

Testing rank condition for D=-167 ... OK
[D,h,h0]=[-167,11,6]
[b,alist0]=[314383579, [1, 2, 4, 8, 12, 16]]
max a = 16:     sqrt(|d|)/maxa = 0.8076779989575053418

Testing rank condition for D=-359 ... no, twist has rank >=2

Testing rank condition for D=-455 ... OK
[D,h,h0]=[-455,20,10]
[b,alist0]=[387551275, [1, 2, 3, 4, 6, 15, 18, 20, 30, 36]]
max a = 36:     sqrt(|d|)/maxa = 0.5925202502139317153

Testing rank condition for D=-527 ... OK
[D,h,h0]=[-527,18,9]
[b,alist0]=[-194718503, [1, 2, 3, 8, 16, 22, 32, 33, 44]]
max a = 44:     sqrt(|d|)/maxa = 0.5217381946931361978

Testing rank condition for D=-647 ... OK
[D,h,h0]=[-647,23,12]
[b,alist0]=[-340808309, [1, 2, 3, 4, 6, 7, 8, 9, 14, 16, 21, 63]]
max a = 63:     sqrt(|d|)/maxa = 0.4037491219675207736

... 省略 ...

p=407659297     ap=-655 z=-12.86501000328945002610694127401025928258350415677158
29610506408156935582071106917526732885322424574462105779554759500977375467740065
69818820241144833602302024741847465401945171090625639857548968869058510492597952
42998551790048116577997108073369769413176273430297160789247757114477043125689412
22543542
H_indexsum = 0.3479279770
Square of index = 8.99999443
Index = 3
H_z=-12.865010003289450026106941274010259282583504156771582961050640815693558207
11069175267328853224245744621057795547595009773754677400656981882024114483360230
20247418474654019451710906256398575489688690585104925979524299855179004811657799
710807336976941317627343029716078924775711447704312568941222543542
reducing modulo real period...
H_z=0.03933109566494853253647803355432934425494093954474861304548171424975084762
05832784600361653963867413727075431737512275156286808145902901556957044386257025
68493351139091303899487799309856906330728867162949344376134203684800597892452422
0015241833502680430744858135885974282293613627902818686682646870202
Dividing 2*|T|*H_z by 6...
[6, 0] : [6, 1] : [6, 2] :
***RATIONAL P = [96793912150542047971667215388941033/782335776911294670516982661
912676, 20862135912400140456203481379001937414698293547123605/218821397367806782
54807974879198743567931618585576]
 = [2707351464495264631055906500309686697717284671064858:20862135912400140456203
481379001937414698293547123605:2188213973678067825480797487919874356793161858557
6]
h(P) = 81.0134279417878051820346890037469684247793851959838590415550361677725110
53814021684433905862413980875240306965156325017148406829684353150756400027434746
52468677065410641277581136121428388903996276772919719535597385803492343151586753
95158134879393387293036750910988246292940067776862467713706458103563
real x(P)     = 123.724256268439898906733048280118830229804737644830995972501367
54914192656949154443602726324960652444030926056907914047643720563229478445243643
70613099228916453287577963488902580295604003794429364783762066280991675753828680
87190405206928564847107211382585497399366312831642326654413619488505908006378
---------------------------------------------------------
(14:54) gp > P=[96793912150542047971667215388941033/782335776911294670516982661
912676, 20862135912400140456203481379001937414698293547123605/21882139736780678
254807974879198743567931618585576]
%3 = [96793912150542047971667215388941033/782335776911294670516982661912676, 208
62135912400140456203481379001937414698293547123605/21882139736780678254807974879
198743567931618585576]
(14:55) gp > e=ellinit([0,0,0,0,-432*382^2])
%5 = [0, 0, 0, 0, -63039168, 0, 0, -252156672, 0, 0, 54465841152, -1716740655321
120768, 0, [397.9881649300931276199231542002805822200906451151680434911832155017
04851213063182131929626009696377174892398966002718009294971289080681263415322161
39579478089307587100672314102304626138175203793809732984511990933396608999250367
1586392938200645711805561825272704835469108111710010199295079284451170478, -198.
99408246504656380996157710014029111004532255758402174559160775085242560653159106
59648130048481885874461994830013590046474856445403406317076610806978973904465379
35503361570511523130690876018969048664922559954666983044996251835793196469100322
855902780912636352417734554055855005099647539642225585239 + 344.6678612350116652
00314101371960097425499662621348920325080299249825161827511942394558879618862455
26987208019468446790843408218008794602724709227344520343335563629953712667606569
20955205270311527035254348069991484622054948388065893668649685373531462434998181
07993925776531097413840546066956711794940*I, -198.994082465046563809961577100140
29111004532255758402174559160775085242560653159106596481300484818858744619948300
13590046474856445403406317076610806978973904465379355033615705115231306908760189
69048664922559954666983044996251835793196469100322855902780912636352417734554055
855005099647539642225585239 - 344.6678612350116652003141013719600974254996626213
48920325080299249825161827511942394558879618862455269872080194684467908434082180
08794602724709227344520343335563629953712667606569209552052703115270352543480699
91484622054948388065893668649685373531462434998181079939257765310974138405460669
56711794940*I]~, 0.1217390669712679109305982953543829115739475952482672790009068
16320219896742747877652201176392819284788521561308016050238237504290765661405433
36650256818872257769055287257782142055117877089108773205590257964096536381310568
5859236398418802662810198532073639705554577325376469816095596429610969721877748,
 0.06086953348563395546529914767719145578697379762413363950045340816010994837137
39388261005881964096423942607806540080251191187521453828307027166832512840943612
88845276436288910710275589385445543866027951289820482681906552842929618199209401
3314050992660368198527772886626882349080477982148054848609388739 + 0.10542912463
01331109378591609508403919097516794147235688949053440315927679912828691514197125
08468082037236284033783113683238696005559764536897086487242769527789552637119674
47615433174194530981528899491651735910323861788505991110265034666160955335815642
8350925376428671226097416460880368163369152297171*I, -14.89907397320779015863403
34886509409737745698887433802481046585637112442460127188479872642999076217223530
07776191871985192684351513571078050605115293908325994715778460570487224276693065
70719533079388625994343213747593279563824533733396243733111103333520262654679347
26961148920012950158914408929989420 + 1.661715377 E-317*I, -7.449536986603895079
31701674432547048688728494437169012405232928185562212300635942399363214995381086
11765038880959359925963421757567855390253025576469541629973578892302852436121383
46532853597665396943129971716068737966397819122668666981218665555516667601313273
39673634805744600064750794572044649947098 - 38.708929660984491301338599958948701
95737090643894418658446484821121428182174688528208666522499894772145238924693254
27300133511401736741696540559773275221236139832576800158552015562348207791579622
39587019787759782904378140487595705670660002066377686883785034781057139504416586
8941198821469525125453062*I, 0.0128348432640699260120004316376182471701802347908
67178755727159034838792090867394133131084549178264860927428510132411222511051317
52666350831452007421891763133819922678699182824692739928605137223513384787095647
47912237877628509579200525349846888776846288141434353417246624852084294620483578
961508805578]
(14:55) gp > ellisoncurve(e,P)
%6 = 0
(14:55) gp > ellglobalred(e)
%7 = [3939948, [2, 0, 0, 0], 1]
(14:56) gp > e2=ellchangecurve(e,[2,0,0,0])
%8 = [0, 0, 0, 0, -984987, 0, 0, -3939948, 0, 0, 851028768, -419126136553008, 0,
 [99.497041232523281904980788550070145555022661278792010872795803875426212803265
79553298240650242409429372309974150067950232374282227017031585383054034894869522
32689677516807852557615653454380094845243324612799773334915224981259178965982345
501614279513904563181762088672770279275025498237698211127926195, -49.74852061626
16409524903942750350727775113306393960054363979019377131064016328977664912032512
12047146861549870750339751161871411135085157926915270174474347611634483875840392
62788078267271900474226216623063998866674576124906295894829911727508071397569522
81590881044336385139637512749118849105563963098 + 86.166965308752916300078525342
99002435637491565533723008127007481245629045687798559863971990471561381746802004
86711169771085205450219865068117730683613008583389090748842816690164230238801317
57788175881358701749787115551373709701647341716242134338286560874954526998481444
1327743534601365167391779487350*I, -49.74852061626164095249039427503507277751133
06393960054363979019377131064016328977664912032512120471468615498707503397511618
71411135085157926915270174474347611634483875840392627880782672719004742262166230
63998866674576124906295894829911727508071397569522815908810443363851396375127491
18849105563963098 - 86.166965308752916300078525342990024356374915655337230081270
07481245629045687798559863971990471561381746802004867111697710852054502198650681
17730683613008583389090748842816690164230238801317577881758813587017497871155513
73709701647341716242134338286560874954526998481444132774353460136516739177948735
0*I]~, 0.24347813394253582186119659070876582314789519049653455800181363264043979
34854957553044023527856385695770431226160321004764750085815313228108667330051363
77445155381105745155642841102357541782175464111805159281930727626211371718472796
837605325620397064147279411109154650752939632191192859221939443755496, 0.1217390
66971267910930598295354382911573947595248267279000906816320219896742747877652201
17639281928478852156130801605023823750429076566140543336650256818872257769055287
25778214205511787708910877320559025796409653638131056858592363984188026628101985
32073639705554577325376469816095596429610969721877748 + 0.2108582492602662218757
18321901680783819503358829447137789810688063185535982565738302839425016936164074
47256806756622736647739201111952907379417297448553905557910527423934895230866348
38906196305779898330347182064772357701198222053006933232191067163128567018507528
57342452194832921760736326738304594342*I, -7.44953698660389507931701674432547048
68872849443716901240523292818556221230063594239936321499538108611765038880959359
92596342175756785539025302557646954162997357889230285243612138346532853597665396
94312997171606873796639781912266866698121866555551666760131327339673634805744600
064750794572044649947098 + 8.30857688 E-318*I, -3.724768493301947539658508372162
73524344364247218584506202616464092781106150317971199681607497690543058825194404
79679962981710878783927695126512788234770814986789446151426218060691732664267988
32698471564985858034368983198909561334333490609332777758333800656636698368174028
72300032375397286022324973549 - 19.354464830492245650669299979474350978685453219
47209329223242410560714091087344264104333261249947386072619462346627136500667557
00868370848270279886637610618069916288400079276007781174103895789811197935098938
79891452189070243797852835330001033188843441892517390528569752208293447059941073
4762562726531*I, 0.0513393730562797040480017265504729886807209391634687150229086
36139355168363469576532524338196713059443709714040529644890044205270106654033258
08029687567052535279690714796731298770959714420548894053539148382589916489515105
14038316802101399387555107385152565737413668986499408337178481934315846035222314
]
(14:56) gp > ellisoncurve(e2,P)
%9 = 1
(14:56) gp > ellchangepoint([x,y],[2,0,0,0])
%10 = [1/4*x, 1/8*y]
(14:56) gp > Q=[P[1]*4,P[2]*8]
%11 = [96793912150542047971667215388941033/195583944227823667629245665478169, 20
862135912400140456203481379001937414698293547123605/2735267467097584781850996859
899842945991452323197]
(14:57) gp > ellisoncurve(e,Q)
%12 = 1

[参考文献]


Last Update: 2007.08.11
H.Nakao

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