# 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}

(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