I’m new to CVX, but it’s easy to use. I already used it to minimize a joint cost functions and different constrains.

The problem came when I tried to but L_p norm to a joint cost function specially that p<1.

How to calculate L_p norm with p<1?

Per the CVX Users’ Guide, L_p norm with p < 1 is not supported in CVX, for either vectors or matrices. Note that for 0 < p < 1, the L_p norm is not convex.

Perhaps if you provide the larger context of what you are trying to do, an alternate formulation can be found. Is your problem with p < 1 actually convex? If you are using the same form of objective function and/or constraints as for a convex optimization problem having p > 1, but merely changing p to be less than 1, that doesn’t sound like it would be convex, unless there is some fortuitous cancellation or redundancy.

I’m working in a direction of arrival (DOA) problem, where I change the framework from a normal one to an over-complete one so it will be suitable for a sparse signal reconstruction perspective.

I’m using ( min ( || y - A*x ||_2^2 + lambda * || x ||_p^p ) ) as my cost function where y is the output, A is the over-complete bases and x is the sparse vector that I’m looking for that suppose contains the DOA information.

My problem with p >= 1 is convex.

And for 0 < p < 1 it is not convex, so you’ll feed a different tool than CVX to handle it.

In fact, for p<1 norm the so-called \ell_p norm *is not actually a norm*. It is a misnomer and I wish people would stop using it.

Ha ha, yeah. Tell The Mathworks. They are very accommodating in the allowable values of p in norm of a vector, all the way from inf to -inf.

From the help for norm:

norm(V,-Inf) returns the smallest element of ABS(V).

So I guess this should be called a generalized norm, wherein the generalization does not have the properties of a traditional norm, either in the spirit or the letter of “the law”.