在matlab中配置凸优化所需的求解器cvx、mosek之避雷

**

在matlab中配置凸优化所需的求解器cvx、mosek之避雷

**
最近在看一些文章,其中有许多问题需要用到凸优化的求解,在用matlab求解一些凸优化的问题时需要用到求解包cvx。在安装mosek时遇到了一些问题,我想大部分的人应该也有遇到,所以写下来供大家参考。

cvx 的安装

(下载页面:http://cvxr.com/cvx/download/)
在matlab中配置凸优化所需的求解器cvx、mosek之避雷_第1张图片按照自己的电脑下载相应的安装包。其他的文章中有写到两种matlab调用用mosek 和 gurobi的方法,我这里的安装方法是只在matlab里使用mosek 和 gurobi,要是想要在其他软件里也使用mosek 和 gurobi的话需要将他们分别安装。
可以从上面的图看出,我们下载的cvx包中已经包含了mosek 和 gurobi的安装包了,所以我们只需要安装cvx就可以使用他们了。

第一步(重要雷区)

将下载的安装包下载到自己的电脑上,然后解压到电脑上的matlab文件夹中。
在matlab中配置凸优化所需的求解器cvx、mosek之避雷_第2张图片
我直接解压到了matlab所在的文件夹中。打开matlab软件在命令窗口输入:

cd D:\Ksoftware\Matlab\cvx

打开cvx文件夹,然后输入

 cvx_setup

然后会出现一些信息

CVX: Software for Disciplined Convex Programming       (c)2014 CVX Research
Version 2.1, Build 1127 (95903bf)                  Sat Dec 15 18:52:07 2018
---------------------------------------------------------------------------
Installation info:
    Path: D:\Ksoftware\Matlab\cvx
    MATLAB version: 9.4 (R2018a)
    OS: Windows 10 amd64 version 10.0
    Java version: 1.8.0_144
Verfying CVX directory contents:
    No missing files.
Preferences: 
    Path: C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\cvx_prefs.mat
License host:
    Username: Administrator
    Host ID: *********
Installed license:
    No license installed.
No valid licenses found.
    Click here to fill out an academic license request
    for the username and first hostid listed above.
---------------------------------------------------------------------------
Setting CVX paths...already set!
Searching for solvers...5 shims found.
2 solvers initialized (* = default):
 *  SDPT3     4.0         {cvx}\sdpt3
    SeDuMi    1.34        {cvx}\sedumi
7 solvers skipped:
    GLPK                  
        Could not find a GLPK installation.
    Gurobi    unknown     {cvx}\gurobi\w64
        Using Gurobi with CVX requires an academic Gurobi license
        and a Gurobi-enabled CVX Professional license.
    Mosek    unknown    {cvx}/mosek/maci64
        A CVX Professional license is required.
    Mosek_2   9.1.1       D:\mosek\9.1\toolbox\R2015aom
        Using MOSEK with CVX requires an academic MOSEK license
        or a MOSEK-enabled CVX Professional license.
    Mosek_3   9.1.1       D:\mosek\9.1\toolbox\R2015aom
        Using MOSEK with CVX requires an academic MOSEK license
        or a MOSEK-enabled CVX Professional license.
    Mosek_4   9.1.1       D:\mosek\9.1\toolbox\R2015a
        Using MOSEK with CVX requires an academic MOSEK license
        or a MOSEK-enabled CVX Professional license.
    Mosek_5   9.1.1       D:\mosek\9.1\toolbox\R2015a
        Using MOSEK with CVX requires an academic MOSEK license
        or a MOSEK-enabled CVX Professional license.
Saving updated preferences...done.
Testing with a simple model...done!
---------------------------------------------------------------------------
To change the default solver, type "cvx_solver ".
To save this change for future sessions, type "cvx_save_prefs".
Please consult the users' guide for more information.

在这里,我们可以看到这个雷区:(我把我的ID隐藏了)

Username: Administrator
    Host ID: *********

你的用户名是Administrator,如果你的用户名不是Administrator,那么恭喜你可以跳过这个雷区,进行第二步了。
用户名是Administrator会让你在后面申请cvx 的 license时出现问题,因为官方要求你的用户名不能为Administrator。那么你就要用你电脑上的其他用户去申请这个license,也就是说要切换用户才能使用。

怎么切换用户呢?

在matlab中配置凸优化所需的求解器cvx、mosek之避雷_第3张图片
在电脑设置中去添加用户,具体操作可以百度。但是添加的用户名可以简单好记一些,比如我用的时user。切换到你新添加的用户操作界面中,继续之前的步骤。同样在该用户下打开matlab,然后继续上面的操作。
命令窗口输入:

cd D:\Ksoftware\Matlab\cvx

打开cvx文件夹,然后输入

 cvx_setup

然后会出现一些信息

Username: user
    Host ID: *********

可以看到此时的用户名已经变成了user,这样就可以用user去申请cvx的 license了。

第二步 申请 license

申请页面在这里:http://cvxr.com/cvx/academic/。在这里填完信息,注意使用的邮箱要是教育邮箱。没有教育邮箱的话,这个这个我也不知道咋办。
在matlab中配置凸优化所需的求解器cvx、mosek之避雷_第4张图片
而且这里的Username 要是你之前设置的用户名。提交好申请资料之后就安静的等待。。。你的教育邮箱里会收到一个 cvx_license.dat 文件,里面就包含了你的 license。我把这个文件也放到了 D:\Ksoftware\Matlab\下面。
然后在matlab下输入:cvx_setupD:\Ksoftware\Matlab\/cvx_license.dat
这样就安装上mosek。
具体的其他步骤可以参考下这篇文章,我也是参考了这篇,但是踩了雷,所以记录一下啦。
*
https://blog.csdn.net/u012705410/article/details/78196927

你可能感兴趣的:(在matlab中配置凸优化所需的求解器cvx、mosek之避雷)