I have $6$ functions $f_i(x,y,z)$, $(i = 1, \ldots, 6)$ in three variables $x,y,z$, and I would like to find a simultaneous instance of these variables, say $(x_0, y_0, z_0)$, such that $f_i(x_0, y_0, z_0) = 0$ for each $i = 1, \ldots, 6$. The functions are pretty well-behaved, with mostly low order polynomial factors and some square roots. I know a solution exists, and with some manual searching I've already narrowed down the area where it must be to a pretty small region.

What I would like to do now is (preferably) use an exact solver to find the exact solution, or (alternatively) use a numerical search to further narrow down the region of the optimum. I've tried working with functions like (N)Solve, FindMinimum, FindRoot to do this, but it doesn't seem to work very well. The program just runs forever, with no result.

My main question is: What is the best solution for this problem in Mathematica? Maybe the problem is just too complicated for Mathematica to solve (even numerically though?!), but if it is not, which routine should I call in this case to have the best chance of getting an answer?

(I would also be curious to know in general which of these is suitable for what. Is there any real difference in efficiency between Solve, FindMinimum, Minimize, FindRoot etc.? Or do they just end up sharing the same optimized algorithms internally?)


  • $\begingroup$ Typically, it takes only three such functions to narrow down the common solutions to a discrete set. You can then apply the other three functions systematically to those few common solutions to find out which ones satisfy all six; or your could find common solutions to the other three; and many permutations thereof. Judicious selection of which of the functions to use can be helpful. $\endgroup$ – whuber Dec 13 '12 at 2:50
  • $\begingroup$ @whuber: How exactly would you use Mathematica then? Which functions would you call, and how? When I try to use the numerical optimization-functions of Mathematica, the solution it spits out is quite far from the actual solution and does not get closer when I increase the precision. $\endgroup$ – TMM Dec 13 '12 at 15:09
  • $\begingroup$ A simple working example of what you're describing is needed in order to understand what your problem really is. $\endgroup$ – whuber Dec 13 '12 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.