Path: news.mathworks.com!not-for-mail
From: "Johan L?fberg" <loefberg@control.ee.ethz.ch>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Approaches to solve constrained mixed-norm optmization problema
Date: Tue, 18 Aug 2009 11:12:01 +0000 (UTC)
Organization: ETH Zurich
Lines: 35
Message-ID: <h6e2a1$h2k$1@fred.mathworks.com>
References: <26c8a015-8817-4b87-a0b3-1d22e6464c2d@z31g2000yqd.googlegroups.com>
Reply-To: "Johan L?fberg" <loefberg@control.ee.ethz.ch>
NNTP-Posting-Host: webapp-02-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1250593921 17492 172.30.248.37 (18 Aug 2009 11:12:01 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Tue, 18 Aug 2009 11:12:01 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 514525
Xref: news.mathworks.com comp.soft-sys.matlab:564156


The standard approach is to write it as a QP

min ||[Wr-s;sqrt(lambda2)*(Hr-p)||^2 + lambda1*sum(t)

s.t 

-t < r < t

where t is a new set of variables of dimension length(r). 

You decision variables are thus x=[r;t]. Write the objective in standard form 0.5*x'Q*x+c'*x and constraints as Ax<b and use, e.g., quadprog.

Or be lazy and use the modelling language YALMIP (free toolbox for MATLAB)

r = sdpvar(n,1);
objective =  (W*r - s)'*(W*r-s) + lambda1*norm(r,1)+(H*r - p)'*(H*r-p)
solvesdp([],objective)
double(r)

Prime Mover <emilsonpl@gmail.com> wrote in message <26c8a015-8817-4b87-a0b3-1d22e6464c2d@z31g2000yqd.googlegroups.com>...
> Dear friends,
> 
> What are the approaches available in MATLAB to solve a problem to find
> a vector of parameters r such that the sum
> 
> || W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p ||^2
> 
> is minimized?
> 
> W and H are matrices with known values; s and p are vector with known
> values; and lambda1 and lambda2 are a set of given weights.
> 
> Thank you all for the cooperation.
> 
>