2

I have a system of 8 polynomial equations of 7th grade eight in 8 variables with constraints (minimum and maximum acceptable values​​).

In your experience and knowledge of what is the most efficient "package" to attack this kind of problem? Mathematica, Matlab, math libraries in C + + / Java, ...

I have tried some naive approach, but with poor results .... So now I try to play it safe (as possible)

Many thanks

psmith
  • 167
  • 1
  • 12
  • Do you *need* an analytical solution, or would a numeric one suffice? – Jonas Feb 21 '13 at 19:11
  • I do not think it is possible to obtain an analytical solution, but for me it is enough to have a numerical solution. The equations have the symbolic parameters, but I'll study the numerical solution taking different values ​​for the parameters. – psmith Feb 23 '13 at 12:09

2 Answers2

2

You don't say if this is a problem with constant (known) coefficients, or if the coefficients are symbolic. And I assume that when you say 7th grade polynomials, I assume you mean the degree of the polynomial.

Well, lets start with one fact. A polynomial of 5th degree or higher with general coefficients will have no analytical solution (in general.) You can always get lucky, but don't expect a solution. If the coefficients are symbolic, then expect trouble when you go higher than 4th degree.

You have a system of polynomials. For example, suppose we have two quadratic equations, in two variables? We can solve one of them, eliminating that variable, then substitute back into the other. We will end up with a quartic (4th degree) equation in the variable remaining. Solve for the 4 solutions.

But what if we have larger systems, or higher order polynomials? A general rule is that the elimination and solving scheme will reduce effectively to a final equation that has order equivalent to the product of the orders of your equations. So a system of 8 polynomials, each of which has degree 7, will be equivalent to solving a 56 degree polynomial. If the coefficients are constant and known, then in theory we could use a polynomial root finder of some ilk. There are many of them that can yield numerical root solutions. But if the coefficients are symbolic, and you need a symbolic solution, or if you want an analytical solution, then you are almost surely stuck.

Again, some simple problems might have a solution. I was once surprised when a problem I generated of this form was solvable, yielding a nice, easily written out solution. But usually you will be not so lucky.

And of course, you are putting bounds on the solutions. This is not that difficult, in the sense that you can simply exclude all solutions that fall outside of the bounds, as long as you are looking for numerical solutions.

1

I have some experience, for equation-solving, with all the software packages and languages you mention.

The most efficient for the programmer is Mathematica, with Matlab plus the Symbolic Math Toolbox not far behind. For a problem of the modest dimensions and complication that you cite I don't think that you ought to be concerned with the efficiency of execution, neither Mathematica nor Matlab will break into a sweat solving such problems.

Note that this answer is subjective, as is the question (to an extent).

High Performance Mark
  • 77,191
  • 7
  • 105
  • 161