I am using CVX tool on MATLAB for an optimization problem with two variables (one variable is a vector X and the other is a scalar t). However, My variables are within exponential function in the objective function.
As shown here in this example:
Here is my first code sample:
cvx_begin
variables t X(N)
obj=norm(A-exp(1j*X).exp(-2*j*t),2);
minimize(obj)
cvx_end
Then I reformulated the optimization problem as follows to adhere to the no-product rule of CVX:
cvx_begin
variables t X(N)
obj=norm(A-exp(1j*X-2*j*t),2);
minimize(obj)
cvx_end
@Mark_L_Stone Thanks for your response. Actually, I try to make the argument of norm follow the affine rule. However, even when I remove the norm function and let my objective as simple as
minimize (A-exp(1jX-2j*t)), I sill get the same error. The problem comes from exp() function. Whenever I remove it, the optimization works.
@Mark_L_Stone Thanks a lot for the info. It is actually very helpful. So, if talking about each part of my model, I see that a positive constaint is log-affine. In my model, I have a complex constant A. Do we consider this also log-affine!
Thanks for your help! I managed to make my model follow CVX rules. However, I still have one last problem, which is that no function (such norm, sum_square…etc)
operates on a “concave”. Is there anyway where I can perform such operations on my “concave” objective. Or if I ask in another way “which functions” can operate on a concave objective.
norm(A-exp(1jX-2jf*t),2);
A is a complex constant, f is a real constant, X and t are the variables.