I want toe express the following expression in the cvx, i.e.,
norm(conj(transpose(v))Hw)^2
where ‘v’ is a complex variable of size K*1, ‘H’ and ‘w’ are all given variables.
In the code, I expressed the above expression as ‘pow_p(norm(conj(transpose(v))Hw),2)’.
But the cvx gave warning as follows:
Disciplined convex programming error:
Illegal operation: pow_p( {convex}, {2} )
square_pos(norm(...))
or
pow_pos(norm(...),2)
As can be seem below, when the 2nd argument of pow_p
is 2, the first argument of pow_p
must be affine, which norm
is not.
help pow_p
pow_p Positive branch of the power function.
pow_p(X,P) computes a convex or concave branch of the power function:
P < 0: pow_p(X,P) = X.^P if X > 0, +Inf otherwise
0 <= P < 1: pow_p(X,P) = X.^P if X >= 0, -Inf otherwise
1 <= P : pow_p(X,P) = X.^P if X >= 0, +Inf otherwise
Both P and X must be real.
Disciplined convex programming information:
The geometry of pow_p(X,P) depends on the precise value of P,
which must be a real constant:
P < 0: convex and nonincreasing; X must be concave.
0 <= P < 1: concave and nondecreasing; X must be concave.
1 <= P : convex and nonmonotonic; X must be affine.
In all cases, X must be real.
HAHA!
Initially, I just find the pow_p and do not find the pow_pos.
Sir! Thank you very much! Thanks for your help!
I have asked many questions in this forum! And you help me a lot!

You should (re-)read this section of the CV User’s GUide http://cvxr.com/cvx/doc/funcref.html# , for a list of all the functions, and some other stuff.
help <function name>
has more information than the CVX Uses’ Guide. For instance, whether arguments need to be affine, convex, or concave.