In this marketing literature, the Wolfram Research alleges that
Mathematica automates root finding behind the higher-level functions
ReduceandNSolve, removing the need for low-level operations like Maple’sIsolate.
However, in certain cases, it is sufficient to find (disjoint) isolating intervals for ALL real roots of a polynomial system. In other words, there is no need for exact solutions given by the advanced command Solve or Reduce.
For a univariate polynomial with arbitrary real coefficients, the RootIntervals is of course useful, and in accordance with the above official claim, there appears to be a built-in function that performs analogous functionality on multivariate polynomial systems with finitely many real solutions, but I still cannot find out such an internal function in Mathematica as yet.
One may believe that NSolveValues should be enough here. Unfortunately, this is not always guaranteed, since the returned roots can be incomplete (even of a real polynomial system) without any warning messages. (Accordingly, the answer to this old question is simply "no", while space does not permit the citation of such examples.) Note that although a complete list of symbolic solutions may be found, the elapsed time would be much long (in contrast to solving numerically), which is more or less unacceptable.
So, how do I obtain all rational isolating intervals (or boxes) for the multivariate case over the reals in Mma efficiently?
Edit. Here are some instances.
The first polynomial system is from $eq. (14)$ with $l=3$ (alternatively, with $l=2$) of Generalized Virasoro constructions for SU(3) (page 589):
eqs1 = {-Subscript[x,1]+4*l*Subscript[x,1]^2+8*Subscript[x,1]*(Subscript[x,2]+Subscript[x,3])-8*Subscript[x,2]*Subscript[x,3]+2*Subscript[x,1]*(Subscript[x,4]+Subscript[x,5]+Subscript[x,6]+Subscript[x,7])-2*Subscript[x,4]*Subscript[x,7]-2*Subscript[x,5]*Subscript[x,6],
-Subscript[x,2]+4*l*Subscript[x,2]^2+8*Subscript[x,2]*(Subscript[x,1]+Subscript[x,3])-8*Subscript[x,1]*Subscript[x,3]+2*Subscript[x,2]*(Subscript[x,4]+Subscript[x,5]+Subscript[x,6]+Subscript[x,7])-2*Subscript[x,4]*Subscript[x,6]-2*Subscript[x,5]*Subscript[x,7],
-Subscript[x,3]+4*l*Subscript[x,3]^2+8*Subscript[x,3]*(Subscript[x,1]+Subscript[x,2])-8*Subscript[x,1]*Subscript[x,2]+2*Subscript[x,3]*(Subscript[x,4]+Subscript[x,5]+Subscript[x,6]+Subscript[x,7])-2*Subscript[x,4]*Subscript[x,5]-2*Subscript[x,6]*Subscript[x,7],
-Subscript[x,4]+4*l*Subscript[x,4]^2+2*Subscript[x,1]*(Subscript[x,4]-Subscript[x,7])+2*Subscript[x,2]*(Subscript[x,4]-Subscript[x,6])+2*(Subscript[x,3]+3*Subscript[x,8])*(Subscript[x,4]-Subscript[x,5])+2*Subscript[x,4]*(4*Subscript[x,5]+Subscript[x,6]+Subscript[x,7]),
-Subscript[x,5]+4*l*Subscript[x,5]^2+2*Subscript[x,1]*(Subscript[x,5]-Subscript[x,6])+2*Subscript[x,2]*(Subscript[x,5]-Subscript[x,7])-2*(Subscript[x,3]+3*Subscript[x,8])*(Subscript[x,4]-Subscript[x,5])+2*Subscript[x,5]*(4*Subscript[x,4]+Subscript[x,6]+Subscript[x,7]),
-Subscript[x,6]+4*l*Subscript[x,6]^2-2*Subscript[x,1]*(Subscript[x,5]-Subscript[x,6])-2*Subscript[x,2]*(Subscript[x,4]-Subscript[x,6])+2*(Subscript[x,3]+3*Subscript[x,8])*(Subscript[x,6]-Subscript[x,7])+2*Subscript[x,6]*(Subscript[x,4]+Subscript[x,5]+4*Subscript[x,7]),
-Subscript[x,7]+4*l*Subscript[x,7]^2-2*Subscript[x,1]*(Subscript[x,4]-Subscript[x,7])-2*Subscript[x,2]*(Subscript[x,5]-Subscript[x,7])-2*(Subscript[x,3]+3*Subscript[x,8])*(Subscript[x,6]-Subscript[x,7])+2*Subscript[x,7]*(Subscript[x,4]+Subscript[x,5]+4*Subscript[x,6]),
-Subscript[x,8]+4*l*Subscript[x,8]^2+6*(Subscript[x,4]+Subscript[x,5]+Subscript[x,6]+Subscript[x,7])*Subscript[x,8]-6*Subscript[x,4]*Subscript[x,5]-6*Subscript[x,6]*Subscript[x,7],
(Subscript[x,3]+Subscript[x,8])*(Subscript[x,4]+Subscript[x,5]-Subscript[x,6]-Subscript[x,7])-2*Subscript[x,4]*Subscript[x,5]+2*Subscript[x,6]*Subscript[x,7]}/. l->3;
The second polynomial system is from $Example : CAPRASSE, DEMARET$ of Symbolic solution polynomial equation systems with symmetry (page 8):
eqs2=Array[3*Subscript[x,#]^3-Subscript[x,#]*(3*Subscript[x,#]*Indexed[a,1]+3*Indexed[a,1]+3*Indexed[a,2]-6)+Indexed[a,2]-Indexed[a,3]&,5]/.a:>Array[PowerSymmetricPolynomial[#,Array[Subscript[x,#]&,5]]&,3];(*$Assumptions:=Array[Subscript[x,#]&,8]\[Element]Reals*)
As for the isolation, these two instances ought to, ideally, take about sixteen seconds ….
SolveandSolveValuesperform this task, when instructed to useRealsas the solving domain. – Daniel Lichtblau May 17 '23 at 20:11Solvesome polynomial system) would be much long, and actually, exact solutions are unnecessary here, for what I need is just all "isolating intervals". (@BobHanlon I shall add two "difficult" examples later. ) – user688486 May 18 '23 at 04:53Solvedirectly. Offhand I do not know of a way to do that. One can get a univariate polynomail e.g. usingGroebnerBasis, and isolate real roots from that. For that second example this takes me around 5 seconds. But back-propagating to get all real roots of the full system isolated is something I do not know how to do, at least not efficiently. – Daniel Lichtblau May 18 '23 at 16:58