the code is below:
%% CVX
cvx_begin
variable v(L,1) complex
variables xi C % C is an auxiliary variable
expression max_value(I)
l = sqrt(1.5 * sigma_elta_2 / (N * rho * r_max * r_max))
for i = 1:I
for k = 1:L
a_w(i,k) = exp(-1j * wi(i) * (k-1));
end
real_part = real(xi + a_w(i, * v);
imag_part = imag(xi + a_w(i, * v);
a = [real_part.â€˜, imag_part.â€™, l * xi]; % Combined as a vector

max_value(i) = norm(a,2);
end
% minimize C
minimize(C)
% constrain
subject to
1 + sum(abs(real(v)) + abs(imag(v))) <= M * xi
xi >= 0;
for i = 1:I
max_value(i) <= C; %Make sure this value is below the upper bound C
end

cvx_end

Iâ€™m not sure thereâ€™s anything wrong with my code, running this code gives a sparse vector solution that I donâ€™t expect.

hello Mark,can I ask you a question, is there any logical problem in my code for this min-max problem.If there is no logical problem, can I get cvx to give me a solution that is not so sparse without changing the code (although I know that a local optimum for a convex problem is a global optimum)

Thereâ€™s no magic sparsification or desparsification commands. Changing things such as what norm is used, or penalty terms, might affect that, but could also change the â€˜goodnessâ€™ of the solution. Of course, the input data could also matter, a lot. It is your problem, so you have to decide what you want.

Thanks for the reply, Mark. i do have some ridiculous requirements for this solution. Because for this problem I used CVX to get a solution about v and xi acting together to get a vector g. And this sparse solution resulted in every term of the objective function associated with g being 0 , which bothered me all day.Here is the code for my objective function and the solution of v and xi.

g = v / xi; %
theta = linspace(-90, 90, 180);
for i = 1 : 180
w = 0.5 * pi * sin(deg2rad(theta(i)));
for k = 1:L
e_jw(k) = exp(-1i * w * (k-1));
end
G_w(i) = e_jw * g ; %get the function G(w)
RNSR(i) = (abs(1 + G_w(i))).^2 * (xi)^2 ;%
end
v=
-0.4344 - 0.0000i
-0.0000 + 0.0000i
0.0000 - 0.0000i
-0.0000 + 0.0000i
0.0000 - 0.0000i
-0.0000 + 0.0000i
0.0000 - 0.0000i
-0.0000 + 0.0000i
-0.0000 - 0.0000i
0.0000 + 0.0000i
-0.0000 - 0.0000i
0.0000 + 0.0000i
-0.0000 - 0.0000i
0.0000 + 0.0000i
-0.0000 - 0.0000i
0.0000 + 0.0000i
xi=
0.4344

Well, maybe the formulation is not wells-suited for your application. But I donâ€™t have any idea what that is. Coming up with a formulation which is suited for what you want to do in the real world is out of scope of this forum.