我想解决以下优化问题:
非乳胶:给定x和mu,找
argmin_p || x-p || _2 s.t. || p || _2<亩。
乳胶:
鉴于$\mathbf{x}$
和$\mu$
,请找
$\mathrm{argmin}_p \|\mathbf{x}-\mathbf{p}\|_2 \;\; \mathrm{s.t.}\;\;\|\mathbf{p}\|_2 \leq \mu$,
是凸集上的凸函数。我一直在使用Matlab的fmincon
,但它太慢了。到目前为止搜索引擎结果给我的材料比我想要的更具理论性。我不能成为第一个想要解决这个问题的人,并希望找到一个现有的,有效的Matlab实现。
答案 0 :(得分:3)
cvx可以非常简单地处理这个问题。即使你不熟悉它,语法也很直观:
% test data
n = 1e4;
x = randn(n,1);
mu = 1;
cvx_begin
variable p(n)
minimize norm(x-p)
subject to
norm(p) <= mu
cvx_end
在我的系统上,10 ^ 4个变量需要不到一秒钟。