I would like to maximize a polynomial function `p(x) = a_n x^n + ... + a_1 x + a_0`

, where the coefficients `a_n, ..., a_0`

are chosen such that `p(x)`

is concave in `[0 1]`

. I try to use `polyval`

but it fails the DCP rules (for the default domain is `[0 inf)`

). How could I specify the domain of the optimization variables as a box, say, `[0 1]^3`

?

CVX itself cannot help you. There may be techniques in polynomial optimization that transform the problem into the full domain, but CVX is agnostic to those, you will have to do the transformations yourself.

This problem is similar to the examples in §4.3.3 in the MOSEK Modeling Manual:

http://docs.mosek.com/generic/modeling-letter.pdf

Maybe that description is helpful. The examples in the modeling manual are all implemented in MOSEK’s modeling language called “Fusion”, but it should be moderately easy to implement in CVX. You could try the example in Fusion for Matlab first, which might make translating it to CVX easier.

This is great! Thank you for the pointer. In fact, jonathan, I see no reason not to use Fusion if it already has tools built in for polynomial optimization.

Fusion doesn’t have any advanced modeling or reformulations build into the language. But there are different fairly extensive case-studies that implement such things, for example polynomial optimization.