将SDPT3配置到matlab

将SDPT3配置到matlab

用yalmip和matlab建模求解优化问题时,对于半定规划问题用LMILAB直接求解不了,查了查发现在YAMLIP中使用lmilab是禁止(虽然没有报错)。一是因为lmilab速度慢,影响YALMIP的效率问题。更重要的是,lmilab不显示任何错误和不可行性报告给YAMMIP。 因此,不论是否可行,YAMLIP只能友好的显示‘successfully solved’。所以转而考虑使用SDPT3来求解半定规划问题。在网上找了一通,好像对于SDPT3的配置教程没人写过,实际配置还是很麻烦就决定写下来记录一下。将SDPT3配置到matlab_第1张图片

1.首先是SDPT3的下载,网上搜其配置找到的安装包全是需要积分或者充值很麻烦,其实直接从官网自己下就OK了。http://www.math.cmu.edu/~reha/sdpt3.html

2.下载完成后,按照文件里README提示,需要在matlab中执行 Installmex 文件,运行后发现如果matlab中未配置过支持的mex文件的编译器或者SDK是运行不了的。在这里插入图片描述

3.下载安装支持MEX文件的编译器。
在主页附加功能——>获取附加功能弹出附加功能资源管理器
在这里插入图片描述

在搜索框输入mingw即可找到需要的MinGW编译器,如果是R2017b及以后版本直接下载就好。
将SDPT3配置到matlab_第2张图片
我下载了MinGW,发现并不适配R2016b,按照提示找到适配版本即可。

R2015b through R2017a____GCC 4.9.2_____http://tdm-gcc.tdragon.net
R2017b and R2018a_______GCC 5.3______ http://mingw-w64.org
R2018b and later__________GCC 6.3______http://mingw-w64.org

下载好直接安装就可以了,这个安装没什么坑,一直NEXT就好。注意安装路径不要加上program file就好。
安装完成之后还要配置环境变量,找到控制面板->系统和安全->系统->高级系统设置,再点击环境变量进入环境变量配置。

将SDPT3配置到matlab_第3张图片
点击新建
变量名:MW_MINGW64_LOC
变量值:C:\TDM-GCC-64(你自己的安装路径)
将SDPT3配置到matlab_第4张图片
最后将其设置为matlab的临时环境变量就好了。
在matlab命令窗口输入 setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’) 运行即可。
输入mex -setup测试是否成功。成功显示:将SDPT3配置到matlab_第5张图片
4.配置SDPT3
上诉准备工作完成后,将SDPT3文件夹中的Installmex拖到matlab编译运行即可。
将SDPT3配置到matlab_第6张图片

你可能感兴趣的:(matlab)