目录

  • Introducition
  • 下载地址
  • User Guide
  • 安装CVX步骤
  • Quick Start
  • 一个实例
  • CVX工具箱学习教程


Introducition

CVX是一个基于matlab的凸优化建模系统。CVX将Matlab转换为一种建模语言,允许使用标准的Matlab表达式语法指定约束和目标。例如,考虑以下凸优化模型:

cvx工具箱python_cvx工具箱python


在默认模式下,CVX支持一种特殊的凸优化方法,我们称之为有纪律的凸编程。在这种方法下,凸函数和凸集是从凸分析的一个小规则集出发,从凸函数和凸集的一个基本库出发,建立起来的。使用这些规则表示的约束和目标会自动转换为规范形式并得到解决。要了解更多关于约束凸编程的信息,请参阅这些参考资料;有关凸分析和凸优化的基础知识,请参阅《凸优化》一书。

注意CVX不是非线性优化的通用工具,也不是检查你的模型是否凸的工具。在开始使用CVX之前,务必确认您的模型可以表示为MIDCP或GP。如果两者都不是,那么CVX就不是这个任务的正确工具。

官方Introduction地址:

http://cvxr.com/cvx/doc/intro.html#what-is-cvx

下载地址

CVX Home Page:
http://cvxr.com/cvx/ 下载地址:
http://cvxr.com/cvx/download/cvx工具箱python_算法_02
非商业用途选择Standard bundles即可。然后Windows系统选择cvx-w64.zip。

User Guide

用户指南在安装好后的cvx文件夹中的doc中,如下所示:

cvx工具箱python_算法_03

安装CVX步骤

打开cvx的用户指南CVX.pdf,Installation章节有CVX安装的详细步骤:

cvx工具箱python_凸优化_04


cvx工具箱python_cvx工具箱python_05


我们需要的操作是:

1.从官网下载CVX的安装包;

2.解压到自己想要的文件夹中,此时会生成一个cvx的文件夹。

3.打开MATLAB,不要手动将CVX添加到路径中。

4.在MATLAB命令行输入下列命令:

cd C:\personal\cvx

cvx_setup

这里cvx_setup函数执行各种任务来验证您的安装是正确的,设置Matlab搜索路径,以便它可以找到所有的CVX程序文件,并运行一个简单的测试问题来验证安装。

Quick Start

一个实例

clc;clear;close

m =20;n =10;p =4;
A =randn(m,n);b =randn(m,1);
C =randn(p,n);d =randn(p,1);e =rand;
cvx_begin
    variable x(n)
    minimize(norm(A *x -b,2) )
    subject to
        C*x==d;
        norm(x,Inf )<=e;
cvx_end

运行结果非常炫酷!每次迭代的各变量的值给出,然后还有很多参数如:
Total CPU time (secs) = 0.10
CPU time per iteration = 0.01
最后会给出运行的结果,是否解决优化问题:

Status: Solved
Optimal value (cvx_optval): +5.87479

CVX工具箱学习教程

b站有位老师的入门视频讲得很好:
https://www.bilibili.com/video/BV1UQ4y1K7Vf?spm_id_from=333.999.0.0