I need to optimize a problem by CVX, however, I received the following error:
Error using .*
Disciplined convex programming error:
Cannot perform the operation: {invalid} .* {concave}
Error in * (line 36)
z = feval( oper, x, y );
Error in FP_CVX_weight_main (line 94)
maximize (w_1*log(1+2*beta_1*sqrt(E_1*theta_1)-beta_1^2*(N0_tilde(iSNR)+E_2*theta_2+E_3*theta_3+E_4*theta_4))/log(2)...
My CVX is:
cvx_begin
variable E_1 nonnegative
variable E_2 nonnegative
variable E_3 nonnegative
variable E_4 nonnegative
maximize (w_1*log(1+2*beta_1*sqrt(E_1*theta_1)-beta_1^2*(N0_tilde(iSNR)+E_2*theta_2+E_3*theta_3+E_4*theta_4))/log(2)...
+w_2*log(1+2*beta_2*sqrt(E_2*theta_2)-beta_2^2*(N0_tilde(iSNR)+E_3*theta_3+E_4*theta_4))/log(2)...
+w_3*log(1+2*beta_3*sqrt(E_3*theta_3)-beta_3^2*(N0_tilde(iSNR)+E_4*theta_4))/log(2)...
+w_4*log(1+2*beta_4*sqrt(E_4*theta_4)-beta_4^2*N0_tilde(iSNR))/log(2))
subject to
E_1+E_2+E_3+E_4<=E;
E_1*theta_1>=(2^(I_min1/w_1)-1)*(N0_tilde(iSNR)+E_2*theta_2+E_3*theta_3+E_4*theta_4);
E_2*theta_2>=(2^(I_min2/w_2)-1)*(N0_tilde(iSNR)+E_3*theta_3+E_4*theta_4);
E_3*theta_3>=(2^(I_min3/w_3)-1)*(N0_tilde(iSNR)+E_4*theta_4);
E_4*theta_4>=(2^(I_min4/w_4)-1)*N0_tilde(iSNR);
cvx_end
I believe the problem comes from the last four lines of the code
E_1*theta_1>=(2^(I_min1/w_1)-1)*(N0_tilde(iSNR)+E_2*theta_2+E_3*theta_3+E_4*theta_4);
E_2*theta_2>=(2^(I_min2/w_2)-1)*(N0_tilde(iSNR)+E_3*theta_3+E_4*theta_4);
E_3*theta_3>=(2^(I_min3/w_3)-1)*(N0_tilde(iSNR)+E_4*theta_4);
E_4*theta_4>=(2^(I_min4/w_4)-1)*N0_tilde(iSNR);
but I thought those were linear constraints…