I have an optimization problem in the form: $$ \min\; \lVert M - M_0 \rVert_F^2 \\ s.t. \;H(M) \succeq 0 $$ $$ m_{1,1} + \lVert m_{1,2:n}\rVert_2 \le 1 $$ $$ m_{1,1} + \lVert m_{2:n,1}\rVert_2 \le 1 $$ where the last two constraints use Matlab notation to indicate the remaining portions of the first row and column of $M$, and the norms are vector 2-norms. Here, $H$ is a linear function of $M$ (the elements of $H$ depend linearly on those of $M$).
There are a few questions:
- Is this a convex optimization problem?
- If so, how do I write it in a standard form, such as a semidefinite program?
- If not, then if we rewrite the objective as minimizing the Frobenius norm of $H-H_0$ and put the constraints in terms $M$ as a linear function of $H$, does that improve things?
Yes, this is a convex problem. You can enter it into CVX in a straightforward manner. CVX will take care of converting it into a form which the solver can handle.
After ccx_end is executed, then presuming the solver was successful, M will then contain the optimal value and be available as such in your MATLAB session.
You could just as well solve
minimize(norm(M - M0,'fro'))because the argmin will be the same.