sos_pds.m

 パラメータ依存線形システム
  
とパラメータの変動範囲
  
が与えられたとき,この変動範囲内で連立 PDLMI
  
を満足する が存在するかどうかを調べる,ロバスト安定解析問題を考える.
 この問題を二乗和 (SOS) を利用して解くには,連立 PDLMI を
  
すなわち,
  
と書き換え, が行列二乗和多項式となるような,行列二乗和多項式 が存在するかどうかを調べればよい.ただし, は微小な正数である.
 行列二乗和多項式 を生成する手順は以下のとおりである.行列二乗和多項式は
  
という形式である( は PDLMI の左辺のサイズ, はクロネッカー積).まず,
  zk = mololist(th,1)
とすることで,
  
を生成する(mololist の入力引数 1 を 2 に変更すれば,
  
となる).つぎに,
  Sk = qf_polynominal(zk,n)
とすることで,
  
を決定変数とした を生成する.

実行結果 (alpha = 1.0)

>> sos_pds

-------------------------------------------------------------------------
YALMIP SOS module started...
-------------------------------------------------------------------------
Detected 198 parametric variables and 2 independent variables.
Detected 0 linear inequalities, 0 equality constraints and 0 LMIs.
Using kernel representation (options.sos.model=1).
Initially 3 monomials in R^2
Newton polytope (0 LPs).........Keeping 3 monomials (0.0468sec)
Finding symmetries..............Found no symmetries (0.0312sec)
Initially 3 monomials in R^2
Newton polytope (0 LPs).........Keeping 3 monomials (0sec)
Finding symmetries..............Found no symmetries (0sec)
Initially 3 monomials in R^2
Newton polytope (0 LPs).........Keeping 3 monomials (0sec)
Finding symmetries..............Found no symmetries (0sec)
Initially 3 monomials in R^2
Newton polytope (0 LPs).........Keeping 3 monomials (0sec)
Finding symmetries..............Found no symmetries (0sec)
Initially 6 monomials in R^2
Newton polytope (0 LPs).........Keeping 6 monomials (0sec)
Finding symmetries..............Found no symmetries (0sec)
Initially 6 monomials in R^2
Newton polytope (0 LPs).........Keeping 6 monomials (0sec)
Finding symmetries..............Found no symmetries (0sec)
 
SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, theta = 0.250, beta = 0.500
Put 198 free variables in a quadratic cone
eqs m = 324, order n = 75, dim = 1172, blocks = 8
nnz(A) = 1194 + 0, nnz(ADA) = 104976, nnz(L) = 52650
 it :     b*y       gap    delta  rate   t/tP*  t/tD*   feas cg cg  prec
  0 :            4.53E-001 0.000
  1 :  6.98E-007 2.61E-001 0.000 0.5756 0.9000 0.9000   1.00  1  1  2.8E+000
  2 :  1.33E-006 1.14E-001 0.000 0.4379 0.9000 0.9000   1.00  1  1  1.2E+000
  3 :  1.47E-006 4.17E-002 0.000 0.3650 0.9000 0.9000   1.00  1  1  4.4E-001
  4 :  9.09E-007 1.50E-002 0.000 0.3601 0.9000 0.9000   1.00  1  1  1.6E-001
  5 :  2.75E-007 4.34E-003 0.000 0.2892 0.9000 0.9000   1.00  1  1  4.6E-002
  6 :  1.65E-008 2.32E-004 0.000 0.0534 0.9900 0.9900   1.00  1  1  2.5E-003
  7 :  5.24E-012 8.19E-008 0.000 0.0004 0.9999 0.9999   1.00  1  1  8.7E-007
  8 :  1.11E-015 2.04E-011 0.000 0.0002 0.9999 0.9999   1.00  1  1  2.0E-010

iter seconds digits       c*x               b*y
  8      1.0   5.0  0.0000000000e+000  1.1140967750e-015
|Ax-b| =  3.3e-010, [Ay-c]_+ =  2.9E-011, |x|= 3.1e+001, |y|= 1.6e-008

Detailed timing (sec)
   Pre          IPM          Post
2.990E-001    8.450E-001    8.500E-002    
Max-norms: ||b||=3.364932e-007, ||c|| = 0,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 11.2221.
sol = 
    yalmiptime: 2.7980
    solvertime: 1.3120
          info: 'No problems detected (SeDuMi-1.3)'
       problem: 0
        dimacs: [3.3433e-010 0 0 3.6309e-011 -1.1141e-015 -1.1125e-015]
monos = 
    [9x3 sdpvar]    [9x3 sdpvar]    [9x3 sdpvar]    [9x3 sdpvar]    [18x3 sdpvar]    [18x3 sdpvar]
Q = 
    [9x9 double]    [9x9 double]    [9x9 double]    [9x9 double]    [18x18 double]    [18x18 double]

>> min(eig(Q{1}))  %%% Qa1 の最小固有値
ans =
    0.1333

>> min(eig(Q{2}))  %%% Qa2 の最小固有値
ans =
    0.1305

>> min(eig(Q{3}))  %%% Qb1 の最小固有値
ans =
    0.1239

>> min(eig(Q{4}))  %%% Qb2 の最小固有値
ans =
    0.0979

>> min(eig(Q{5}))  %%% Qa0 の最小固有値
ans =
    0.0613

>> min(eig(Q{6}))  %%% Qb0 の最小固有値
ans =
    0.0478
    
前のページ (ichihara.zip) に戻る