CVX工具包可以从官网下载http://cvxr.com/cvx/download/。
CVX是基于Matlab的建模系统,用于处理凸优化问题。如果掌握好了,非常方便。
选择适合自己电脑的版本,我的电脑是64位,因此是下载cvx-w64.
CVX不需要安装,只需要配置一下,特别简单。
下面说一下配置,注册及使用方法
配置
1.下载并进行解压,如C:\cvx-w64
2.打开matlab,选择包含解压文件的文件位置
3.打开名为cvx_setup的文件直接运行,或者在matlab命令行输入命令cvx_setup
如果没有出现error等字样,则说明配置成功,但此时还没有注册。
注册:
在matlab命令行输入:cvx_version
会出现大概不到20行的信息,不用管其他,我们只需要找到我们需要的
License host:ssssss
user Host ID: 64e756441 (eth3)
Installed license:
No license installed.
最后一句可以看到没有安装序列号,因为接下来我们进行注册。
1.进入官网的序列号页面:http://cvxr.com/cvx/licensing/
我是选用Academic users,其他的我不知道能不能用。
点击进去,需要填写一些基本信息,全名,大学名称,邮箱,和刚才显示的License host: ssssssuser和Host ID: 64e756441,选同意,然后点击submit your license request,就会看到提示:序列号文件已经发送到填写的邮箱了。
需要注意的是:选择学术用户,需要填写学校的邮箱,个人邮箱是不能用的。
2.打开自己邮箱,将附件cvx_license存入一个固定的位置,如C:/cvx_license.dat.
3.matlab命令行输入cvx_setup C:/cvx_license.dat
运行结果结果中出现:status:verified
则注册成功。
使用
跟我们平时写m文件一样,只是格式有些区别,这里示范下官网给出的几个例子。
最小二乘
寻找一个n维矩阵使||Ax-b||2最小化。
这里随机生成矩阵和向量。
m=16;n=8;A=randn(m,n);b=randn(m,1);
cvx_begin
variable x(n)
minimize(norm(A*x-b))
cvx_end
x