JMM -- Solving Cubic Equations

152 days ago by WilliamStein

This worksheet accompanies these slides.

 
       
 
       

Pythagorean triples

@interact def _(t=(1/4,(1/16,1/8,..,1))): t0 = t x,y,t=var('x,y,t') show([x==(1-t^2)/(1+t^2), y==2*t/(1+t^2)]) t = t0 (x,y) = ((1-t^2)/(1+t^2), 2*t/(1+t^2)) a = 1/3 G = circle((0,0), 1, color='blue', thickness=3) G += arrow((-1-a,-t*a), (x+a,y+t*a), head=2, color='red') G += point((0,t), pointsize=150, color='black', zorder=100) G += point((-1,0), pointsize=150, color='black', zorder=100) G += point((x,y), pointsize=190, color='lightgreen', zorder=100) G += text("$(0, %s)$"%t, (-.3, t+.2), fontsize=16, color='black') G += text(r"$(%s,\,%s)$"%(x,y), (x+.35, y+.25), fontsize=16, color='black') G.show(aspect_ratio=1, ymin=-1.1, ymax=1.1, xmax=1.3, xmin=-1.3, fontsize=0, figsize=6) 
       

Click to the left again to hide and once more to show the dynamic interactive window

 
       

Cubic equations

var('x,y') implicit_plot(x^3 + y^3 == 1, (x,-2,2), (y,-2,2), aspect_ratio=1, figsize=5, gridlines=True) 
       
var('x,y') implicit_plot(y^2 + y == x^3 - x, (x,-2,3), (y,-4.5,4), aspect_ratio=1/2, figsize=5, gridlines=True) 
       
@interact def _(equation='x^3 + y^3 == 1', xmin=-2, xmax=2, ymin=-2, ymax=2, aspect_ratio=1, gridlines=True): x,y = var('x,y') eqn = sage_eval(equation, {'x':x, 'y':y}) print eqn G = implicit_plot(eqn, (x,xmin,xmax), (y,ymin,ymax), aspect_ratio=aspect_ratio, gridlines=gridlines) G.show(figsize=4) 
       

Click to the left again to hide and once more to show the dynamic interactive window

 
       

The Group Law

How the figure in the slide was made:

E = EllipticCurve([0,0,1,-1,0]); print E G = E.plot(plot_points=600, thickness=2) G += arrow((-2,1), (3,-4), head=2, color='red', width=2) G += points([(-1,0), (0,-1), (2,-3)], color='black', pointsize=70, zorder=50) G += text("$(2,-3)$", (1.3,-3.1), fontsize=18, color='black') G += text("$(-1,0)$", (-.9,1), fontsize=18, color='black') G += text("$(0,-1)$", (-.7,-1.85), fontsize=18, color='black') G.show(gridlines=True, frame=True, aspect_ratio=1/2, xmax=3.1, xmin=-2, figsize=5) 
       
Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field
Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field
E = EllipticCurve([0,0,1,-1,0]) P = E([-1,0]); Q = E([0,-1]); R = E([2,-3]) print P + Q + R print -(P+Q) print 7*P 
       
(0 : 1 : 0)
(2 : -3 : 1)
(1849037896/6941055969 : -260151768440137/578280195945297 : 1)
(0 : 1 : 0)
(2 : -3 : 1)
(1849037896/6941055969 : -260151768440137/578280195945297 : 1)