Mercurial > hg > smallbox
comparison util/unloc_solver.m @ 246:cef4500b936f ver_2.1
Merge
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Wed, 31 Oct 2012 12:10:13 +0000 |
parents | 5c8bcdadb380 |
children |
comparison
equal
deleted
inserted
replaced
245:96d17e5dc5d3 | 246:cef4500b936f |
---|---|
1 function [ sol ] = unloc_solver( b, A, param,name ) | |
2 %UNLOC_SOLVER Solve the minimisation problem using UNLOCBOX toolbox | |
3 % | |
4 % argmin_x ||x||_1 such that ||Ax-b||_2 < sima_t | |
5 | |
6 if nargin<3, param=struct; end | |
7 | |
8 % set parameters | |
9 if ~isfield(param, 'verbose'), param.verbose = 1; end | |
10 if ~isfield(param, 'T'), param.T = 256; end | |
11 if ~isfield(param, 'sigma'), param.sigma = 1; end | |
12 if ~isfield(param, 'max_iter'), param.max_iter = 100; end | |
13 if ~isfield(param, 'epsilon'), param.epsilon = 1e-3; end | |
14 | |
15 [b2,f1,f2,param] = small_to_unloc(b,A,param); | |
16 | |
17 if strcmpi(name, 'Douglas_Rachford') | |
18 sol=douglas_rachford(b2,f2,f1,param); | |
19 elseif strcmpi(name, 'Forward_Backard') | |
20 sol=forward_backward(b2,f1,f2,param); | |
21 elseif strcmpi(name, 'ADMM') | |
22 opL= @(x) x; | |
23 sol=admm(b2,f1,f2,opL,param); | |
24 else | |
25 error('UNLocBox tells you: Unknown solver name!') | |
26 end; | |
27 | |
28 | |
29 | |
30 end | |
31 |