Merry Christmas and happy new year to everyone…

Please, suppose I have the following optimization problem, with x being a matrix variable and y being a scaller variable,

maximize f(x,y)
x(2,2), y
subject to

for which I used the following CVX code,
variables x(2,2) y
maximize f(x)
subject to

However, CVX is not accepting the part inv_pos(norm(xx(2,:)-xx(1,:))) of the above constraint saying “Disciplined convex programming error: Illegal operation: pow_p( {convex}, {-1} )”. Please, is there a way to represent this part to make it acceptable by CVX?

Many thanks


I believe that is non-convex.

OK, thank you. I just tried using a slack variable z to represent the norm. I think it becomes convex and CVX accepted the form but it changed the behavior.



Well, that is convex and CVX will accept it, but that is a different problem than you originally specified, and the optimal solution may not be the same.

If you really want to solve the original problem, I suggest you use a non-convex solver, for instance under YALMIP.

Thanks a lot. I’ll give it a try.