How to find roots of a system of multivariate polynomials?

130 Views Asked by At

I am trying to find the roots of a system of 3 multivariate polynomials with 3 variables. The polynomials are really 'ugly'. So far I have tried to find a Groebner Basis in Maple and got a Groebner Basis with 29 elements (the length of output exceeds the limit). I want to find roots in the interval [0,1] with x<y<z. Is there a way to find solutions? Some of the polynomials in the Basis are of order 11 and I can't find a single variable polynomial in the basis. Is there an efficient way to find such roots? Or should I do someting completely different?

Best,

fabs

2

There are 2 best solutions below

2
On

If all you want is some isolated candidate solutions (not whole algebraic or analytic surfaces) then a numerical optimization may be good enough.

Here is a numerical approach you can try

  1. Start at a random point.
  2. Select 1 variable to let vary. Let us say it is variable nr $k$. Fix the others. This gives you three one-variable polynomials in variable $k$.
  3. Seek to minimize sum of squares. This gives you one polynomial.
  4. Select a numerical root finder for your square sum polynomial. Perhaps Newton-Rhapson? Let it run until it comes under some threshold or stagnates.
  5. When stagnates or under threshold but too far from 0, jump back to 2 and switch variable to let vary but keep the point you are at as start for the new search.

If you ever find square sum = 0 then you have found a root.

However as you have same number of equations as variables it is quite possible that there are no solutions.

For example : Just consider three sphere's surfaces which don't intersect even pair-wisely.

If the equations of the sun, the earth and the moon surfaces intersected in just any one point we would be rather screwed. Bad enough if only two of them did.

0
On

An alternative to Groebner bases when considering systems over the reals that have constraints is to use either 'regular chains' or 'cylindrical algebraic decompositions', both of which Maple implements - see the RegularChains package (the help page will direct you as to good starting commands). If it turns out your system only have isolated zeroes, then the sub-package SemiAlgebraicSetTools should be extra useful.