0

I have a system consisting of 2 polynomials, in 2 variables, with complex coefficients. The general case consists of a finite number of pairs of complex numbers.

NSolve[{poly1==0,poly2==0},{x,y}]

in Mathematica works for lower degree polynomials, but the time needed to find all roots seems to be exponential, 2^deg. Is there an alternative to NSolve, which is more efficient? In other language? The degree we're aiming for is in the range 15-25, higher is better.

Per Alexandersson
  • 2,443
  • 1
  • 22
  • 28
  • 5
    @Paxinum Difficult to comment without a concrete example. Well, actually it is easy to write a StackOverflow comment, like this. But it won't be terribly informative absent such an example. – Daniel Lichtblau Sep 19 '11 at 19:54
  • 2
    @Paxinum Since you're dealing with polynomials, [Gröbner basis](http://en.wikipedia.org/wiki/Gr%C3%B6bner_basis) would be a good tool to solve your system. In Mathematica, this is implemented as `GroebnerBasis` and the "Applications" tab has an example of how to solve a system of polynomial equations. – abcd Sep 19 '11 at 20:23
  • 3
    @yoda Reduce and Solve use Gröbner bases to solve systems of equations – Dr. belisarius Sep 19 '11 at 22:58
  • @belisarius Ah, I should've double checked! – abcd Sep 19 '11 at 23:03
  • Yes, NSolve use groebner bases. There is not much structure in the polynomials to take advantage of, they are the most general form of polynomials in 2 variables you can think of (all monomials present). – Per Alexandersson Sep 20 '11 at 09:22
  • @Paxinum Since it is bivariate, it might be effective to take the Resultant with respect to one variable, then find all roots of interest in that variable and back-substitute to get corresponding values in the other. This may give rise to parasite solutions so you would need to check for validity. Could be faster than using NSolve though, especially if you only want certain roots e.g. real and positive. – Daniel Lichtblau Sep 20 '11 at 15:32

1 Answers1

0

I did not find a solution, but seems like lesser number of cores is better. (Compared with 2,4 and 50 processor cores), and 64 bit architecture is 2 times faster.

All this using NSolve. System of 2 degree 17 polynomials in 2 variables took 24 hours to solve.

Per Alexandersson
  • 2,443
  • 1
  • 22
  • 28