Homeに戻る  一覧に戻る 

Birational map between v^2=au^4+bu^3+cu^2+du+q^2 and y^2+(d/q)xy+2qby=x^3+(c-d^2/(4q^2))x^2-4q^2ax+a(d^2-4q^2c)


[2003.05.24]v2 = au4+bu3+cu2+du+q2からy2+(d/q)xy+2qby = x3+(c-d2/(4q2))x2-4q2ax+a(d2-4q2c)への双有理変換


■楕円曲線
     E1: v2 = au4+bu3+cu2+du+q2 ------ (1)
は、楕円曲線
     E2: y2+a1xy+a3y = x3+a2x2+a4x+a6 ------ (2)
と双有理同型(Q-isomorphic)であることを示す。
ただし、
     a,b,c,d,q ∈ Q,
     aq!=0,
     -27a2d4 + (18abc - 4b3)d3 + ((144a2c - 6ab2)q2 + (-4ac3 + b2c2))d2 + (-192a2bq4 + (-80abc2 + 18b3c)q2)d + (256a3q6 + (-128a2c2 + 144ab2c - 27b4)q4 + (16ac4 - 4b2c3)q2) != 0,
     a1 = d/q,
     a2 = c-d2/(4q2),
     a3 = 2qb,
     a4 = -4q2a,
     a6 = a2a4 = a(d2-4q2c)
とする。

E1は有理点(0,±q)を持つことに注意する。

最初に、以下の有理変換φ:(u,v)→(x,y)を考察する。この有理変換は[1],[2],[4](Th.2.17)による。
     x = {2q(v+q)+du}/u2 ---------- (3)
     y = {4q2(v+q)+2q(du+cu2)-d2u2/(2q)}/u3 -------- (4)

逆変換φ-1:(x,y)→(u,v)を求める。
(3)より、
     v+q = {xu2-du}/{2q} ------ (5)
となる。(5)を(4)に代入して、
     y = {2q(xu2-du)+2q(du+cu2)-d2u2/(2q)}/u3 = {2q(x+c)-d2/(2q)}/u
よって、
     u = {2q(x+c)-d2/(2q)}/y ----------- (6)
を得る。(6)を(5)に代入して、
     v+q = {2q(x+c)-d2/(2q)}{x(2q(x+c)-d2/(2q))-d}/{2qy}
         = {(4q2x+4cq2-d2)(4q2x2+(4cq2-d2)x-2dqy)}/{8q3y2} ------ (7)
つまり、
     v = {(4q2x+4cq2-d2)(4q2x2+(4cq2-d2)x-2dqy)}/{8q3y2}-q ------ (8)
を得る。

[pari/gp]
gp>  vvv(x,y,u)=(x*u^2-d*u)/(2*q)
time = 0 ms.
gp> vvv(x,y,uu(x,y))  
time = 5 ms.
%10 = 2*q/y^2*x^3 + ((-d^2 + 4*c*q^2)/(q*y^2))*x^2 + ((-8*q*d*y + (4/(4*q^2)*d^4 - 8*c*d^2 + 16*c^2*q^2))/(8*q*y^2))*x + ((d^3 - 4*c*q^2*d)/(4*q^2*y))
gp>  vvv(x,y,uu(x,y))*4*q^3*y^2
time = 18 ms.
%11 = 8*q^4*x^3 + (-4*q^2*d^2 + 16*c*q^4)*x^2 + (-4*q^3*d*y + (1/2*d^4 - 4*c*q^2*d^2 + 8*c^2*q^4))*x + (q*d^3 - 4*c*q^3*d)*y
[asir]
[2] fctr(8*q^4*x^3 + (-4*q^2*d^2 + 16*c*q^4)*x^2 + (-4*q^3*d*y + (1/2*d^4 - 4*c*q^2*d^2 + 8*c^2*q^4))*x + (q*d^3 - 4*c*q^3*d)*y);
[[1/2,1],[4*q^2*x+4*c*q^2-d^2,1],[4*q^2*x^2+(4*c*q^2-d^2)*x-2*d*q*y,1]]

まとめると、φ-1は有理変換
     u = {2q(x+c)-d2/(2q)}/y,
     v = {(4q2x+4cq2-d2)(4q2x2+(4cq2-d2)x-2dqy)}/{8q3y2}-q
である。

■楕円曲線E1上の点(u,v)について、(x,y) = φ(u,v)とする。
(6),(8)より、(y2+a1xy+a3y)-(x3+a2x2+a4x+a6)をpari/GP,asirで計算すると、
     (y2+a1xy+a3y)-(x3+a2x2+a4x+a6)
     = {(ad2 - 4acq2)u6 + (bd2 - 4aq2d - 4bcq2)u5 + (-8aq3v + (cd2 - 4bq2d + (-8aq4 - 4c2q2)))u4 + (-8bq3v + (d3 - 8cq2d - 8bq4))u3 + ((-d2 + 4cq2)v2 - 8cq3v + (-3q2d2 - 12cq4))u2 + (4q2dv2 - 8q3dv - 12q4d)u + (8q3v3 + 8q4v2 - 8q5v - 8q6)}/{u6}
     = (-1)*{(4cq2-d2)u2+4dq2u+8q3v+8q4}*(au4+bu3+cu2+du+q2-v2)/u6
のようになる。

[pari/GP]
gp>  read("quartic2w.gp")
time = 41 ms.
gp>  g(x,y)
time = 17 ms.
%1 = x^3 + (-1/(4*q^2)*d^2 + c)*x^2 + (-1/q*d*y - 4*a*q^2)*x + (-y^2 - 2*b*q*y + (a*d^2 - 4*a*c*q^2))
gp>  h(u,v)
time = 135 ms.
%2 = ((4*a*q^2*d^2 - 16*a*c*q^4)*u^6 + (4*b*q^2*d^2 - 16*a*q^4*d - 16*b*c*q^4)*u^5 + (-32*a*q^5*v + (4*c*q^2*d^2 - 16*b*q^4*d + (-32*a*q^6 - 16*c^2*q^4)))*u^4 + (-32*b*q^5*v + (4*q^2*d^3 - 32*c*q^4*d - 32*b*q^6))*u^3 + ((-4*q^2*d^2 + 16*c*q^4)*v^2 - 32*c*q^5*v + (-12*q^4*d^2 - 48*c*q^6))*u^2 + (16*q^4*d*v^2 - 32*q^5*d*v - 48*q^6*d)*u + (32*q^5*v^3 + 32*q^6*v^2 - 32*q^7*v - 32*q^8))/(4*q^2*u^6)
[asir]
[0] fctr((4*a*q^2*d^2 - 16*a*c*q^4)*u^6 + (4*b*q^2*d^2 - 16*a*q^4*d - 16*b*c*q^4)*u^5 + (-32*a*q^5*v + (4*c*q^2*d^2 - 16*b*q^4*d + (-32*a*q^6 - 16*c^2*q^4)))*u^4 + (-32*b*q^5*v + (4*q^2*d^3 - 32*c*q^4*d - 32*b*q^6))*u^3 + ((-4*q^2*d^2 + 16*c*q^4)*v^2 - 32*c*q^5*v + (-12*q^4*d^2 - 48*c*q^6))*u^2 + (16*q^4*d*v^2 - 32*q^5*d*v - 48*q^6*d)*u + (32*q^5*v^3 + 32*q^6*v^2 - 32*q^7*v - 32*q^8));
[[-4,1],[q,2],[(4*c*q^2-d^2)*u^2+4*d*q^2*u+8*q^3*v+8*q^4,1],[a*u^4+b*u^3+c*u^2+d*u-v^2+q^2,1]]
ここで、点(u,v)は(1)を満たすので、
     (y2+a1xy+a3y)-(x3+a2x2+a4x+a6) = (-1)*{(4cq2-d2)u2+4dq2u+8q3v+8q4}*(au4+bu3+cu2+du+q2-v2)/u6 = 0
よって、点(x,y)は楕円曲線E2上にある。

■楕円曲線E2上の点(x,y)について、(u,v) = φ-1(x,y)とする。
(au4+bu3+cu2+du+q2-v2)に(3),(4)を代入して、asirで計算する。
     au4+bu3+cu2+du+q2-v2
         = (-1)*(4q2x+4cq2-d2)3*(4q2x3+(4cq2-d2)x2+(-4dqy-16aq4)x-4q2y2-8bq3y-16caq4+4d2aq2)/(64q6y4)
         = (-1)*(4q2x+4cq2-d2)3*(x3+(c-d2/(4q2))x2+(-(d/q)y-4aq2)x-y2-2bqy-4caq2+d2a)/(16q4y4)
         = (-1)*(4q2x+4cq2-d2)3*(x3+a2x2+a4x+a6-y2-a1xy-a3y)/(16q4y4)
ここで、点(x,y)は(2)を満たすので、
         = 0

となり、点(u,v)は、楕円曲線E1上にある。
よって、楕円曲線E1とE2は、双有理変換φとφ-1により、互いに写し合うことが証明できた。

[asir]
[0] U=(2*q*(x+c)-d^2/(2*q))/y;
(4*q^2*x+4*c*q^2-d^2)/(2*q*y)
[1] V=-q+U*(U*x-d)/(2*q);
(16*q^4*x^3+(32*c*q^4-8*d^2*q^2)*x^2+(-8*d*q^3*y+16*c^2*q^4-8*d^2*c*q^2+d^4)*x-8*q^4*y^2+(-8*d*c*q^3+2*d^3*q)*y)/(8*q^3*y^2)
[2] F=a*U^4+b*U^3+c*U^2+d*U+q^2-V^2;
(-262144*q^18*y^10*x^6+(-1048576*c*q^18+262144*d^2*q^16)*y^10*x^5+(262144*d*q^17*y^11+(1048576*a*q^20-1572864*c^2*q^18+786432*d^2*c*q^16-98304*d^4*q^14)*y^10)*x^4+(262144*q^18*y^12+(524288*b*q^19+786432*d*c*q^17-196608*d^3*q^15)*y^11+(4194304*c*a*q^20+(-1048576*d^2*a-1048576*c^3)*q^18+786432*d^2*c^2*q^16-196608*d^4*c*q^14+16384*d^6*q^12)*y^10)*x^3+((786432*c*q^18-196608*d^2*q^16)*y^12+(1572864*c*b*q^19+(-393216*d^2*b+786432*d*c^2)*q^17-393216*d^3*c*q^15+49152*d^5*q^13)*y^11+(6291456*c^2*a*q^20+(-3145728*d^2*c*a-262144*c^4)*q^18+(393216*d^4*a+262144*d^2*c^3)*q^16-98304*d^4*c^2*q^14+16384*d^6*c*q^12-1024*d^8*q^10)*y^10)*x^2+((786432*c^2*q^18-393216*d^2*c*q^16+49152*d^4*q^14)*y^12+(1572864*c^2*b*q^19+(-786432*d^2*c*b+262144*d*c^3)*q^17+(98304*d^4*b-196608*d^3*c^2)*q^15+49152*d^5*c*q^13-4096*d^7*q^11)*y^11+(4194304*c^3*a*q^20-3145728*d^2*c^2*a*q^18+786432*d^4*c*a*q^16-65536*d^6*a*q^14)*y^10)*x+(262144*c^3*q^18-196608*d^2*c^2*q^16+49152*d^4*c*q^14-4096*d^6*q^12)*y^12+(524288*c^3*b*q^19-393216*d^2*c^2*b*q^17+98304*d^4*c*b*q^15-8192*d^6*b*q^13)*y^11+(1048576*c^4*a*q^20-1048576*d^2*c^3*a*q^18+393216*d^4*c^2*a*q^16-65536*d^6*c*a*q^14+4096*d^8*a*q^12)*y^10)/(65536*q^16*y^14)
[3] fctr(nm(F));
[[-1024,1],[y,10],[q,10],[4*q^2*x+4*c*q^2-d^2,3],[4*q^2*x^3+(4*c*q^2-d^2)*x^2+(-4*d*q*y-16*a*q^4)*x-4*q^2*y^2-8*b*q^3*y-16*c*a*q^4+4*d^2*a*q^2,1]]

■楕円曲線C2: y2=-3x4+4x3+891x2-594x-66366をWierstrass標準形に変形する。
楕円曲線C2は、有理点(211715/16886, ±9349897/285136996)を持つ。

[pari/GP]
gp>  read("q2.gp")
time = 65 ms.
gp>  ff(x,y)
time = 10 ms.
%1 = -3*x^4 + 4*x^3 + 891*x^2 - 594*x + (-y^2 - 66366)
gp>  ff(211715/16886, 9349897/285136996)
time = 5 ms.
%2 = 0
C2を有理変換(x,y)→(x-211715/16886,y)で写すと、
     C3: y2 = -3x4 - (1236518/8443)x3 - (254930522367/142568498)x2 - (19757463396921/1203705828614)x + (87420573910609/81303106487904016)
となる。ここで、
     (87420573910609/81303106487904016) = (9349897/343366872818)2
である。
C3を有理変換(x,y)→(X,Y)
     X = (-667249053840816012x + 2666001543489412y + 87420573910609)/(40651553243952008x2)
     Y = (-228965262225436384016389193576337060x2 - 58331295228074980225546503871308x + 233063384978413815988425971908y + 7642356742860250947122750881)/(54188551846809033361088692069648x3)
で写すと、
     C4: Y2-(39514926793842/78941180371)XY-(5780657969323/601852914307)Y = X3-(803000892334000685117651985/12463419916733511395282)X2+(262261721731827/20325776621976004)X-(2409002677002002055352955955/2897815443678632682321992)
となる。
C4を有理変換[1, 84976840789/142568498, 19757463396921/78941180371, 11776660998639800/78941180371]で写すと、
     C: Y2 = X3-1063395X-422075394
となる。

[pari/GP]
gp>  read("q2.gp")
time = 59 ms.
gp>  ff(x+211715/16886,y)
time = 32 ms.
%1 = -3*x^4 - 1236518/8443*x^3 - 254930522367/142568498*x^2 - 19757463396921/1203705828614*x + (-y^2 + 87420573910609/81303106487904016)
gp>  e=ellinit([a1,a2,a3,a4,a6])
time = 223 ms.
%2 = [-39514926793842/78941180371, -803000892334000685117651985/12463419916733511395282, -5780657969323/601852914307, 262261721731827/20325776621976004, -2409002677002002055352955955/2897815443678632682321992, -509861044734/71284249, 48861180510989653983/10162888310988002, -2342170663885407035334799297/724453860919658170580498, 948202340364805472682488403189739707/413137195286466256212357551808016, 51042960, 364673140416, -6167549952, -366558926349750/17, [1786.781463302577531174128330, 0.6725640390396827073128995810 + 0.003077162860452102306337554147*I, 0.6725640390396827073128995810 - 0.003077162860452102306337554147*I]~, 0.07433543813631374726650230950, 0.03716771906815687363 + 0.3632304415030142033*I, -22.12853126436995392 - 1.26219551 E-18*I, -11.06426563218497695 - 150.3905689512429146*I, 0.02700089401357324173]
gp>  ellglobalred(e)
time = 70 ms.
%3 = [3672, [1, 84976840789/142568498, 19757463396921/78941180371, 11776660998639800/78941180371], 1]
gp>  ellchangecurve(e,[1, 84976840789/142568498, 19757463396921/7894118371, 11776660998639800/78941180371])
time = 6 ms.
%4 = [0, 0, 0, -1063395, -422075394, 0, -2126790, -1688301576, -1130808926025, 51042960, 364673140416, -6167549952, -366558926349750/17, [1190.739266175691898977876954, -595.3696330878459494889384770 + 0.003077162860452102306337554147*I, -595.3696330878459494889384770 - 0.003077162860452102306337554147*I]~, 0.07433543813631374726650230950, 0.03716771906815687363 + 0.3632304415030142033*I, -22.12853126436995392 - 1.26219551 E-18*I, -11.06426563218497695 - 150.3905689512429146*I, 0.02700089401357324173]
gp>  xx(x,y)
time = 2 ms.
%5 = (-667249053840816012*x + (2666001543489412*y + 87420573910609))/(40651553243952008*x^2)
gp>  yy(x,y)
time = 6 ms.
%6 = (-228965262225436384016389193576337060*x^2 - 58331295228074980225546503871308*x + (233063384978413815988425971908*y + 7642356742860250947122750881))/(54188551846809033361088692069648*x^3)
gp>  (9349897/343366872818)^2
time = 0 ms.
%7 = 87420573910609/117900809348812587261124
以上の有理変換を合成すると、楕円曲線C2から楕円曲線Cへの有理変換(x,y)→(X,Y)は、
     X = (-169953681578x2 + 4257044743396x + 18699794y - 26657862686307)/(16886x - 211715)2,
     Y = (-23122631877292x3 + 305100528162504x2 -79029853587684xy + 3246146589216366x + 990889206124136y - 43087913997367158)/(16886x - 211715)3
となり、楕円曲線Cから楕円曲線C2への有理変換(X,Y)→(x,y)は、
     x = (495444603062068X + 1979513443355Y + 294648288892068294)/{2(19757463396921X+78941180371Y+11776660998639800)},
     y = (1634746723490162714546X3 - 156525135620173564332815778X2 -817373361745081357273Y2 - 26360702234378516712427567252Y + 55827675381308482222664600989332)/{4(19757463396921X+78941180371Y+11776660998639800)2}
となる。

[pari/GP]
gp>  ggg([x,y],211715/16886,[a,b,c,d,q], [1, 84976840789/142568498, 1977463396921/78941180371, 11776660998639800/78941180371])
time = 96 ms.
%3 = [(-169953681578*x^2 + 4257044743396*x + (18699794*y - 26657862686307))/(285136996*x^2 - 7150038980*x + 44823241225), (-23122631877292*x^3 + 305100528162504*x^2 + (-79029853587684*y + 3246146589216366)*x + (990889206124136*y - 43087913997367158))/(4814823314456*x^3 - 181103337324420*x^2 + 2270655753976050*x - 9489752515950875)]
gp> fff([x,y],211715/16886,[a,b,c,d,q],[1,84976840789/142568498,19757463396921/78941180371,11776660998639800/78941180371])
time = 29 ms.
%4 = [(495444603062068*x + (1979513443355*y + 294648288892068294))/(39514926793842*x + (157882360742*y + 23553321997279600)), (1634746723490162714546*x^3 - 156525135620173564332815778*x^2 + (-817373361745081357273*y^2 - 26360702234378516712427567252*y + 55827675381308482222664600989332))/(1561429439522692401569120964*x^2 + (12477419853518168216301528*y + 1861415588948583672548064446400)*x + (24926839833467022790564*y^2 + 7437308160493963499674926400*y + 554758977107535085669800576160000))]
gp>  factor((285136996*x^2 - 7150038980*x + 44823241225))
time = 2 ms.
%5 = 
[16886*x - 211715 2]

gp>  factor((4814823314456*x^3 - 181103337324420*x^2 + 2270655753976050x - 9489752515950875))
time = 9 ms.
%6 = 
[16886*x - 211715 3]
[asir]
[0] fctr((39514926793842*x + (157882360742*y + 23553321997279600)));
[[2,1],[19757463396921*x+78941180371*y+11776660998639800,1]]
[1] fctr((1561429439522692401569120964*x^2 + (12477419853518168216301528*y + 1861415588948583672548064446400)*x + (24926839833467022790564*y^2 + 7437308160493963499674926400*y + 554758977107535085669800576160000)));
[[4,1],[19757463396921*x+78941180371*y+11776660998639800,2]]

[参考文献]


Last Update: 2005.06.12
H.Nakao

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