matlab凸优化工具箱——cvx简介

时间:2024-05-18 13:34:20
                     

matlab中的凸优化工具箱 ——cvx简介


这学期选了王书宁的凸优化这门课,教材也是用的祂翻译的教材,平时作业都是用matlab编写。最近无意发现原来还有CVX这样专门的工具箱,想的这下能节省不少时间,下面介绍一下cvx的安装和用法。

matlab本身是没有cvx的工具箱,需要到[cvx主页],(http://cvxr.com/cvx/)上下载,菜单上有个download,进入后选择适合你的版本下载。我用的是windows系统,matlab 版本是64位,所以下载最后一个,压缩包大约20M,解压后大约50M,加压后楼主为了方便就直接放在了\matlab\bin目录下,你可以选择其它目录。

将matlab命令窗口目录定位到你安装的文件夹下,这主要是为了下一步可以运行cvx_setup文件。运行后会出现多行英文,你可以看看有没有error字眼出现。


No errors! cvx has been successfully installed.

NOTE: The MATLAB path has been updated to point to the cvx distribution.
 In order to use cvx regularly, you must save this new path definition.
      因为我就放在了bin目录下,所以不需要再file\setpath菜单下将文件目录加进去。如果你放在其它文件,最好加一下。然后在在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下,就可以了
      我们可以用cvx页面上的实例进行验证。matlab凸优化工具箱——cvx简介
新建一个M文件,将灰色区域的代码直接复制到m文件中,保存运行,(注意m文件系统可能会提示你进行更改,请不要更改)
保存后直接运行,
Calling SDPT3 4.0: 56 variables, 22 equality constraints

   For improved efficiency, SDPT3 is solving the dual problem.

num. of constraints = 22
 dim. of socp   var  = 41,   num. of socp blk  = 11
 dim. of linear var  = 11
 dim. of free   var  =  4 * convert ublk to lblk


SDPT3: Infeasible path-following algorithms


version  predcorr  gam  expon  scale_data
    NT      1      0.000   1        0   

it pstep dstep pinfeas dinfeas  gap      prim-obj      dual-obj    cputime

0|0.000|0.000|1.4e+01|9.1e+00|3.2e+03| 1.321448e+01  0.000000e+00| 0:0:00| chol  1  1 
 1|0.916|0.458|1.2e+00|5.0e+00|7.7e+02| 2.483994e+01 -4.420328e+00| 0:0:00| chol  1  1 
 2|1.000|0.968|2.1e-05|1.7e-01|4
 ……
 ……
       最后会给出最优值,出现以上这说明配置成功了,你可能会发现重复运行结果不一样,看一下代码就知道,其中的参数均是随机产生,所以有区别,至此安装就完成了。
    如果要详细学习此工具箱,可以下载他的pdf说明文档,99页。不过建议初学者先用自己的语言实现,等熟练后再使用此库。就像虽然有计算器,但是我们还是要先熟练加减乘除一样。
           祝你成功!

           
                     

matlab中的凸优化工具箱 ——cvx简介


这学期选了王书宁的凸优化这门课,教材也是用的祂翻译的教材,平时作业都是用matlab编写。最近无意发现原来还有CVX这样专门的工具箱,想的这下能节省不少时间,下面介绍一下cvx的安装和用法。

matlab本身是没有cvx的工具箱,需要到[cvx主页],(http://cvxr.com/cvx/)上下载,菜单上有个download,进入后选择适合你的版本下载。我用的是windows系统,matlab 版本是64位,所以下载最后一个,压缩包大约20M,解压后大约50M,加压后楼主为了方便就直接放在了\matlab\bin目录下,你可以选择其它目录。

将matlab命令窗口目录定位到你安装的文件夹下,这主要是为了下一步可以运行cvx_setup文件。运行后会出现多行英文,你可以看看有没有error字眼出现。


No errors! cvx has been successfully installed.

NOTE: The MATLAB path has been updated to point to the cvx distribution.
 In order to use cvx regularly, you must save this new path definition.
      因为我就放在了bin目录下,所以不需要再file\setpath菜单下将文件目录加进去。如果你放在其它文件,最好加一下。然后在在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下,就可以了
      我们可以用cvx页面上的实例进行验证。matlab凸优化工具箱——cvx简介
新建一个M文件,将灰色区域的代码直接复制到m文件中,保存运行,(注意m文件系统可能会提示你进行更改,请不要更改)
保存后直接运行,
Calling SDPT3 4.0: 56 variables, 22 equality constraints

   For improved efficiency, SDPT3 is solving the dual problem.

num. of constraints = 22
 dim. of socp   var  = 41,   num. of socp blk  = 11
 dim. of linear var  = 11
 dim. of free   var  =  4 * convert ublk to lblk


SDPT3: Infeasible path-following algorithms


version  predcorr  gam  expon  scale_data
    NT      1      0.000   1        0   

it pstep dstep pinfeas dinfeas  gap      prim-obj      dual-obj    cputime

0|0.000|0.000|1.4e+01|9.1e+00|3.2e+03| 1.321448e+01  0.000000e+00| 0:0:00| chol  1  1 
 1|0.916|0.458|1.2e+00|5.0e+00|7.7e+02| 2.483994e+01 -4.420328e+00| 0:0:00| chol  1  1 
 2|1.000|0.968|2.1e-05|1.7e-01|4
 ……
 ……
       最后会给出最优值,出现以上这说明配置成功了,你可能会发现重复运行结果不一样,看一下代码就知道,其中的参数均是随机产生,所以有区别,至此安装就完成了。
    如果要详细学习此工具箱,可以下载他的pdf说明文档,99页。不过建议初学者先用自己的语言实现,等熟练后再使用此库。就像虽然有计算器,但是我们还是要先熟练加减乘除一样。
           祝你成功!