# Solve system of polynomial equations with Python

I have 5 at most 4th order polynomials in 5 variables,

$$p_i(x_1,x_2,x_3,x_4,x_5) \qquad i = 1, \ldots, 5$$

where all coefficients are either rational or floating point. I'd would like to get the roots of the simultaneous equations $$p_1 = 0, p_2 = 0, p_3 = 0, p_4 = 0, p_5 = 0$$ and I'm partially able to do this quite easily with non-linear solvers using python scipy. Of course these non-linear solvers don't give me all roots just a couple of them if I choose the starting points carefully. In any case there is no guarantee that I'm getting all of them. But since we are talking about polynomials there are known algorithms for reducing them to polynomials of a single variable and the full set of roots of those can be found easily (see Wiki).

What I'm wondering is if there was any of this implemented in Python/SciPy. What I've found so far is finding the roots of a polynomial (single variable) and general non-linear solvers.

• Have you checked the options given in Sage? – nicoguaro Dec 11 '18 at 16:28
• I was not aware of sage, only scipy until now, thanks a lot. It seems the functionality (or some part of it) can also be found in sympy. – DanielFetchinson Dec 11 '18 at 19:49