Hi,I am trying to solve this problem: minimize(-x*log(1+b/x)+x),where b are constants,x and y are variables. I use the rel_entr function to transform this objective function into -rel_entr(x,x+b)+x.
the code as
h = 10;
n=2;
cvx_begin
variable a(n);
minimize(-rel_entr(a(1),a(1)+h)/log(2)+a(1))
subject to
a(1)> 0
cvx_end
But an error has occurred.
Operation error in cvxprob/newobj (line 57 )
Disciplined convex programming error:
Cannot minimize a(n) concave expression.
Error in minimize (line 21 )
newobj( prob, ‘minimize’, x );
Error in dual2 (line 6)
minimize(-rel_entr(a(1),a(1)+h)/log(2)+a(1))
Furthermore, if I switch the objective function as maximize(-x*log(1+b/x)+x), it works. But -xlog(1+1/x) is a convex function but not a concave function, why does the minimum not work?
Successive approximation method to be employed.
For improved efficiency, SDPT3 is solving the dual problem.
SDPT3 will be called several times to refine the solution.
Original size: 5 variables, 2 equality constraints
1 exponentials add 8 variables, 5 equality constraints
Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
1/ 1 | 9.700e-01 6.979e-02 0.000e+00 | Solved
1/ 1 | 6.530e-02 3.467e-04 0.000e+00 | Solved
0/ 1 | 3.589e-05 9.514e-11 0.000e+00 | Solved
0/ 0 | 0.000e+00 0.000e+00 0.000e+00 | Solved
0/ 0 | 0.000e+00 0.000e+00 0.000e+00 | Solved
Status: Solved
Optimal value (cvx_optval): +113.75