Rational Points on Elliptic Curves: 3y^2=2x^4-2x^2+3, y^2=x^3-228x+848
[2003.03.29]3y2 = 2x4-2x2+3, y2 = x3-228x+848の有理点
■参考文献[1]1.(Q)にある楕円曲線
E1: 3(Y2-1) = 2X2(X2-1) ------ (1)
つまり、
E1: 3Y2 = 2X4-2X2+3 ------ (2)
の有理点を求める。
■楕円曲線E1をWeierstrass標準形に変形する。
E1は、双有理変換(X,Y)→(X,Y/3)[逆変換は(X,Y)→(X,3Y)]によって、楕円曲線
E2: Y2 = 6X4-6X2+9 ------ (3)
に写される。
楕円曲線E2は、有理変換(X,Y)→(U,V)
U = 6(Y+3)/X2 ------ (4)
V = {36(Y+3-X2)/X3 ------- (5)
[逆変換は、
X = 6(U-6)/V ---------- (6)
Y = {6U(U-6)2-3V2}/V2 -------- (7)
である。]
によって、楕円曲線
E3: V2 = U3-6U2-216U+1296 ------ (8)
に写される。
最後に、E3は、有理変換[1,2,0,0]つまり(U,V)→(U-2,V)によって、[1]1.(W)に記述された楕円曲線
E4: V2 = U3-228U+848 ------ (9)
に写される。
以上の有理変換を合成すると、E1からE4への有理変換ψ:(X,Y)→(U,V)は、
U = {18(Y+1)-2X2}/X2 ------ (10)
V = {108(Y+1)-36X2)}/X3 ------ (11)
であり、逆変換ψ-1:(U,V)→(X,Y)は、
X = {6(U-4)}/V ------ (12)
Y = {2U3-12U2+64-V2}/{V2} ------ (13)
であることが分かる。
gp> read("c2.gp")
time = 29 ms.
gp> ff([x,y])
time = 35 ms.
%1 = [(-2*x^2 + (18*y + 18))/x^2, (-36*x^2 + (108*y + 108))/x^3]
gp> gg([u,v])
time = 34 ms.
%2 = [6/v*u - 24/v, 2/v^2*u^3 - 12/v^2*u^2 + ((-v^2 + 64)/v^2)]
■楕円曲線E4のj-不変量,判別式 Δ,Conductor Nを求める。
pari/GPで計算すると、
j = 219488/75 = {25・193}/{3・52}
Δ = 447897600 = 213・37・52
N = 5760
である。
[pari/gpによる計算]
gp> e4=ellinit([0,0,0,-228,848])
time = 223 ms.
%1 = [0, 0, 0, -228, 848, 0, -456, 3392, -51984, 10944, -732672, 447897600, 219488/75, [12.69693845669906858918370444, 4.000000000000000000000000000, -16.69693845669906858918370444]~, 0.7678481042683420701399427878, 0.6313565954278645981885612580*I, -1.843851957724223527685587394, -5.607516283698252646881502462*I, 0.4847859649166004363014281205]
gp> e4.j
time = 2 ms.
%2 = 219488/75
gp> e4.disc
time = 1 ms.
%3 = 447897600
gp> ellglobalred(e4)
time = 20 ms.
%4 = [5760, [1, 0, 0, 0], 32]
gp> factor(e4.disc)
time = 3 ms.
%5 =
[2 13]
[3 7]
[5 2]
gp> factor(219488/75)
time = 3 ms.
%3 =
[2 5]
[3 -1]
[5 -2]
[19 3]
■楕円曲線E4のねじれ点群は、Z/2Zである。
E4のねじれ点群は、位数2の点T(4,0)で生成される。よって、
E4(Q)tors = {(4,0), O}
である。
[pari/gpによる計算]
gp> elltors(e4,1)
time = 157 ms.
%6 = [2, [2], [[4, 0]]]
■楕円曲線E4のMordell-Weil群のrankは、2であることが分かる。
Cremonaのmwrank3によって、このようにMordell-Weil群の生成元P1(2,-20),P2(16,36)が見つかる。よって、
E4(Q) = Z2×Z/2Z
である。
■楕円曲線Eの全ての整点を、[4]の方法によって求める。
u=1,v=0とする。
以下の形式
C: y2 = f(x) ----- (3)
f(x) = x^3-228x+848 = (x-4)(x2+4x-212) -------- (4)
を得る。
3次方程式 f(x) = 0の最大の実数根をγとする。 ------ (*)
任意のP ∈ E(Q)に対して、有理整数m1,m2,m0(m0=0,1)が存在して、
P = m1P1+m2P2+m0T ------ (5)
となる。
f(x)=x3-228x+848=0の根は、3個の実数(1個は有理数4、2個は無理数-2±6*sqrt{6})であり、
γ = -2+6*sqrt(6) ≒ 12.69693845669906858918370444,
γ' = -4,
γ''= -2-6*sqrt(6) ≒ -16.69693845669906858918370444
である。
(X,Y)がEの整点であるとする。
f(X) > 0 iff (X > γ または γ'' < X < γ')
γ'' < X < γ'なる整点(X,Y)は、以下の11個である。
(-16,±20),(-14,±36),(-11,±45),(-2,±36),(2,±20),(4,0) ------ (**)
よって、X > γの範囲で、Eの整点(X,Y)を求める。
gp> poldisc(x^3-228*x+848)
time = 1 ms.
%7 = 27993600
gp> rr=polroots(x^3-228*x+848)
time = 51 ms.
%8 = [-16.69693845669906858918370444 + 0.E-28*I, 4.000000000000000000000000000 + 0.E-28*I, 12.69693845669906858918370444 + 0.E-28*I]~
gp> factor(x^3-228*x+848)
time = 74 ms.
%9 =
[x - 4 1]
[x^2 + 4*x - 212 1]
gp> for(x=-16,4,y2=x^3-228*x+848;y=floor(sqrt(y2));if(y^2==y2,print([x,y])))
[-16, 20]
[-14, 36]
[-11, 45]
[-2, 36]
[2, 20]
[4, 0]
time = 26 ms.
■不等式1
P ∈ E(Q)が(5)で表現されるとすると、
h^(P) >= c1max{|m1|,|m2|} ------- (7)
である。
[pari/gpによる計算]
gp> p0=[0];p1=[2,-20];p2=[16,36];
time = 0 ms.
gp> read("c1.gp")
time = 40 ms.
gp> H=HH2(e4,p1,p2)
time = 111 ms.
%11 =
[0.8236960821559175668937428560 -0.5325899078325253718762587928]
[-0.5325899078325253718762587928 0.4532043051015668287342041345]
gp> dd=matdet(H-x*matid(2))
time = 0 ms.
%12 = x^2 - 1.276900387257484395627946990*x + 0.08965060060329785098820209091
gp> ww=polroots(dd)
time = 4 ms.
%13 = [0.07456363665005295191144028018 + 0.E-28*I, 1.202336750607431443716506710 + 0.E-28*I]~
gp> c1=min(real(ww[1]),real(ww[2]))
time = 0 ms.
%14 = 0.07456363665005295191144028018
■不等式2
c2 = 2*max{|γ|,|γ'|,|γ''|}
とする。任意のx >= c2に対して、
|∫x∞(dt/sqrt{f(t)})| <= 4*sqrt(2)|x|-1/2 --------- (8)
となる。
[pari/gpによる計算]
gp> c2=2*max3(real(rr[1]),real(rr[2]),real(rr[3]))
time = 0 ms.
%15 = 25.39387691339813717836740889
■不等式3
u=1,v=0とする。
X0を正の有理整数で、X0 > vとする。
このとき、任意のP ∈ E(Q), X(P) >= X0に対して、
x(P) > 0,
h^(P)-(1/2)*log x(P) <= c3 ------ (9)
となる。
[pari/gpによる計算]
gp> c0=log(1)
time = 0 ms.
%16 = 0.E-28
gp> c3=cc3(c0,e4)
time = 2 ms.
%17 = 3.741710250245555579534343719
■不等式1,2,3より、
|φ(P)|=|(1/ω)∫x(P)∞(dt/sqrt{f(t)})| <= (4*sqrt(2)/ω)|x(P)|-1 <= (4*sqrt(2)/ω)exp(c3-c1M2) ----------- (10)
を得る。
■主不等式
P ∈ E0(R) iff x(P) >= γ iff X(P) >= u2γ+v なので、不等式2,3を満たすために、
X0 = floor(max{c2,u2γ+v,v})+1
とする。
M2 < c3c1-1-c1-1log(4*sqrt(2))+c4c1-1(log M+c7)(log log M+c8)r+2 ------- (11)
となる。
[pai/gpによる計算]
gp> X0=floor(max(c2,real(rr[3])))+1
time = 1 ms.
%57 = 26
gp> he=log(2^5*19^3)
time = 15 ms.
%58 = 12.29905284029904792711324290
%58 = 12.29905284029904792711324290
gp> A0=AA(e4,p0,he)
time = 14 ms.
%59 = 12.29905284029904792711324290
gp> A1=AA(e4,p1,he)
time = 94 ms.
%60 = 12.29905284029904792711324290
gp> A2=AA(e4,p2,he)
time = 29 ms.
%61 = 12.29905284029904792711324290
gp> eb=eeb2(e4,p1,p2,A0,A1,A2)
time = 22 ms.
%62 = 3.667069475911901575863344783
gp> c4=cc4(2,eb,A0*A1*A2)
time = 3 ms.
%63 = 9528085196527.924901811916838
gp> c5=cc5(eb)
time = 0 ms.
%64 = 1.299392835163297431656905905
gp> c6=cc6(c5,he)
time = 0 ms.
%65 = 13.59844567546234535877014880
gp> c7=cc7(c6,2,2)
time = 1 ms.
%66 = 15.03161503658223597760461305
gp> c8=cc8(c6,2,2)
time = 1 ms.
%67 = 14.11535225797276289870014792
gp> g(m)=m^2-(c3/c1+log(4*sqrt(2))/c1+(c4/c1)*(log(m)+c7)*(log(log(m))+c8)^2)
time = 0 ms.
gp> gdash(m)=2*m-(c4/c1)*((1/m)*(log(log(m))+c8)^2+(log(m)+c7)*2*(log(log(m))+c8)*(1/log(m))*(1/m))
time = 0 ms.
gp> nn(x)=x-g(x)/gdash(x)
time = 1 ms.
gp> x=10^100;for(i=1,320,x=nn(x);print(x))
5.000000000000000000000000000 E99
2.500000000000000000000000000 E99
1.250000000000000000000000000 E99
6.250000000000000000000000000 E98
3.125000000000000000000000000 E98
.....
2642366047.360374541527034060
1580232949.546228469105426052
1218410548.692046499920677535
1163273763.788081361756141898
1161924114.344930060524569974
1161923303.881565291240673004
1161923303.881273031133634230
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
1161923303.881273031133634192
time = 2,180 ms.
主不等式(11)より、
M < 1161923303.881273031133634192
であることが分かる。
しかし、ここで求めたMの上限は大き過ぎるので、LLL-algorithmによって、上限を下げる。
■不等式(10),(11)を単純に、
|φ(P)| < K1exp(-K2M2), M < K3 ------- (12)
と書くことができる。
ここで、
K1 = (4*sqrt(2)/ω)*exp(c3),
K2 = c1,
K3 = 1161923303.881273031133634192
である。
[pari/gpによる計算]
gp> K3=1161923303.881273031133634192
time = 0 ms.
%68 = 1161923303.881273031133634191
gp> K1=(4*sqrt(2)/2*real(e4.omega[1]))*exp(c3)
time = 0 ms.
%69 = 91.58501575051586403492686413
gp> K2=c1
time = 0 ms.
%70 = 0.07456363665005295191144028018
gp> KK0(2,2,K3)
time = 0 ms.
%71 = 1.475500075161061432293934259 E30
K0=1035とする。
A = [1, 0, 0 ; 0, 1, 0 ; [K0*φ(P1)] [K0*φ(P2)] K0]
にLLL-algorithmを適用して、reduced basis {b1,b2,b3}を求めると、
b1 = [
124045147674,
-52062353510,
-52899630045]t
となる。このとき、
||b1|| >= 2(2/2)*2*K3*sqrt(2^2+2) = 4*sqrt(6)*K3 ----- (16)
ならば、
M2 <= K2-1(log(K0K1) - log(2-2*2^(-2)*||b1||2-2*K32)-2*K3) ------ (17)
が成立する。
[pari/gpによる計算]
gp> default(realprecision,70)
realprecision = 77 significant digits (70 digits displayed)
time = 0 ms.
gp> ec=ellinit([0,0,0,-228,848])
time = 131 ms.
%72 = [0, 0, 0, -228, 848, 0, -456, 3392, -51984, 10944, -732672, 447897600, 219488/75, [12.69693845669906858918370444823534835179568488394002077059615540350576, 4.000000000000000000000000000000000000000000000000000000000000000000000, -16.69693845669906858918370444823534835179568488394002077059615540350576]~, 0.7678481042683420701399427877938011273438434838840430614010093358058893, 0.6313565954278645981885612580453953625095983278911705470534620030145824*I, -1.843851957724223527685587394831159349703101027171865794290900953119884, -5.607516283698252646881502462889814467868560055298503052458388413042264*I, 0.4847859649166004363014281204918267598748455339786977739132584919370076]
gp> K0=10^35
time = 0 ms.
%73 = 100000000000000000000000000000000000
gp> a1=floor(K0*phi(ec,p1,K0))
time = 16 ms.
%74 = 73066687628167039690242786859835426
gp> a2=floor(K0*phi(ec,p2,K0))
time = 17 ms.
%75 = 72482413835962776864398916278297004
gp> aaa=[1,0,0;0,1,0;a1,a2,K0]
time = 0 ms.
%76 =
[1 0 0]
[0 1 0]
[73066687628167039690242786859835426 72482413835962776864398916278297004 100000000000000000000000000000000000]
gp> bbb=qflll(aaa,1)
time = 23 ms.
%77 =
[124045147674 199816473149 -450606579470]
[-52062353510 366261257792 -983365266707]
[-52899630045 -411474278859 1042010183987]
gp> b1n=nr(bbb)
time = 0 ms.
%78 = 144554689212.6386318301504984504574157463144537160908087543646587441681
gp> b1n-2^(2/2)*2*K3*sqrt(2^2+2)
time = 0 ms.
%79 = 133170212353.60695199395880253582653209
gp> M2=(1/K2)*(log(K0*K1)-log(sqrt(2^(-2)*b1n^2*2^(-2)-2*K3^2)-2*K3))
time = 1 ms.
%80 = 816.2784093313923005333105429
gp> sqrt(M2)
time = 0 ms.
%81 = 28.57058643660280734023619896
よって、
M <= 28
が得られた。
次に、K3=28, K0=1010とする。
A=[1, 0, 0 ; 0, 1, 0 ; [K0*φ(P1)] [K0*φ(P2)] K0]
として、再度、LLL-algorithmを適用する。
[pari/gpによる計算]
gp> K3=28
time = 0 ms.
%108 = 28
gp> KK0(2,2,K3)
time = 0 ms.
%109 = 20648140.35209330903486468352305039148919160797262408550119211541873654
gp> K0=10^10
time = 0 ms.
%110 = 10000000000
gp> a1=floor(K0*phi(ec,p1,K0))
time = 6 ms.
%111 = 7306668762
gp> a2=floor(K0*phi(ec,p2,K0))
time = 6 ms.
%112 = 7248241383
gp> aaa=[1,0,0;0,1,0;a1,a2,K0]
time = 0 ms.
%113 =
[1 0 0]
[0 1 0]
[7306668762 7248241383 10000000000]
gp> bbb=qflll(aaa,1)
time = 1 ms.
%114 =
[-1921 104 -328]
[790 -487 2367]
[831 277 -1476]
gp> b1n=nr(bbb)
time = 1 ms.
%115 = 2237.163829494836079963086434732171312937527022732473169711873045789660
gp> b1n-2^(2/2)*2*K3*sqrt(2^2+2)
time = 0 ms.
%116 = 1962.820978303120132964990618365111477037340904898926115327411478257553
gp> M2=(1/K2)*(log(K0*K1)-log(sqrt(2^(-2)*b1n^2*2^(-2)-2*K3^2)-2*K3))
time = 1 ms.
%117 = 285.9938668275006096951717151
gp> sqrt(M2)
time = 0 ms.
%118 = 16.91135319326932541536267289
よって、
M <= 16
が得られた。
■最後に、|m1|,|m2| <= 16, m0=0,1について、P=m1P1+m2P2+m0Tが整点かどうかを確認する。
[pari/gpによる計算]
gp> check2(16,ec,p1,p2)
[534256, 390502764]
[53, -371]
[52, 360]
[13, -9]
[196, -2736]
[-14, 36]
[-2, -36]
[2, 20]
[16, -36]
[16, 36]
[2, -20]
[-2, 36]
[-14, -36]
[196, 2736]
[13, 9]
[52, -360]
[53, 371]
[534256, -390502764]
There are 18 integral points.
time = 1,027 ms.
gp> check2t(16,ec,p1,p2,[4,0])
[814, -23220]
[-16, -20]
[754, 20700]
[14, 20]
[34, -180]
[94, 900]
[-11, -45]
[4, 0]
[-11, 45]
[94, -900]
[34, 180]
[14, -20]
[754, -20700]
[-16, 20]
[814, 23220]
There are 15 integral points.
time = 1,043 ms.
(**)で求めたE4の11個の整点は、全て上記に含まれる。
よって、楕円曲線E4の整点は、
(-16,±20), (-14,±36), (-11,±45), (-2,±36), (2,±20), (4,0), (13,±9), (14,±20), (16,±36), (34,±180),
(52,±360), (53,±371), (94,±900), (196,±2736), (754,±20700), (814,±23220), (534256,±390502764)
の33個に限る。
■楕円曲線E4の整点または有理点を有理変換ψ-1で写すことにより、楕円曲線E1の有理点を求める。
ψ-1(U,V)=(X,Y) ならば ψ-1(U,-V)=(-X,Y)である。
gp> read("c2.gp")
time = 34 ms.
gp> gg([u,v])
time = 43 ms.
%1 = [6/v*u - 24/v, 2/v^2*u^3 - 12/v^2*u^2 + ((-v^2 + 64)/v^2)]
gp> gg([-16,20])
time = 12 ms.
%2 = [-6, -29]
gp> gg([-14,36])
time = 10 ms.
%3 = [-3, -7]
gp> gg([-11,45])
time = 18 ms.
%4 = [-2, -3]
gp> gg([-2,36])
time = 8 ms.
%5 = [-1, -1]
gp> gg([2,20])
time = 15 ms.
%6 = [-3/5, -23/25]
gp> gg([4,0])
time = 2 ms.
%7 = [0]
gp> gg([13,9])
time = 4 ms.
%8 = [6, 29]
gp> gg([14,20])
time = 2 ms.
%9 = [3, 7]
gp> gg([16,36])
time = 1 ms.
%10 = [2, 3]
gp> gg([34,180])
time = 0 ms.
%11 = [1, 1]
gp> gg([52,360])
time = 0 ms.
%12 = [4/5, 23/25]
gp> gg([53,371])
time = 1 ms.
%13 = [42/53, 2581/2809]
gp> gg([94,900])
time = 4 ms.
%14 = [3/5, 23/25]
gp> gg([196,2736])
time = 1 ms.
%15 = [8/19, 343/361]
gp> gg([754,20700])
time = 6 ms.
%16 = [5/23, 521/529]
gp> gg([814,23220])
time = 5 ms.
%17 = [9/43, 1823/1849]
gp> gg([534256,390502764])
time = 3 ms.
%18 = [422/51409, 2642825923/2642885281]
E4の整点に対応するE1の有理点は、
(±6,±29), (±3,±7), (±2,-1), (±1,±1), (±3/5,±23/25), (±2,3), (±4/5,23/25),
(±42/53,2581/2809), (±8/19,343/361), (±5/23,521/529), (±9/43,1823/1849), (±422/51409,2642825923/2642885281), O
である。
[参考文献]
- [1]Benjamin M.M. de Weger, "S-inetgral Solution to a Weierestrass equation", Journal de Th\'orie des Nombers de Bordeau 9, 1997, p281-301.
- [2]Joseph H. Silverman, "The Arithmetic of Elliptic Curves", GTM 106, Springer-Verlag New York Inc., 1986, p59-60, ISBN0-387-96203-4.
- [3]Nigel P. Smart, "The Algorithmic Resolution of Diophantine Equations", LMSST 41, Cambridge University Press, 1998, ISBN0-521-64633-2.
- [4]R. J. Stroeker, N. Tzanakis, "Solving elliptic diophantine equations by estimating linear forms in elliptic logarithms", Acta. Math., 3, p209-220, 1994.
| Last Update: 2005.06.12 |
| H.Nakao |