CVX工具包(for matlab)
from:http://blog.csdn.net/duoduo1030/article/details/53582370?utm_source=itdadao&utm_medium=referralCVX是斯坦福的教授Stephen P. Bold等人开发的一个基于Matlab的凸优化工具包,能够解决诸如线性规划,二次规划,整数规划(需要license)等等优化问题,且使用非常的人性化。
from:http://blog.csdn.net/duoduo1030/article/details/53582370?utm_source=itdadao&utm_medium=referral
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)
- 1
- 2
傻瓜式安装就一键搞定了!
其他需求详细戳用户手册安装教程:http://cvxr.com/cvx/doc/install.html
Basics
cvx_begin/cvx_end
cvx模块需要以cvx_begin起始,以cvx_end结束。其中cvx有一些需要了解的参数。
- 1
- 2
- 3
variable
所有cvx中用于目标函数和约束的变量都要在使用前用variable声明。
- 1
- 2
- 3
variable声明也可以带有关键字,如complex,nonnegative,semidefinite,symmetric等等。
- 1
- 2
- 3
- 4
- 5
optimization fuction
目标函数非常直接,直接用minimize()和maximize()来写即可。约束以subject to起始。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
或者
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)