Matlab中的凸优化

时间:2012-06-25 05:29:37

标签: matlab optimization convex

我想解决以下优化问题:

非乳胶:给定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实现。

1 个答案:

答案 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个变量需要不到一秒钟。