-1

I would like to obtain ALL the real roots of a system of 8 polynomial equations in 8 variables, where the maximum degree of each equation is 3. Is this doable? What is the best software to do this?

James
  • 383
  • 1
  • 4
  • 15

1 Answers1

0

You will need to use a multi-dimensional root finding method.

Newton's should be fairly easy to implement (simple algorithm) and you may find some details about this and other methods here.

As far as I understand, it's not likely to be straightforward to solve 8 simultaneous cubic equations with a very general direct method.

Depending on your problem, you may also want to check if it's analogous to the problem of fitting a cubic spline to a set of points. If it is, then a simple direct algorithm is available here.

For the initial conditions, you might need to use well-dispersed random starting points in your domain of interest. You could use sobol sequences or some other low-discrepancy random number generator to efficiently generate random numbers to fill-out the space under consideration.

You may also consider moving this question to math exchange where you might have a better chance of having this answered correctly.

hnk
  • 2,216
  • 1
  • 13
  • 18
  • I need all real solutions, and multidimensional-root-finding algorithms such as the Newton method give me one solution, and I have checked that solving the system with multidimensional root findings many times starting from different initial conditions does not find some of the solutions. – James Jul 14 '14 at 12:31
  • Aah, I missed writing the initial conditions part, but you've already tried that. May I ask how you generated the random starting points in 8 dimensions? – hnk Jul 14 '14 at 12:34
  • If x_1, ..., x_8 are the variables, I set x_i = a*R, where a is fixed and R is a random number uniformly distributed in [-1,1]. I draw a different R for every x_i. I then solve many times for a given a and I try many different values of a. – James Jul 14 '14 at 12:43
  • Got it. The problem with that approach is that your 8-dimensional vector might not be 'evenly' spread out in the 8-d space. You'll need to use a low discrepancy sequence for achieving that. Even then, I believe there might be a more efficient way of generating the results. This is almost a brute-force way to find the initial values close enough – hnk Jul 14 '14 at 12:46