SeDuMi是self dual minimization的简称,本教程进行sedumi的安装,使用教学。
sedumi有lehigh大学维护,可以下载压缩包:sedumi
我们拿安装在matlab中的SeDuMi 1.3为例讲一下,matlab版本兼容到2019b,理论上不会限制版本。
首先下载解压包SeDuMi_1_3到toolbox保存目录下:H:\Matlab2019b\toolbox,选择你自己的保存目录。
完成后,打开matlab,打开对应文件夹,打开install_sedumi.m,注意,使用命令version看下你的matlab版本,
命令行输入>>install_sedumi,自动完成安装
接下来尝试一个示例程序:
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)
结果如下:
>> version
ans =
'9.7.0.1190202 (R2019b)'
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.500
eqs m = 2, order n = 6, dim = 6, blocks = 1
nnz(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.3 Inf 1.2000000000e+01 1.2000000000e+01
|Ax-b| = 0.0e+00, [Ay-c]_+ = 0.0E+00, |x|= 2.2e+00, |y|= 3.0e+00
Detailed timing (sec)
Pre IPM Post
1.147E+00 4.300E-01 2.900E-02
Max-norms: ||b||=4, ||c|| = 6,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.80888.
x =
(1,1) 1
(5,1) 2
y =
0
3
info =
struct with fields:
iter: 4
feasratio: 1
pinf: 0
dinf: 0
numerr: 0
timing: [1.1470 0.4300 0.0290]
wallsec: 1.6060
cpusec: 0.7031
>>