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.

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.

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.

1 Like

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

What is wrong here?

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

1 Like

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

1 Like