Ask Your Question
0

Working on a 3-torsion point on an elliptic curve

asked 2016-11-10 17:05:07 -0600

Sha gravatar image

I am working on a 3-torsion point (T_3) as follows. My aim is to find the addition on curve for T_3 + [51,108]. I have done the following. First I find (x,y) coordinate for my T_3 which is the following :

E=EllipticCurve([0,0,0,-3267,45630])
E3=E.division_polynomial(3);E3
list(E3.factor())
p = E3.factor()[0][0]; p
p.parent()
P.<x> = QQbar[]
p = P(p); p
p.parent()
p.factor()
p.roots()
roots = p.roots(multiplicities=False); roots
q = x^3 - 3267*x + 45630; q
q.parent()
for (x, y) in [(r, sqrt(q(r))) for r in roots]:
     print 'xr = {} = {}'.format(x, x.radical_expression())
     print 'yr = {} = {}\n'.format(y, y.radical_expression())

which gives

xr = -94.19483056089681? = -3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) - 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) + 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712)
yr = 694.5464483276473?*I = sqrt(-108*sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) - 1/2*sqrt(-3658203648*1734^(1/3)*(-1)^(1/3) + 150108334945920/sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 140637700224) - 91260)

xr = 67.96049831231529? = 3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) - 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712)
yr = 370.7929379838096? = sqrt(108*sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 1/2*sqrt(-3658203648*1734^(1/3)*(-1)^(1/3) - 150108334945920/sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 140637700224) - 91260)

xr = 13.11716612429076? - 19.58845998947787?*I = -3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) + 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712)
yr = 161.4836552080483? + 190.1138813616981?*I = sqrt(108*sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) - 1/2*sqrt(-3658203648*1734^(1/3)*(-1)^(1/3) - 150108334945920/sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 140637700224) - 91260)

xr = 13.11716612429076? + 19.58845998947787?*I = 3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) - 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) - 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712)
yr = 161.4836552080483? - 190.1138813616981?*I = sqrt(-108*sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 1/2*sqrt(-3658203648*1734^(1/3)*(-1)^(1/3) + 150108334945920/sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 140637700224) - 91260)

I chose the first coordinate P=(xr,yr) of T_3 to perform the addition as follows :

k.<a> = NumberField(x^4 - 6534*x^2 +182520*x-3557763)
kX.<X>=FunctionField(K)
R.<Y> = kX[]
kY.<Y> = kX.extension(Y^2-X^3+3267*X-45630)
E=EllipticCurve(kY,[0,0,0,-3267,45630])
P=E(-3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) - 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) + 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712),sqrt(-108*sqrt(78408*1734 ...
(more)
edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
1

answered 2016-11-10 20:05:59 -0600

Radical expressions are nice to look at when they exist, but not so important.

In general, it is better to work with algebraic numbers.

Looking at the factors of E3 is also not so interesting, you should look at all roots.

I would suggest something along the lines of this:

E = EllipticCurve([0, 0, 0, -3267, 45630])
E3 = E.division_polynomial(3)
S.<x> = QQbar[]
p = S(E3)
roots = p.roots(multiplicities=False)
q = x^3 - 3267*x + 45630
Q = E(QQbar)(51,108)
for (x, y) in [(r, sqrt(q(r))) for r in roots]:
    P = E(QQbar)(x,y)
    R = P + Q
    print("P = {}".format(P))
    print("P + Q = {}\n".format(R))

which gives the following result

P = (-94.19483056089681? : 694.5464483276473?*I : 1)
P + Q = (20.86577892629443? - 7.11627524481309?*I : -51.544273987571? - 138.855208656804?*I : 1)

P = (67.96049831231529? : 370.7929379838096? : 1)
P + Q = (121.11628555967136? : -1194.410572580779? : 1)

P = (13.11716612429076? - 19.58845998947787?*I : 161.4836552080483? + 190.1138813616981?*I : 1)
P + Q = (-65.5718663720001? + 40.98365708169645?*I : -615.217201111534? - 264.8790840730025?*I : 1)

P = (13.11716612429076? + 19.58845998947787?*I : 161.4836552080483? - 190.1138813616981?*I : 1)
P + Q = (-65.5718663720001? - 40.98365708169645?*I : -615.217201111534? + 264.8790840730025?*I : 1)

If you care a lot about radical expressions, you can try to get them:

for (x, y) in [(r, sqrt(q(r))) for r in roots]:
    P = E(QQbar)(x,y)
    R = P + Q
    print("P = {}".format(P))
    xp, yp = P[:2]
    print("xp = {}".format(xp.radical_expression()))
    print("yp = {}".format(yp.radical_expression()))
    print("P + Q = {}".format(R))
    xr, yr = R[:2]
    print("xr = {}".format(xr.radical_expression()))
    print("yr = {}\n".format(yr.radical_expression()))

although apparently this gives radical expressions for the coordinates of P but not of P + Q.

P = (-94.19483056089681? : 694.5464483276473?*I : 1)
xp = -3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) - 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) + 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712)
yp = sqrt(-108*sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) - 1/2*sqrt(-3658203648*1734^(1/3)*(-1)^(1/3) + 150108334945920/sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 140637700224) - 91260)
P + Q = (20.86577892629443? - 7.11627524481309?*I : -51.544273987571? - 138.855208656804?*I : 1)
xr = 20.86577892629443? - 7.11627524481309?*I
yr = -51.544273987571? - 138.855208656804?*I

P = (67.96049831231529? : 370.7929379838096? : 1)
xp = 3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 1/2*sqrt(-432*612^(1/3)*(-1)^(1/3) - 60840/sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 8712)
yp = sqrt(108*sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 1/2*sqrt(-3658203648*1734^(1/3)*(-1)^(1/3) - 150108334945920/sqrt(78408*1734^(1/3)*(-1)^(1/3) + 1507177) + 140637700224) - 91260)
P + Q = (121.11628555967136? : -1194.410572580779? : 1)
xr = 121.11628555967136?
yr = -1194.410572580779?

P = (13.11716612429076? - 19.58845998947787?*I : 161.4836552080483? + 190.1138813616981?*I : 1)
xp = -3*sqrt(12*612^(1/3)*(-1)^(1/3) + 121) + 1/2*sqrt(-432*612 ...
(more)
edit flag offensive delete link more

Comments

Thank you so much for explaining this to me...

Sha gravatar imageSha ( 2016-11-10 20:53:04 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-11-10 17:05:07 -0600

Seen: 26 times

Last updated: Nov 10 '16