Using CVX to solve a convex maximization problem iteratively but yielding decreasing answers

Presuming your E(:,:,k) are positive definite, I think you can directly adapt the stephen_boyd solution in How to handle nonlinear equality constraints? to your problem by letting Ck=chol(E(:,:,k) ). Assuming x is a column vector, then your constraints are norm(Ckx) >= sqrt(d) . So impose the inequality for each k: qkCkx >= sqrt(d) and update qk=Ckx_previous/norm(Ck*x_previous), where x_previous is the old value of x. Instead of actually using sqrt(d) which would cause a problem, just use d and then when you find the optimal d to your overall problem, take the sqrt.

There may be a better way to do this, as I am no expert in this area, but this approach worked very well on a sample one inequality problem I tried. I don’t know how well it will work when you have 120 simultaneous inequalities and qk updates. I leave you the task of integrating this into your overall problem, since I don’t understand which parts of what you have done correspond to the problem you really want to solve vs. supporting your linear approximation (for instance x_Con=(H*x_opt)’ ).