SeDuMi教程(1)

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版本,

version
ans =
‘9.7.0.1190202 (R2019b)’
SeDuMi教程(1)_第1张图片

命令行输入>>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
>> 

你可能感兴趣的:(SeDuMi)