The following simple CVX procedure implements a Dantzig selector for a linear regression problem min || X*beta -y ||. Since the minimization is of a 1-norm with an infinity norm constraint, this can be transformed into an LP. I was surprised to see that CVX actually transformed this into an SOCP rather than an LP. Why does CVX choose an SOCP formulation over an LP formulation?
%
% First, get the problem size.
%
[n,p]=size(X);
%
% Now, solve using CVX.
%
cvx_begin
cvx_precision high
variable betadantzig(p)
minimize norm(betadantzig,1)
subject to
norm(X'*(X*betadantzig-y),Inf)<= delta
cvx_end
optval=cvx_optval;