I am interested in finding minimizers of functionals of the type $\sum x^ay^bz^c$ where the exponents are 1, 0 or -1. I have codes to find such minimizers when they exist up to machine precision, using standard optimization ideas.

In view of some applications in probability theory, people are not satisfied with "precise results" but would rather like exact ones. I know that the problem above is what is called a "geometric programming problem", and there are specific algorithms to find the minimum. However, Matlab versions I've tried give still very precise, but approximate results.

Is it possible to build a symbolic version for such Geometric Programming algorithms? Do you know any works in this direction?

I finally ended up using the Matlab symbolic toolbox. It turned out that, for the applications I had in mind, once I eliminated the obvious roots (equal to 1 after some checks) the toolbox was able to solve all the equations I was interested in.

  • $\begingroup$ You can use SymPy (or any other CAS) to try to solve analytically your optimality condition. I tried for 3 and 4 terms and it worked for some of the cases I tested. $\endgroup$
    – nicoguaro
    Jun 19, 2019 at 16:45
  • 1
    $\begingroup$ @nicoguaro: that's what I've been doing until now :) It turns out that on many cases some variables are 1s at the optimum. Knowing that allows me to solve almost all cases that are interesting for me. $\endgroup$ Jun 19, 2019 at 23:09

1 Answer 1


You may want to give SCAT Maple package a try. It is certainly not tailored to geometric programming but is worth trying.

C. Hamilton "Symbolic Convex Analysis" thesis from 2005 describes the approach taken, and might reference (or be referenced) by something of your interest.

Unfortunately, I never came across symbolic geometric programming research. I wonder if geometric programming (as a "subset" of convex optimization) offers a lot of advantages one can make use of as opposed to solving general convex optimization problem.

  • $\begingroup$ Thank you for this advice. I will take a look at the package you mention. $\endgroup$ Jun 19, 2019 at 23:08
  • $\begingroup$ Nice references. $\endgroup$ Jun 23, 2019 at 9:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.