Hi experts,
I am a beginner for CVX and I am trying to solve the below problems, however, I get a wrong message of "Disciplined convex programming error: Cannot perform the operation norm( {convex}, 1 ) , Error in (line 100) minimize(norm(wn,1));" Can I get some hint, thank you very much for your time and effort!
cvx_begin
variable wL(N,1) complex
variable wH(N,1) complex
expression W
W=[wL,wH];
expression wn
for i=1:1:N
wn(i)=norm(W(i,:),2);
end
minimize(norm(wn,1));
subject to
norm(y_L-(wL)’*s_L,2)<=0.1;
norm(y_H-(wH)’*s_H,2)<=1;
cvx end
note : N, y_L, y_H, s_L, s_H are all given values or vectors, many thanks!
norm
can’t be applied to norm
. But the `1 norm of a column of 2 norms is just their sum, because the individual 2 norms are all nonnegative.
I think minimize(sum(norms(W,2,2)))
does what you appear to be trying to do.
Note: Your code needs expression Wn(N)
. But using my recommendation, wn
is not needed at all.
help norms
norms Computation of multiple vector norms.
norms( X ) provides a means to compute the norms of multiple vectors
packed into a matrix or N-D array. This is useful for performing
max-of-norms or sum-of-norms calculations.
All of the vector norms, including the false "-inf" norm, supported
by NORM() have been implemented in the norms() command.
norms(X,P) = sum(abs(X).^P).^(1/P)
norms(X) = norms(X,2).
norms(X,inf) = max(abs(X)).
norms(X,-inf) = min(abs(X)).
If X is a vector, these computations are completely identical to
their NORM equivalents. If X is a matrix, a row vector is returned
of the norms of each column of X. If X is an N-D matrix, the norms
are computed along the first non-singleton dimension.
norms( X, [], DIM ) or norms( X, 2, DIM ) computes Euclidean norms
along the dimension DIM. norms( X, P, DIM ) computes its norms
along the dimension DIM.
Disciplined convex programming information:
norms is convex, except when P<1, so an error will result if these
non-convex "norms" are used within CVX expressions. norms is
nonmonotonic, so its input must be affine.
Hi @Mark_L_Stone
Great, it perfectly solves this issue, many thanks for your prompt reply and suggestions!