# How do I optimize a convex function involving with a multiple integral?

Recently, I am studying a maximum-entropy problem. The problem is converted to the minimization of the following function

\int_{\mathcal{Z}} \exp \left(- \mathbf{v}^{T}\mathbf{s}-\lambda f(\mathbf{s})\right) d\Omega+\mathbf{v}^{T}\mathbf{a}+\lambda\times c,

where v_i\in \mathbb{R}, \lambda\ge 0, c is a known constant, \mathbf{a} is a known vector, \mathcal{Z} denotes a known zonotope region, and the multivariate function f is the pointwise maximum of several affine functions.

How can I solve this problem with some commonly-used tool? Is it necessary to design algorithm on my own?

I’m not clear on what all the constituents of the integral are, or even the optimization variables. But in order to use CVX, you;re going to have to convert this into a form (evaluate integral) using the building blocks in the CVX Users’ Guide. If you can;t do that, you can;t use CVX for this problem.

Sorry for the ambiguity in my post. The optimization variables are \mathbf{v} and \lambda. If I evaluate the integral of the multivariate function of \mathbf{s} in CVX，can I trust the output?

How do you propose to evaluate the integral in CVX? You will have to evaluate the integral “yourself”, and then formulate that evaluation in CVX using its building blocks and functions.

Now I see what you mean. Evaluating the integral seems intractable. Can I just use the gradient method to solve this problem? I just need to evaluate the gradient vector via some numerical methods.

You may be able to use FMINCON, or some other nonlinear solver, but not in CVX.