CVX工具包(for matlab)
来源:互联网 发布:淘宝如何投诉卖家侵权 编辑:程序博客网 时间:2024/05/02 15:41
CVX工具包(for matlab)
CVX是斯坦福的教授Stephen P. Bold等人开发的一个基于Matlab的凸优化工具包,能够解决诸如线性规划,二次规划,整数规划(需要license)等等优化问题,且使用非常的人性化。比如,求解最小二乘法等问题。
Installation
支持32/64位的Linux, MAC OSX, Windows系统。
可戳官方下载链接 :http://cvxr.com/cvx/download/
Instructions for Mac
下载的压缩包解压到任意目录(不要在Matlab的toolbox路径就可以了,因为之后安装会在这里新建cvx目录)。
打开matlab程序。(我用的Matlab R2014b)
cd Your-DIR-to-cvx/cvxcvx_setup
傻瓜式安装就一键搞定了!
其他需求详细戳用户手册安装教程:http://cvxr.com/cvx/doc/install.html
Basics
cvx_begin/cvx_end
cvx模块需要以cvx_begin起始,以cvx_end结束。其中cvx有一些需要了解的参数。
cvx_begin quiet % 不输出cvx求解时的一大坨结果cvx_begin sdp % 半正定编程模式cvx_begin gp % 几何编程模式
variable
所有cvx中用于目标函数和约束的变量都要在使用前用variable声明。
variabel a % 变量为标量variabel Y(4,5) % 变量为矩阵variabel Q(6,6,6) % 变量为多维数组
variable声明也可以带有关键字,如complex,nonnegative,semidefinite,symmetric等等。
% 目前支持的关键字如下banded(lb,ub) diagonal hankel hermitianskew_symmetric symmetric toeplitz tridiagonallower_bidiagonal lower_hessenberg lower_triangularupper_bidiagonal upper_hankel upper_hessenberg upper_triangular
optimization fuction
目标函数非常直接,直接用minimize()和maximize()来写即可。约束以subject to起始。
% Example 1:% minimize cTx% subject to Ax⪯bn = size(A,2);cvx_begin variable x(n); dual variable y; minimize( c' * x ); subject to y : A * x <= b;cvx_end
或者
% Example 2:% minimize y% subject to (Ax−b,y)∈Qmcvx_begin variables x(n) y; minimize( y ); subject to { A*x-b, y } <In> lorentz(m);cvx_end
expression(vs. variable)
当进入cvx_begin后,所有的expression和variable都为cvx类型,一个variable控制一个优化变量,不可以被赋值,重写。但expression是可以接受matlab的一般变量或者variable的赋值,甚至可以用来被放入minimize或者maximize,相当于临时存储变量。
Recommendation
1、关于cvx工具箱使用,戳http://cvxr.com/cvx/doc/CVX.pdf 。
2、深入学习convex optimization理论算法,戳http://stanford.edu/~boyd/cvxbook/(Prof. Stephen P. Bold 的书《Covex Optimization》和教学slides available online)。
Contents
- CVX工具包for matlab
- Installation
- Instructions for Mac
- Basics
- cvx_begincvx_end
- variable
- optimization fuction
- expressionvs variable
- Recommendation
- Contents
- CVX工具包(for matlab)
- CVX工具包(for matlab)
- matlab调用CVX工具包
- Matlab中的CVX工具包安装
- CVX: Matlab Software for Disciplined Convex Programming
- Matlab中凸优化工具包CVX的安装、注册与使用
- 凸优化工具包CVX快速入门
- 凸优化工具包CVX的安装注册
- 摄像机标定matlab工具包 Camera Calibration Toolbox for Matlab
- Matlab Tools for Network Analysis 网络分析工具包 (2006-2011)
- 斯坦福大学Stephen P. Bold的凸优化工具包CVX-学习
- CVX:基于matlab的凸优化包
- [matlab]在cvx中使用Mosek
- 在matlab中运用cvx与Mosek
- matlab 安装 cvx 和 mosek 以及 gurobi
- matlab数学工具包
- 为Matlab添加工具包
- matlab添加SVM工具包
- Listview展示拍照图片demo示例代码
- PHP——生成随机数和日期时间
- Spring Cloud Ribbon--智能路由
- C#调用Httpwatch API 抽取抓取日志、Header、Cookie等内容
- React-Native初学者Image布局
- CVX工具包(for matlab)
- c#关于“线程间操作无效: 从不是创建控件的线程访问它”的问题
- 高德地图3D离线定位
- Objective-C 关于类对象和元类对象的探索
- 极客学院----H5的相关笔记----H5基础(2)
- 使用TestFlight进行App构建版本进行测试
- PHP面试总结
- sourceCRT 传文件中途乱码的问题
- java 使用BeanInfo实现bean实体与map之间的互相转换