matlab - Matlab 中的凸优化

标签 matlab optimization convex

我想解决以下优化问题:

非 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/

相关文章:

python - Python中是否有类似于matlab中的 'which'和 'open'的函数?

matlab - 如何从 regionprops(Image ,'BoundingBox' ) 在 Matlab 中获取矩形子图像?

c++ - 返回与。指针

matlab - 从现有音频样本中合成元音jin matlab

java - %{ ... %} 评论的正则表达式

c# - C# 中的优化技术

mysql - 需要帮助优化 mysql 的纬度/经度地理搜索

algorithm - 合并最近的凸多边形

math - 最大化受二次约束的线性目标