Solving Reciprocal of Concave


#1

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.


#3

It worked. Thank you Sir.


#4

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)))))
Error:
Disciplined convex programming error:
Cannot perform the operation: {real affine} .
{convex}

What is wrong here?


(Mark L. Stone) #5

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


#7

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


(Michael C. Grant) #8