什么是 CVX?
CVX 是一个建模系统,用于构建和求解规范凸程序 (DCP)。CVX 支持多种标准问题类型,包括线性和二次型程序(LP/QPs)、二阶锥形程序 (SOCP) 和半定程序 (SDP)。CVX还可以解决更复杂的凸优化问题,包括许多涉及不可微分函数的问题,例如ℓ1范数。您可以使用 CVX 方便地表示和求解约束范数最小化、熵最大化、行列式最大化和许多其他凸程序。从 2.0 版本开始,CVX 还使用适当的具有整数功能的求解器求解混合整数规范凸程序 (MIDCP)。
要有效地使用 CVX,您至少需要了解一些关于凸优化的知识。有关凸优化的背景知识,请参阅《凸优化》一书 [BV04] 或斯坦福大学课程 EE364A。
CVX在Matlab中实现,有效地将Matlab转变为优化建模语言。模型设定是使用常见的 Matlab 操作和函数构建的,标准 Matlab 代码可以自由地与这些设定混合。这种组合使得执行形成优化问题所需的计算或处理从其解决方案中获得的结果变得简单。例如,通过改变约束来形成和解决一系列优化问题,很容易计算出最佳权衡曲线。作为另一个例子,CVX可以用作使用凸优化的大型系统的组件,例如分支和绑定方法或工程设计框架。
CVX提供特殊模式以简化两类特定问题的构造。在