Invalid computation: min( {convex} )

my code

cvx_begin
    variable Q_new(N,2)
    gama0 = P * db2pow(row0) / sigma2;
%     R = zeros (K,1) ;
    expression R(K,1);
    expression r;
for i = 1 :1: K
      for n = 1:1: N
        r = r + a(n,i) * ( (-gama0 * log2(exp(1)))/(H^2 + sum_square_abs(Q(n)-X(i)))/...
        (H^2 +  sum_square_abs(Q(n)-X(i)) + gama0) *...
        ( sum_square_abs(Q_new(n)-X(i))- sum_square_abs(Q(n)-X(i)) )...
        + log2(1 + gama0/(H^2+ sum_square_abs(Q(n)-X(i)))) );
      end
    R(i) = r;
end
    eta_lb = min (R);
    maximize eta_lb
    subject to
        norms(Q_new(2:N)-Q(1:N-1),2,2) <= Smax^2 ;
        Q_new(1) == Q_new(N);
cvx_end

Error:
Error using cvx/min (line 208)
Disciplined convex programming error:
Invalid computation: min( {convex} )

Error in main (line 123)
    eta_lb = min (R);

I know that my problem is convex and solution exists.

Please show us your proof that this problem is convex. I will assume it is non-convex until you show otherwise. Certainly, CVX does not allow min(< expressions>), because its curvature can’t be determined.

this is from an article that shows convexity :
Joint Trajectory and Communication Design for UAV-Enabled
Multiple Access

I already use min( < concave> ) but in this problem, I have to use min(< convex>)
is an alternative for min function in CVX that accepts convex functions?

The forum readers don’t have access to that article. Please show is the proof.

1 Like

That is not a convexity proof of the problem you presented. That describes implementing Successive Convex Approximation (SCA) to attempt to deal with the non-convexity. I generally don’t recommend implementation of SCA by anyone other than world-class optimization experts. You can search on this forum for my thoughts in this regard.