Solving Reciprocal of Concave


Hello. Can I solve reciprocal of a concave function using CVX? Right now when I am trying to solve, it gives error
Cannot perform the operation: {positive constant} ./ {concave}

Thank you in advance for your time and consideration.

(Mark L. Stone) #2

You might be able to use inv_pos

help inv_pos

 inv_pos   Reciprocal of a positive quantity.
     inv_pos(X) returns 1./X if X is positive, and +Inf otherwise.
     X must be real.
     For matrices and N-D arrays, the function is applied to each element.
      Disciplined convex programming information:
          inv_pos is convex and nonincreasing; therefore, when used in CVX
          specifications, its argument must be concave (or affine).

There might be other options, depending on the context within your overall problem.


It worked. Thank you Sir.


Hello again. I am trying an objective function which has product of real affine and reciprocal of concave. Is it possible when I use inv_pos?
here is OF:
minimize sum(sum(rho.(inv_pos((log(1+x))/log(2)))))
Disciplined convex programming error:
Cannot perform the operation: {real affine} .

What is wrong here?

(Mark L. Stone) #5

I presume rho is a CVX variable or affine expression. So this is non-convex.


rho here is defined as a mxn martrix and value is between 0 and 1

(Michael C. Grant) #8