1
$\begingroup$

Near the bottom of the page, there is "The above system of equations has only a limited number of solutions and the ideal can be calculated". But I cannot get the same GroebnerBasis, four polynomials than the example has.

ideal = {(2*\[Lambda]*x)/a^2 + y*z, (2*\[Lambda]*y)/b^2 + x*z, x*y + (2*\[Lambda]*z)/c^2, x^2/a^2 + y^2/b^2 + z^2/c^2 - 1} 

I tried some but I got 11 or more polynomials.

GroebnerBasis[ideal] // InputForm GroebnerBasis[ideal,{x,y,z}] // InputForm GroebnerBasis[ideal,{x,y,z,\[Lambda]}] // InputForm 

What do I have to do to get the same result as in the example?

{-1 + 12/(a^2 b^2 c^2) \[Lambda]^2, 1/a x + 2/(a b c) \[Lambda], 1/b y + 2/(a b c) \[Lambda], 1/c z + 2/(a b c) \[Lambda]} 
$\endgroup$
3
  • 1
    $\begingroup$ Note that a Groebner basis depends on the ordering of the variables. Therefore, the first example where no ordering is given is wrong syntax. $\endgroup$ Commented Feb 17, 2024 at 20:49
  • $\begingroup$ It is better to use Last[Solve[Join[{x*y*z!=0},(0==#&)/@ideal],{x,y,z,\[Lambda]}]]. $\endgroup$ Commented Feb 17, 2024 at 21:49
  • $\begingroup$ Thanks Somos, I try eventually to understand your comment. $\endgroup$ Commented Feb 20, 2024 at 9:19

2 Answers 2

3
$\begingroup$

You cannot get the same Groebner basis because them basis shown in the paper is not correct. Which maybe is not so surprising, given that this is a 2022 paper about a method that was known as far back as the 1990's (and quite possibly earlier), and yet makes no mention of that fact.

The actual basis, treating (a,b,c) as coefficient parameters rather than variablers, does in fact have 11 elements.

ideal = {(2*lambda*x)/a^2 + y*z, (2*lambda*y)/b^2 + x*z, x*y + (2*lambda*z)/c^2, x^2/a^2 + y^2/b^2 + z^2/c^2 - 1}; gbfull = GroebnerBasis[ideal, {x, y, z, lambda}, CoefficientDomain -> RationalFunctions] (* Out[172]= {lambda - (12 lambda^3)/(a^2 b^2 c^2), -lambda + ( 3 lambda z^2)/c^2, z - (8 lambda^2 z)/(a^2 b^2 c^2) - z^3/c^2, y z - (12 lambda^2 y z)/(a^2 b^2 c^2), -((4 lambda^2 y)/(a^2 b^2)) + y z^2, lambda - (3 lambda y^2)/b^2, -((4 lambda^2 z)/(a^2 c^2)) + y^2 z, y - (8 lambda^2 y)/(a^2 b^2 c^2) - y^3/b^2, (2 lambda x)/ a^2 + y z, (2 lambda y)/b^2 + x z, x y + (2 lambda z)/c^2, -1 + x^2/a^2 + y^2/b^2 + z^2/c^2} *) 

Many come about because the polynomial in lambda alone (not counting parameters (a,b,c)) factors into lambda*rest and some solutions of course correspond to the lambda==0 case. We can rule that out by forming an appropriate ideal quotient, that is, adding a "reciprocal" variable and polynomial to force lambda!=0.

gb = GroebnerBasis[Join[ideal, {lambda*recip - 1}], {x, y, z, lambda}, recip, CoefficientDomain -> RationalFunctions] (* Out[175]= {-1 + (12 lambda^2)/(a^2 b^2 c^2), 1 - (3 z^2)/c^2, 1 - (3 y^2)/b^2, x + (6 lambda y z)/(b^2 c^2)} *) 

Notice that this is still not the same as what is shown in the article. They may have done further manipulations to avoid negative solutions. This would of necessity fall outside the realm of Groebner-basis-only functionality, because solving over reals requires different methods such as cylindrical decomposition. (I like to think an actual referee might have noticed this, or at least noticed that the subject matter is classical).

Here is the full solution set.

Solve[gb == 0, {x, y, z, lambda}] (* Out[170]= {{x -> a/Sqrt[3], y -> -(b/Sqrt[3]), z -> -(c/Sqrt[3]), lambda -> -((a b c)/(2 Sqrt[3]))}, {x -> -(a/Sqrt[3]), y -> -(b/Sqrt[3]), z -> -(c/Sqrt[3]), lambda -> (a b c)/(2 Sqrt[3])}, {x -> -(a/Sqrt[3]), y -> -(b/Sqrt[3]), z -> c/Sqrt[3], lambda -> -((a b c)/(2 Sqrt[3]))}, {x -> a/Sqrt[3], y -> -(b/Sqrt[3]), z -> c/Sqrt[3], lambda -> (a b c)/(2 Sqrt[3])}, {x -> -(a/Sqrt[3]), y -> b/Sqrt[3], z -> -(c/Sqrt[3]), lambda -> -((a b c)/(2 Sqrt[3]))}, {x -> a/Sqrt[3], y -> b/Sqrt[3], z -> -(c/Sqrt[3]), lambda -> (a b c)/(2 Sqrt[3])}, {x -> a/Sqrt[3], y -> b/Sqrt[3], z -> c/Sqrt[3], lambda -> -((a b c)/(2 Sqrt[3]))}, {x -> -(a/Sqrt[3]), y -> b/Sqrt[3], z -> c/Sqrt[3], lambda -> (a b c)/(2 Sqrt[3])}} *) 
$\endgroup$
1
  • $\begingroup$ Thank You, this gives me much information. Cylindrical decomposition to get real solutions, that sounds interesting and difficult. $\endgroup$ Commented Feb 20, 2024 at 9:03
1
$\begingroup$

The following produces the required result.

ideal={(2*\[CapitalLambda]*x)/a^2 + y*z, (2*\[CapitalLambda]*y)/b^2 + x*z, x*y + (2*\[CapitalLambda]*z)/c^2, x^2/a^2 + y^2/b^2 + z^2/c^2 - 1}; GroebnerBasis[ideal, {x, y}, z, ParameterVariables -> {a, b, c, \[CapitalLambda]}] 

{-a^2 b^2 c^2 \[CapitalLambda] + 12 \[CapitalLambda]^3, -b^2 \[CapitalLambda] + 3 y^2 \[CapitalLambda], -b^2 y + y^3 + (8 y \[CapitalLambda]^2)/( a^2 c^2), -a^2 b^2 c^2 x y + 12 x y \[CapitalLambda]^2, x y^2 - (4 x \[CapitalLambda]^2)/(a^2 c^2), -a^2 \[CapitalLambda] + 3 x^2 \[CapitalLambda], x^2 y - (4 y \[CapitalLambda]^2)/(b^2 c^2), -a^2 x + x^3 + ( 8 x \[CapitalLambda]^2)/(b^2 c^2)}

Now

Solve[-a^2 b^2 c^2 \[CapitalLambda] + 12 \[CapitalLambda]^3 == 0, \[CapitalLambda]] 

{{\[CapitalLambda] -> 0}, {\[CapitalLambda] -> -((a b c)/( 2 Sqrt[3]))}, {\[CapitalLambda] -> (a b c)/(2 Sqrt[3])}}

and so on. The bases are equivalent as the result of

PolynomialReduce[{-1 + (12 \[CapitalLambda]^2)/(a^2 b^2 c^2), x/a + (2 \[CapitalLambda])/(a b c), y/b + (2 \[CapitalLambda])/(a b c), z/c + (2 \[CapitalLambda])/(a b c)}, {-a^2 b^2 c^2 \[CapitalLambda] + 12 \[CapitalLambda]^3, -b^2 \[CapitalLambda] + 3 y^2 \[CapitalLambda], -b^2 y + y^3 + (8 y \[CapitalLambda]^2)/(a^2 c^2), -a^2 b^2 c^2 x y + 12 x y \[CapitalLambda]^2, x y^2 - (4 x \[CapitalLambda]^2)/(a^2 c^2), -a^2 \[CapitalLambda] + 3 x^2 \[CapitalLambda], x^2 y - (4 y \[CapitalLambda]^2)/(b^2 c^2), -a^2 x + x^3 + (8 x \[CapitalLambda]^2)/(b^2 c^2)}, {x, y, z}] 

{{{1/(a^2 b^2 c^2 \[CapitalLambda]), 0, 0, 0, 0, 0, 0, 0}, 0}, {{(-((2 \[CapitalLambda])/( a^2 b^2 c^2 \[CapitalLambda] - 12 \[CapitalLambda]^3)) + ( b c x)/(-a^2 b^2 c^2 \[CapitalLambda] + 12 \[CapitalLambda]^3))/( a b c), 0, 0, 0, 0, 0, 0, 0}, 0}, {{(-((2 \[CapitalLambda])/( a^2 b^2 c^2 \[CapitalLambda] - 12 \[CapitalLambda]^3)) + ( a c y)/(-a^2 b^2 c^2 \[CapitalLambda] + 12 \[CapitalLambda]^3))/( a b c), 0, 0, 0, 0, 0, 0, 0}, 0}, {{(-((2 \[CapitalLambda])/( a^2 b^2 c^2 \[CapitalLambda] - 12 \[CapitalLambda]^3)) + ( a b z)/(-a^2 b^2 c^2 \[CapitalLambda] + 12 \[CapitalLambda]^3))/( a b c), 0, 0, 0, 0, 0, 0, 0}, 0}}

demonstrates.

$\endgroup$
1
  • $\begingroup$ Thank You vey much! GroebnerBasis {x,y} eliminating z. $\endgroup$ Commented Feb 18, 2024 at 10:50

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.