Homeに戻る  一覧に戻る 

Integral Points on Elliptic Curve: y^2=x^3+877x


[2021.03.08]y^2=x^3+877xの整点


■楕円曲線
     E: Y2=X3+877X ------ (1)
の有理点は、既にこちらで求めた。

■楕円曲線Eは、位数2のねじれ点群を持つ。その生成元はT(0,0)である。
     E(Q)tors = {(0,0), O}
である。

■楕円曲線Eの有理点群のrankは1であり、その生成元は
     P1(375494528127162193105504069942092792346201/6215987776871505425463220780697238044100,
         -256256267988926809388776834045513089648669153204356603464786949/
           490078023219787588959802933995928925096061616470779979261000)
よって、楕円曲線Eの有理点群は、
     E(Q)=Z×Z/2Z
         = { nP1, nP1+T | n ∈ Z }
である。

■楕円曲線Eの全ての整点を、[4]の方法によって求める。
u=1,v=0とする。
以下の形式
     C: y2 = f(x) ----- (3)
     f(x) = x^3+877x -------- (4)
を得る。
3次方程式 f(x) = 0の最大の実数根をγとする。 ------ (*)

任意のP ∈ E(Q)に対して、有理整数m1,m0(m0=0,1)が存在して、
     P = m1P1+m0T ------ (5)
となる。
f(x)=x3+877x=0の根は、1個の実数(0)と2個の純虚数±sqrt{-877}であり、
     γ = 0,
     γ' ≒ 29.614185789921694215520653492261977771*sqrt(-1),
     γ''≒ -29.614185789921694215520653492261977771*sqrt(-1),
である。

(X,Y)がEの整点であるとする。
f(x) > 0 iff x > γ

よって、x > γの範囲で、Eの整点(X,Y)を求める。
gp> read("c12.gp");
time = 1 ms.
gp> f(x)=x^3+877*x
%2 = (x)->x^3+877*x
gp> poldisc(f(x))
time = 1 ms.
%3 = -2698104532
gp> factor(f(x))
%4 =
[        x 1]

[x^2 + 877 1]

gp> rr=polroots(f(x))
time = 1 ms.
%5 = [0.E-38 + 0.E-38*I, 0.E-38 - 29.614185789921694215520653492261977771*I, 0.E-38 + 29.614185789921694215520653492261977771*I]~

■不等式1
P ∈ E(Q)が(5)で表現されるとすると、
     h^(P) >= c1|m1|2 ------- (7)
である。

[pari/gpによる計算]
gp> p0=[0];p1=[375494528127162193105504069942092792346201/6215987776871505425463220780697238044100,-256256267988926809388776834045513089648669153204356603464786949/490078023219787588959802933995928925096061616470779979261000];
gp> e=ellinit([0,0,0,877,0])
time = 1 ms.
%7 = [0, 0, 0, 877, 0, 0, 1754, 0, -769129, -42096, 0, -43169672512, 1728, Vecsmall([1]), [Vecsmall([128, -1])], [0, 0, 0, 0, 0, 0, 0, 0]]
gp> H=[ellbil(e,p1,p1)/2]
time = 1 ms.
%8 = [47.990185993981991986424846753772576988]
gp> dd=H[1]-x
%9 = -x + 47.990185993981991986424846753772576988
gp> ww=polroots(dd)
%10 = [47.990185993981991986424846753772576988 + 0.E-38*I]~
gp> c1=real(ww[1])
%11 = 47.990185993981991986424846753772576988

■不等式2
     c2 = 2*max{|γ|,|γ'|,|γ''|}
とする。任意のx >= c2に対して、
     |∫x(dt/sqrt{f(t)})| <= 4*sqrt(2)|x|-1/2 --------- (8)
となる。

[pari/gpによる計算]
gp> c2=2*max3(abs(rr[1]),abs(rr[2]),abs(rr[3]))
%12 = 59.228371579843388431041306984523955542

■不等式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)
%13 = 0.E-38
gp> c3=cc3(c0,e)
%14 = 4.0785005910999911470226663938191989618

■不等式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=floor(max{c2,γ,0})+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[1])))+1
%15 = 60
gp> factor(e.j)
%16 =
[2 6]

[3 3]

gp> he=log(2^6*3^3)
%17 = 7.4547199493640009306891284395166365224
gp> A0=AA(e,p0,he,om)
%19 = 7.4547199493640009306891284395166365224
gp> A1=AA(e,p1,he,om)
time = 1 ms.
%20 = 95.980371987963983972849693507545153976
gp> om=omega_pe(877,0)
%21 = [0.68140814385100859069288016630126993290 + 0.68140814385100859069288016630126993290*I, 0.68140814385100859069288016630126993290 - 0.68140814385100859069288016630126993290*I]
gp> eb=eeb1(e,p1,A0,A1,om)
time = 1 ms.
%23 = 2.4175450998807598383942856716569624000
gp> c4=cc4(1,eb,A0*A1)
%24 = 42552709317.807071368617622179013617320
gp> c5=cc5(eb)
%25 = 0.88275260375796288835450500835286186183
gp> c6=cc6(c5,he)
%26 = 8.3374725531219638190436334478694983842
gp> c7=cc7(c6,1,1)
%27 = 8.3999725531219638190436334478694983842
gp> c8=cc8(c6,1,1)
%28 = 8.3600146631358538722836322710101529489
gp> g(m)=m^2-(c3/c1+log(4*sqrt(2))/c1+(c4/c1)*(log(m)+c7)*(log(log(m))+c8)^3)
%29 = (m)->m^2-(c3/c1+log(4*sqrt(2))/c1+(c4/c1)*(log(m)+c7)*(log(log(m))+c8)^3)
gp> gdash(m)=2*m-(c4/c1)*((1/m)*(log(log(m))+c8)^3+(log(m)+c7)*3*(log(log(m))+c8)^2*(1/log(m))*(1/m))
time = 1 ms.
%30 = (m)->2*m-(c4/c1)*((1/m)*(log(log(m))+c8)^3+(log(m)+c7)*3*(log(log(m))+c8)^2*(1/log(m))*(1/m))
gp> nn(x)=x-g(x)/gdash(x)
%31 = (x)->x-g(x)/gdash(x)
gp>  x=10^100;for(i=1,320,x=nn(x);print(x))
5.0000000000000000000000000000000000000 E99
2.5000000000000000000000000000000000000 E99
1.2500000000000000000000000000000000000 E99
6.2500000000000000000000000000000000000 E98
3.1250000000000000000000000000000000000 E98
.....
2454552240.3712386805115084306364760482
1227284041.1378826703102047149189228697
613657355.06637450086317280833141779143
306858336.76433226563922081857600927756
153486475.02335371463501321414297577567
76853823.921448526846283157212809914337
38639885.319822238591690968639238393087
19728180.206658560546609122130366602752
10635348.579775613535435751056814194799
6705606.3451078551264898509796203164840
5519707.0084244224090363339615083970509
5385790.9698241617669968480679582939315
5384026.5158018919710671531982173040952
5384026.2090994467461492886411221235500
5384026.2090994374792074442827323388224
5384026.2090994374792074442827238787352
5384026.2090994374792074442827238787352
5384026.2090994374792074442827238787352
5384026.2090994374792074442827238787352
5384026.2090994374792074442827238787325
time = 35 ms.
主不等式(11)より、
     M < 5384026.2090994374792074442827238787352
であることが分かる。
しかし、ここで求めたMの上限は大き過ぎるので、LLL-algorithmによって、上限を下げる。

■不等式(10),(11)を単純に、
     |φ(P)| < K1exp(-K2M2), M < K3 ------- (12)
と書くことができる。
ここで、
     K1 = (4*sqrt(2)/ω)*exp(c3),
     K2 = c1,
     K3 = 18375073.656759946231471498022414837503
である。

[pari/gpによる計算]
gp> K3=5384026.2090994374792074442827238787325
%47 = 5384026.2090994374792074442827238787325
gp> om1=om[1]
%48 = 0.68140814385100859069288016630126993290 + 0.68140814385100859069288016630126993290*I
gp> om2=om[2]
%49 = 0.68140814385100859069288016630126993290 - 0.68140814385100859069288016630126993290*I
gp> K1=4*sqrt(2)/(2*real(om1))*exp(c3)
%50 = 245.13649653524906589503527658138768917
gp> K2=c1
%51 = 47.990185993981991986424846753772576988
gp> KK0(1,1,K3)
%52 = 115950952881078.63867771773177782507570
K0=1030とする。 A=[1,  0 ; [K0*φ(P1)]  K0] にLLL-algorithmを適用して、reduced basis {b1,b2}を求めると、
     b1 = [ 764720794308025, -503240984212256]t
となる。このとき、
     ||b1|| >= 2(1/2)K3*sqrt(2) = 2*K3 ----- (16)
ならば、
     M2 <= K2-1(log(K0K1) - log(2-3*||b1||2-K32)-K3) ------ (17)
が成立する。

[pari/gpによる計算]
gp> K0=10^30
%53 = 1000000000000000000000000000000
gp> a1=floor(K0*phi(e,p1,K0))
%54 = 630637555957274371994982398793
gp> aaa=[1,0;a1,K0]
%55 =
[                             1                               0]

[630637555957274371994982398793 1000000000000000000000000000000]

gp> bbb=qflll(aaa,1)
%56 =
[ 581024708622765 -851389546979627]

[-366416002196648  536918223074803]

gp> b1n=nr(bbb)
%57 = 686913676305795.29822232562211654011109
gp> b1n-2^(1/2)*K3*sqrt(2)
%58 = 686913665537742.88002345066370165154564
gp> M2=(1/K2)*(log(K0*K1)-log(sqrt(b1n^2/2-K3^2)-K3))
%59 = 0.84939682945351150046702782709605725009
gp> sqrt(M2)
%60 = 0.92162727252046502167534815978651759141

よって、
     M <= 0.92
が得られた。

■最後に、|m1| <=0.92から、m1=0なので、これを満たすのは、P=T(ねじれ点)のみである。
T(0,0)は整点であることは直ぐに分かる。

よって、楕円曲線Eの整点は、(0,0)の1個に限る。



[参考文献]


Last Update: 2021.03.18
H.Nakao

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