我想解决以下优化问题:
非 latex :给定 x 和 mu,找到
argmin_p ||x-p||_2 s.t. ||p||_2 < 亩。
latex :
给定$\mathbf{x}$
和$\mu$
,找到
$\mathrm{argmin}_p \|\mathbf{x}-\mathbf{p}\|_2 \;\; \mathrm{s.t.}\;\;\|\mathbf{p}\|_2 \leq \mu$,
这是凸集上的凸函数。我一直在使用 Matlab 的 fmincon
但它太慢了。到目前为止,搜索引擎结果给我带来的 Material 比我正在寻找的内容更具理论性。我不是第一个想要解决这个问题并希望找到现有且高效的 Matlab 实现的人。
最佳答案
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 个变量,这需要不到一秒的时间。
关于matlab - Matlab 中的凸优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11183894/