I have a polynomial:

$$f(x_1 \dots x_n) = \prod_{i=1}^n (c_ix_i + 1) - \frac{1}{2}c_0\sum_{i=1}^nx_i^2$$

Given some values for $c_0 \dots c_n$, I'd like to choose the maximizing values for $x_1 \dots x_n$. I'm not concerned with the actual maximum value of $f(x_1 \dots x_n)$, only the values of the inputs $x_1 \dots x_n$, so if there is an equivalent function maximized at the same values I value the solution just as much. The values for any $c$ and any $x$ can be any real value.

I'm not familiar with any easy ways to do this with a polynomial of this type. My best guess is gradient ascent, but I'm not sure the function is convex.

Can anyone tell me if the function is convex, or failing that, if there's another way to find an (approximate) global argmax?