CVX安装新版本Mosek求解器

在使用连续凸近似(SCA)求解优化问题时遇到了报错

Problem status : ILL_POSED 
Solution status : PRIMAL_ILLPOSED_CER

并且最后给出的结果为NaN。

在CVX论坛中找到一条回答
在这里插入图片描述
具体链接如下:
The status is failed

因为我使用的是CVX自带的Mosek求解器,其版本为9.1。因此考虑也可能是Mosek版本太低的缘故,故重新在Mosek官网下载安装了最新版的Mosek。故在此记录一下安装过程。

Mosek安装

Mosek下载

Mosek的下载网址如下:
Mosek Download

推荐安装Default Installers,只需要选择安装目录即可完成安装。
我选择的安装目录为:D:\Mosek

License申请

Mosek的License申请很简单,大学生可使用学校的邮箱免费获取,基本上申请后几分钟内就能收到邮件。申请链接如下:
License Apply

在申请的时候要选择“Request Personal Academic License”,之后填写相关信息,并在收到的邮件中进行确认即可。
在这里插入图片描述
得到Mosek.lic文件后,将其放到“C:\Users\你的用户名\mosek”目录下(如果没有这个目录,新建一个就好了)。比如说你的用户名为“admin”,则存放的位置为“C:\Users\admin\mosek\mosek.lic”。

到此就完成了Mosek的安装和License的申请,重启电脑后就能够正常使用了。

Matlab设置

添加路径

在环境设置中中点击设置路径,
在这里插入图片描述
在“设置路径”面板中右侧点击“添加并包含子文件夹”,将如下Mosek目录添加进去(两个选择一个添加即可)

<MSKHOME>/10.1/toolbox/r2017a
<MSKHOME>/10.1/toolbox/r2017aom

其中是Mosek安装目录,本例中为"D:\Mosek"。

这两个文件夹的区别在于:

  • 文件夹r2017a会重写MATLAB自带求解线性规划函数linprog 和 二次凸优化函数quadprog
  • 文件夹r2017aom不会重写Matlab自导的函数

CVX设置

首先运行

cvx_setup	

运行结束后,就将Mosek新版本的Solver添加进来了,如果添加失败,请重启计算机后重试。

之后运行

cvx_solver	

就能看到新安装的Mosek求解器了。
在这里插入图片描述

新安装的Mosek求解器Mosek_2和Mosek_3的版本号显示不准确。这是CVX的原因,并不影响实际调用。

Mosek卸载

如果以前安装了Mosek求解器,现在想卸载该版本Mosek。首先需要下载该版本的Mosek求解器的Default Installers安装文件。执行该安装文件,此时选择 Remove 就可以移除该版本的求解器了。
在这里插入图片描述

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: CVX 是一种在 MATLAB 环境下的优化建模工具包,可以简化数学优化问题的建模和求解过程。它提供了一种声明式的建模语言,使得用户只需要描述问题的目标函数和约束条件,而无需关注具体的求解方法。 MOSEK 是一种商用的数学优化软件包,可用于求解线性规划(LP)、二次规划(QP)、二次约束二次规划(QCQP)、半定规划(SDP)等优化问题。CVX 使用 MOSEK 作为其底层求解引擎,因为 MOSEK求解各种优化问题时具有高效、稳定和可靠的特性。 在使用 CVXMOSEK 进行优化建模时,先要安装MATLABCVXMOSEK 软件包。然后在 MATLAB 中引入 CVX 库,并加载相应的求解包,比如 MOSEK。接下来,通过定义变量、目标函数和约束条件来描述优化问题。CVX 的建模语言支持常见的线性代数运算、约束条件和优化目标的定义,使得问题建模变得方便快捷。最后,通过指定问题的求解方法和调用 CVX求解函数来求解优化问题。 CVX求解过程是透明的,用户只需要按照 CVX 的语法和规范进行建模,CVX 会自动调用 MOSEK求解算法来求解问题。求解完成后,CVX 会返回最优解和最优目标值,并提供一些其他的信息,比如收敛性、求解时间等。 综上所述,CVXMOSEK 结合使用能够简化优化问题的建模和求解过程,为用户提供了一个高效、灵活和可靠的优化工具。无论是学术界还是工业界,CVX + MOSEK 都是经典的数学优化求解组合之一。 ### 回答2: CVXMOSEK是一对常用的优化工具,用于求解凸优化问题。CVX是一个用于建模和求解凸优化问题的MATLAB工具箱,而MOSEK是一种商业化的数学优化软件。 CVX提供了一种非常方便的方式来表达和求解凸优化问题。用户只需要定义问题的变量、目标函数和约束条件,CVX就可以自动将问题转化为标准的凸优化形式,并调用底层的优化工具求解CVX支持各种约束类型,如线性约束、半正定约束和二次约束等。此外,CVX还可以处理一些特殊的约束形式,如L1范数约束和矩阵低秩约束等。 MOSEKCVX中默认的优化引擎,用于求解CVX转化后的凸优化问题。MOSEK采用了先进的内部算法,可以高效地求解大规模的凸优化问题。它支持各种凸优化问题的求解,如线性规划、二次规划、半正定规划和混合整数规划等。MOSEK还提供了一些高级功能,如线性矩阵不等式(LMI)约束的求解和多目标优化等。 CVXMOSEK的使用相对简单。首先,将CVXMOSEK安装文件下载并安装MATLAB环境中。然后,在MATLAB中加载CVXMOSEK的库文件。接下来,通过定义变量、目标函数和约束条件来创建一个凸优化问题。最后,调用CVX提供的命令来求解问题。 总之,CVXMOSEK是一对强大的凸优化工具,可以方便地求解各种凸优化问题。通过使用这对工具,用户可以高效地解决许多实际问题。 ### 回答3: CVX是一种用于数学建模和优化问题求解的工具包,而MOSEK则是一种广泛使用的数学优化软件包。CVX MOSEK使用的过程可以概括为以下几个步骤: 1. 安装CVXMOSEK:首先需要下载并安装CVXMOSEK的软件包。CVX官方网站提供了免费的学术许可证,可以方便地获取安装包。MOSEK则需要购买并获得许可证才能使用。 2. 导入CVXMOSEK库:在开始使用CVX MOSEK之前,需要在所使用的编程语言中导入CVXMOSEK的库文件。CVX通常支持MATLAB和Python语言,可以根据需要选择合适的语言和版本。 3. 定义优化问题:接下来,需要定义待解决的数学优化问题。CVX提供了简洁的数学建模语法,可以轻松地定义线性规划、二次规划、半定规划等各种类型的优化问题。 4. 调用CVXMOSEK求解:使用CVX MOSEK可以方便地调用MOSEK求解求解优化问题。CVX会自动将优化问题转化为MOSEK所需的格式,并调用相应的求解算法进行计算。 5. 获取优化结果:一旦求解完成计算,CVX会返回求解得到的最优解以及相应的目标函数值。可以将这些结果用于后续的分析和决策。 使用CVX MOSEK可以极大地简化数学优化问题的建模和求解过程,尤其对于非专业的优化问题求解者来说更加友好和便捷。它的广泛应用包括供应链优化、数据分析、机学习等领域,为解决实际问题提供了强大的工具和支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxfeng~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值