win7-64下Matlab2014配置安装SeDuMi_1.3及出现问题

来源:互联网 发布:kpmg 大数据招聘 编辑:程序博客网 时间:2024/06/06 10:03

最近论文需要解决一个凸优化问题,接触到了SeDuMi工具包,网上查了一些资料并按照最新的版本实际配置成功。

1 SeDuMi的下载:http://sedumi.ie.lehigh.edu/

我这里下载的是SeDuMi 1.3

2 Matlab配置SeDuMi工具包

2.1 解压安装包,配置matlab安装路径。我这里把解压后的文件复制到matlab的toolbox包下D:\Program Files\MATLAB\R2014a\toolbox\
这里写图片描述
2.2 打开matlab,选择 设置路径–>添加并包含子文件夹–>选择刚刚的路径–>保存
这里写图片描述
2.3 进入文件夹,找到install_sedumi.m文件打开
这里写图片描述
2.4 命令行输入>>install_sedumi,出现错误
Building SeDuMi binaries…
mex -O -DPC -largeArrayDims bwblkslv.c sdmauxFill.c sdmauxRdot.c “D:\Program Files\MATLAB\R2014a\extern\lib\win64\microsoft\libmwlapack.lib”
使用 ‘Microsoft Visual C++ 2013 Professional (C)’ 编译。
错误使用 mex
正在创建库 bwblkslv.lib 和对象 bwblkslv.exp
sdmauxRdot.obj : error LNK2019: 无法解析的外部符号 ddot,该符号在函数 realdot 中被引用
bwblkslv.mexw64 : fatal error LNK1120: 1 个无法解析的外部命令
出错 install_sedumi (line 113)
eval( temp );

这是由于安装的matlab版本配置出了问题,首先我们查找matlab的版本,输入>>version
这里写图片描述
显示版本是8.3,则修改install_sedumi.m,把其中一处 VERSION(2)>=5改成自己的版本,我这里8.3就把5改成3,保存再运行一遍>>install_sedumi
这里写图片描述
2.5 安装成功
这里写图片描述

3 测试

测试样例及运行结果:

>> b=[1 4]';>> A=[-1 1 0 1 1;0 0 -1 1 2];>> c=[0 2 0 3.5 6];>> [x, y, info]=sedumi(A,b,c)SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500eqs m = 2, order n = 6, dim = 6, blocks = 1nnz(A) = 7 + 0, nnz(ADA) = 4, nnz(L) = 3 it :     b*y       gap    delta  rate   t/tP*  t/tD*   feas cg cg  prec  0 :            4.58E+01 0.000  1 :   8.27E+00 1.37E+01 0.000 0.2992 0.9000 0.9000   1.99  1  1  1.3E+00  2 :   1.15E+01 3.16E+00 0.000 0.2304 0.9000 0.9000   1.81  1  1  2.4E-01  3 :   1.19E+01 5.77E-01 0.000 0.1826 0.9000 0.9000   1.19  1  1  4.1E-02  4 :   1.20E+01 2.97E-03 0.000 0.0051 0.9990 0.9990   1.01  1  1  iter seconds digits       c*x               b*y  4      0.6  15.8  1.2000000000e+01  1.2000000000e+01|Ax-b| =   8.8e-16, [Ay-c]_+ =   8.6E-20, |x|=  2.2e+00, |y|=  3.0e+00Detailed timing (sec)   Pre          IPM          Post2.929E+00    1.109E+00    1.830E-01    Max-norms: ||b||=4, ||c|| = 6,Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.80888.x =   (1,1)       1.0000   (5,1)       2.0000y =   -0.0000    3.0000info =          iter: 4    feasratio: 1         pinf: 0         dinf: 0       numerr: 0       timing: [2.9290 1.1090 0.1830]      wallsec: 4.2210       cpusec: 1.1232

参考:
SeDuMi 安装与测试:http://blog.sina.com.cn/s/blog_6920072701012efx.html

1 0
原创粉丝点击