Groebner Basis in Macaulay2

338 Views Asked by At

This is a follow-up question to this question (calling on @Jan-Magnus Okland for help). Plugging the following into Macaulay2:

R = QQ[a,b,c,d,e,f]
S = R[l]
T = S[p,q,r,X,Y,Z,MonomialOrder=>Lex]
I=ideal(X-l*(2*a*p+b*q+d*r),Y-l*(b*p+2*q*c+e*r),Z-l*(d*p+e*q+2*f*r),X*p+Y*q+Z*r)

and then

J = groebnerBasis I

Edit: I made a mistake initially that yielded a 1 x 17 Groebner basis. I have corrected this and the correct 1 x 23 basis is shown below.

I get the following output:

o5 = | (e2-4cf)X2+(-2de+4bf)XY+(4cd-2be)XZ+(d2-4af)Y2+(-2bd+4ae)YZ+(b2-4ac)Z2
     --------------------------------------------------------------------------
     (2cd2-2bde+2ae2+2b2f-8acf)lr+(-2cd+be)X+(bd-2ae)Y+(-b2+4ac)Z
     --------------------------------------------------------------------------
     (e2-4cf)lrX+(-de+2bf)lrY+(2cd-be)lrZ-eXY+2cXZ+dY2-bYZ
     --------------------------------------------------------------------------
     (de-2bf)lrX+(-d2+4af)lrY+(bd-2ae)lrZ-eX2+dXY+bXZ-2aYZ
     --------------------------------------------------------------------------
     (2cd-be)lrX+(-bd+2ae)lrY+(b2-4ac)lrZ-2cX2+2bXY-2aY2
     --------------------------------------------------------------------------
     (2cd-be)lq+(de-2bf)lr-dY+bZ (bd-2ae)lq+(d2-4af)lr-dX+2aZ
     --------------------------------------------------------------------------
     (b2-4ac)lq+(bd-2ae)lr-bX+2aY
     --------------------------------------------------------------------------
     (2cd2-2bde+2ae2)qY2+(2b2e-8ace)qYZ+(-2b2c+8ac2)qZ2+(de2-4cdf)rXY+(-be2+
     --------------------------------------------------------------------------
     4bcf)rXZ+(-d2e+4aef)rY2+(4cd2-2ae2-8acf)rYZ+(-4bcd+b2e+4ace)rZ2
     --------------------------------------------------------------------------
     (2cd-be)qX+(-bd+2ae)qY+(b2-4ac)qZ+(de-2bf)rX+(-d2+4af)rY+(bd-2ae)rZ
     --------------------------------------------------------------------------
     elqX-dlqY+2flrX-dlrZ-XZ 2clqX-blqY+elrX-blrZ-XY blqX-2alqY+dlrX-2alrZ-X2
     --------------------------------------------------------------------------
     eqXY-2cqXZ-dqY2+bqYZ+2frXY-erXZ-drYZ+brZ2
     --------------------------------------------------------------------------
     eqX2-dqXY-bqXZ+2aqYZ+2frX2-2drXZ+2arZ2
     --------------------------------------------------------------------------
     2cqX2-2bqXY+2aqY2+erX2-drXY-brXZ+2arYZ dlp+elq+2flr-Z blp+2clq+elr-Y
     --------------------------------------------------------------------------
     2alp+blq+dlr-X 2apZ-eqX+dqY+bqZ-2frX+2drZ dpY-bpZ+eqY-2cqZ+2frY-erZ
     --------------------------------------------------------------------------
     2apY-2cqX+2bqY-erX+drY+brZ pX+qY+rZ |

             1       23
o5 : Matrix T  <--- T

I am trying to calculate the dual curve, but $\lambda$ (i.e. l in the Macaulay2 equations above) still appears in the basis. I know from my question that the final result should be

$$ (-\frac14e^2+cf)x^2+(\frac12de-bf)xy+(-\frac14d^2+af)y^2+(-cd+\frac12be)x+(\frac12bd-ae)y-\frac14b^2+ac=0. $$

My question has 2 parts:

  1. How do I go from the Groebner basis to the final answer? Does this equivalent system of equations need to be solved? (i.e. if the original system was $F = 0$, do I need to solve $G = 0$ and how would I do so?)

  2. Once I have my 2 dual curves (from their respective Groebner bases), how do I solve the two simultaneously? Can I do it in Macaulay2, or do I have to do it in another tool?

1

There are 1 best solutions below

7
On BEST ANSWER

I don't see what goes wrong with the above, what version of M2 did you use?

I get with the same commands (and toString oo)

matrix {{(e^2-4*c*f)*X^2+(-2*d*e+4*b*f)*X*Y+(4*c*d-2*b*e)*X*Z+(d^2-4*a*f)*Y^2+(-2*b*d+4*a*e)*Y*Z+(b^2-4*a*c)*Z^2,
(2*c*d^2-2*b*d*e+2*a*e^2+2*b^2*f-8*a*c*f)*l*r+(-2*c*d+b*e)*X+(b*d-2*a*e)*Y+(-b^2+4*a*c)*Z,
(e^2-4*c*f)*l*r*X+(-d*e+2*b*f)*l*r*Y+(2*c*d-b*e)*l*r*Z-e*X*Y+2*c*X*Z+d*Y^2-b*Y*Z,
(d*e-2*b*f)*l*r*X+(-d^2+4*a*f)*l*r*Y+(b*d-2*a*e)*l*r*Z-e*X^2+d*X*Y+b*X*Z-2*a*Y*Z,
(2*c*d-b*e)*l*r*X+(-b*d+2*a*e)*l*r*Y+(b^2-4*a*c)*l*r*Z-2*c*X^2+2*b*X*Y-2*a*Y^2,
(2*c*d-b*e)*l*q+(d*e-2*b*f)*l*r-d*Y+b*Z,
(b*d-2*a*e)*l*q+(d^2-4*a*f)*l*r-d*X+2*a*Z,
(b^2-4*a*c)*l*q+(b*d-2*a*e)*l*r-b*X+2*a*Y,
(2*c*d^2-2*b*d*e+2*a*e^2)*q*Y^2+(2*b^2*e-8*a*c*e)*q*Y*Z+(-2*b^2*c+8*a*c^2)*q*Z^2+(d*e^2-4*c*d*f)*r*X*Y+(-b*e^2+4*b*c*f)*r*X*Z+(-d^2*e+4*a*e*f)*r*Y^2+(4*c*d^2-2*a*e^2-8*a*c*f)*r*Y*Z+(-4*b*c*d+b^2*e+4*a*c*e)*r*Z^2,
(2*c*d-b*e)*q*X+(-b*d+2*a*e)*q*Y+(b^2-4*a*c)*q*Z+(d*e-2*b*f)*r*X+(-d^2+4*a*f)*r*Y+(b*d-2*a*e)*r*Z,
e*l*q*X-d*l*q*Y+2*f*l*r*X-d*l*r*Z-X*Z,
2*c*l*q*X-b*l*q*Y+e*l*r*X-b*l*r*Z-X*Y,
b*l*q*X-2*a*l*q*Y+d*l*r*X-2*a*l*r*Z-X^2,
e*q*X*Y-2*c*q*X*Z-d*q*Y^2+b*q*Y*Z+2*f*r*X*Y-e*r*X*Z-d*r*Y*Z+b*r*Z^2,
e*q*X^2-d*q*X*Y-b*q*X*Z+2*a*q*Y*Z+2*f*r*X^2-2*d*r*X*Z+2*a*r*Z^2,
2*c*q*X^2-2*b*q*X*Y+2*a*q*Y^2+e*r*X^2-d*r*X*Y-b*r*X*Z+2*a*r*Y*Z,
d*l*p+e*l*q+2*f*l*r-Z,
b*l*p+2*c*l*q+e*l*r-Y,
2*a*l*p+b*l*q+d*l*r-X,
2*a*p*Z-e*q*X+d*q*Y+b*q*Z-2*f*r*X+2*d*r*Z,
d*p*Y-b*p*Z+e*q*Y-2*c*q*Z+2*f*r*Y-e*r*Z,
2*a*p*Y-2*c*q*X+2*b*q*Y-e*r*X+d*r*Y+b*r*Z,
p*X+q*Y+r*Z}} 

Here you see that $p,q,r$ (and $\lambda$) are eliminated from the first element which is what you want up to a scalar.

When you have two duals (I show what I did for the original problem) you can get the groebner basis for the ideal of the intersection:

R=QQ[h,k,a,b]
S=R[x,y,MonomialOrder=>Lex]
I=ideal(k^2*y^2-b^2*y^2+2*h*k*x*y+2*k*y+h^2*x^2-a^2*x^2+2*h*x+1,(-b^2*y^2)-a^2*x^2+1)
gens gb I -- matrix {{(k^4*a^4+2*h^2*k^2*a^2*b^2+h^4*b^4)*y^4+(4*k^3*a^4+4*h^2*k*a^2*b^2)*y^3+(-2*h^2*k^2*a^2+4*k^2*a^4-2*h^4*b^2+4*h^2*a^2*b^2)*y^2-4*h^2*k*a^2*y+h^4-4*h^2*a^2,
 (2*h^3*k^2*a^2-2*h*k^2*a^4-2*h^3*a^2*b^2)*x+(-k^5*a^4-2*h^2*k^3*a^2*b^2-h^4*k*b^4)*y^3+(-3*k^4*a^4-2*h^2*k^2*a^2*b^2+h^4*b^4)*y^2+(3*h^2*k^3*a^2-2*k^3*a^4+h^4*k*b^2-2*h^2*k*a^2*b^2)*y+3*h^2*k^2*a^2-h^4*b^2,
 2*h*k*a^2*x*y+2*h*a^2*x+(k^2*a^2-h^2*b^2)*y^2+2*k*a^2*y+h^2, 2*h^3*a^2*b^2*x*y+(2*h^3*k*a^2-2*h*k*a^4)*x+(-k^4*a^4-2*h^2*k^2*a^2*b^2-h^4*b^4)*y^3+(-3*k^3*a^4-h^2*k*a^2*b^2)*y^2+(3*h^2*k^2*a^2-2*k^2*a^4+h^4*b^2)*y+3*h^2*k*a^2,
 (k^2*a^2-h^2*b^2)*x*y^2+2*k*a^2*x*y+h^2*x-2*h*k*b^2*y^3-2*h*b^2*y^2+2*h*k*y+2*h, 2*h^3*b^2*x*y^2+(-2*h^3+2*h*a^2)*x+(k^3*a^2+3*h^2*k*b^2)*y^3+(3*k^2*a^2+3*h^2*b^2)*y^2+(-3*h^2*k+2*k*a^2)*y-3*h^2, a^2*x^2+b^2*y^2-1,
 h^2*x^2+2*h*k*x*y+2*h*x+k^2*y^2+2*k*y}}

But then I switch to maxima CAS to get the intersection points:

solve([(k^4*a^4+2*h^2*k^2*a^2*b^2+h^4*b^4)*y^4+(4*k^3*a^4+4*h^2*k*a^2*b^2)*y^3+(-2*h^2*k^2*a^2+4*k^2*a^4-2*h^4*b^2+4*h^2*a^2*b^2)*y^2-4*h^2*k*a^2*y+h^4-4*h^2*a^2,(2*h^3*k^2*a^2-2*h*k^2*a^4-2*h^3*a^2*b^2)*x+(-k^5*a^4-2*h^2*k^3*a^2*b^2-h^4*k*b^4)*y^3+(-3*k^4*a^4-2*h^2*k^2*a^2*b^2+h^4*b^4)*y^2+(3*h^2*k^3*a^2-2*k^3*a^4+h^4*k*b^2-2*h^2*k*a^2*b^2)*y+3*h^2*k^2*a^2-h^4*b^2],[x,y]);