/* * elliptic.maxima * * (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule */ p: Y^2+X*Y - X^3 - a*X -b; x: x1*t+(1-t)*x2; y: y1*t+(1-t)*y2; q: subst(x,X,p); q: subst(y,Y,q); q: ratsimp(expand(q)); tex(q); qr: divide(q,t*(t-1),t); r: qr[2]; q: qr[1]; tex(q); subst(0,t,r); subst(1,t,r); tex(r); polydecomp(qr[2], t); s: solve(q = 0, t); tex(s); x3: ratsimp(expand(subst(s, x))); y3: ratsimp(expand(subst(s, y))); tex(x3); tex(y3); Y3: expand(y3 * (x2-x1)^3 - (y2-y1)^3 - (x2-x1)*(y2-y1)^2 ); Y3: factor(expand(Y3)); tex(Y3);