⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bigsostest.m

📁 国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题
💻 M
字号:


sdpvar x s t
F = set(sos(1+x+(1-s)*x^2-s))+set(sos(2+2*x+x^4-8*t));

ops = sdpsettings('solver','sedumi','sos.cong',0,'sos.solvedual',0);
solvesos(F+set(s>0.49)+set(s+t<0.55),-s-t,ops,[s t])


% Disjoint variables
x = sdpvar(1,1);
y = sdpvar(1,1);
t = sdpvar(1,1);
F = set(sos(1+y^2-t))+set(sos(1+x^2-t));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),t)
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',0,'solver','sedumi'),t)

% Disjoint variables and parameters
x = sdpvar(1,1);
y = sdpvar(1,1);
t = sdpvar(1,1);
s = sdpvar(1,1);
F = set(sos(1+y^2-t))+set(sos(1+x^2-s));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t)
double([s t])
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',0,'solver','sedumi'),s+t)
double([s t])

% Disjoint variables and parameters
x = sdpvar(1,1);
y = sdpvar(1,1);
t = sdpvar(1,1);
s = sdpvar(1,1);
F = set(sos(x^4+y^2-t))+set(sos(1+x^2-s)) + set(t>0);
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t)
double([s t])


solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',0,'solver','sedumi'),s+t)
double([s t])

% Disjoint variables and parameters
x = sdpvar(1,1);
y = sdpvar(1,1);
t = sdpvar(1,1);
s = sdpvar(1,1);
F = set(sos(t*x^4+s*y^2-t))+set(sos(1+x^2-s));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t)
double([s t])
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',0,'solver','sedumi'),s+t)
double([s t])

% Disjoint variables and parameters
x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
t = sdpvar(1,1);
s = sdpvar(1,1);
F = set(sos(t*x^4+(s+pi)*y^2-t+z^6))+set(sos(x^2-s))+set(s<-pi);
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t)
double([s t])
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',0,'solver','sedumi'),s+t)
double([s t])


% Disjoint variables and parameters
x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
t = sdpvar(1,1);
s = sdpvar(1,1);
w = sdpvar(1,1);
F = set(sos(x^4+z^6))+set(sos(x^2+(t+s+w-6)*x*z)) + set([w;s]>0)+set(t>3);
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t+w)
double([s t w])
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.model',0,'solver','sedumi'),s+t+w)
double([s t w])

F = set(sos(x^4+z^6))+set(sos(x^2+(t+s+w-6)*x*z)) + set([w;s]>0)+set(t>3);
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.model',1,'solver','sedumi'),s+t+w)
double([s t w])
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.model',0,'solver','sedumi'),s+t+w)
double([s t w])

% Automatic detection of non-negative cones
sdpvar x s t u
F = set(sos(1+x+16*x^2+1));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',0,'solver','sedumi'))



% Automatic detection of non-negative cones
sdpvar x s t u
F = set(sos(1+x+16*s*x^2+13*u+t))+set(sos(2+2*x+(-8+u)*x^4+5-pi*t))+set(t>0)+set(t+u>0);
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t+u)
double([s t u])

% Failure before since no free
sdpvar x s t u
F = set(sos(x+(t-100)*x^2+4*s-2+u))+set(s>0) + set(s<3) + set(u<4) + set(u>3) + set(t<102)+set(t>101.8)+set(t>0);
solvesos(F,-s-t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t)
double([s t])

% Failure before since no free
sdpvar x s t u
F = set(sos(x+(t-100)*x^2+4*s-2+u))+set(s>0) + set(s<3) + set(u<4) + set(u>3) + set(t<102)+set(t>101.8)+set(t>0);
solvesos(F,-s-t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t)
double([s t])

% Mixed constraint, all free
sdpvar x s t
F = set(sos(x+(t-100)*x^2+4*s-2))+set(s>1) + set(s<3) + set(t<102)+set(t>101.8)+set(2*s+t>104);
solvesos(F,s+t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t)
double([s t])

% Mixed constraint, one free
sdpvar x s t
F = set(sos(x+(t-100)*x^2+4*s-2))+set(s>1) + set(s>0) + set(s<3) + set(t<102)+set(t>101.8)+set(2*s+t>104);
solvesos(F,s+t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t)
double([s t])


% Mixed constraint, all free
sdpvar x s t
F = set(sos(x+(t-100)*x^2+4*s-2))+set(s>1) + set(t>0) + set(s<3) + set(t<102)+set(t>101.8)+set(2*s+t>104);
solvesos(F,s+t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t)
double([s t])



% Mixed constraint, all free
sdpvar x s t
F = set(sos(x+(t-100)*x^2+4*s-2))+set(1.001*s>1) + set(1.001*t>1) + set(s<3) + set(t<102)+set(1.01*t>101.8)+set(2*s+t>104);
solvesos(F,s+t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t)
double([s t])


% Mixed constraint, negative variables
sdpvar x s u t
F = set(sos(x+(t-100)*x^2+pi*s+6+u)) + set(t>1) + set(-12.34567<s<-1) + set(t<102)+set(t>101.8);
solvesos(F,s+t+u,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t+u)
double([s t u])

% Mixed constraint, all free
sdpvar x s t u
F = set(sos(x+t*x^2+s+u)) + set(t>1.2) + set(s+t==4) + set(u<0.01) + set(u+t==0.1);
solvesos(F,s+t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t+u)
double([s t u])


% Mixed constraint, all constrained
sdpvar x s t u
F = set(sos(x+t*x^2+s+u)) + +set(u>0) + set(t==9) + set(s+t==11) + set(u==0.01);
solvesos(F,s+t,sdpsettings('sos.traceobj',0,'sos.solvedual',1),s+t+u)
double([s t u])

% 
% 
% % Failure : t is not used
sdpvar x s t u
F = set(sos(1+x+s*x^2))+set(sos(2+2*s*x+u*x^4));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+t+u)
double([s t u])





% Automatic detection of diagional constraints
sdpvar x s t u
F = set(sos(s+x+x^2))+set(sos(s+2*s*x+u*x^4));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),s+u)
double([s t u])



% Automatic detection of diagional constraints
sdpvar x s t u
F = set(sos(1+x^2+x^4));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'))
double([s t u])


% Automatic detection of diagional constraints
sdpvar x y s t u
F = set(sos(1+x^2+x^4+x^2*y^2+y^4))+set(sos((7-t)*y^8+y^12));
solvesos(F,[],sdpsettings('sos.traceobj',1,'sos.solvedual',1,'solver','sedumi'),t)
double([s t u])


x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
p = x^4*y^2+x^2*y^4+z^6-3*x*x*y*y*z*z;
solvesos(set(sos(p)))
solvesos(set(sos(p)),[],sdpsettings('sos.model',2))

% PP, p 41 
x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
p = 2*x^4+2*x^3*y-x^2*y^2+5*y^4;
solvesos(set(sos(p)))
solvesos(set(sos(p)),[],sdpsettings('sos.model',2))

% PP, p 42
x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
p = x^4-(2*y*z+1)*x^2+(y^2*z^2+2*y*z+2)
solvesos(set(sos(p)))
solvesos(set(sos(p)),[],sdpsettings('sos.model',2))


% PP, p 43
x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
p = x^4+x^2+z^6-3*x*x*z*z;
solvesos(set(sos(p)))
solvesos(set(sos(p)),[],sdpsettings('sos.model',2))

x = sdpvar(1,1);
y = sdpvar(1,1);
z = sdpvar(1,1);
p = x^2+y^2+x^4+z^6+(x*x-y^3+z*z*y)^2
solvesos(set(sos(p)))
solvesos(set(sos(p)),[],sdpsettings('sos.model',2))


% robinson
x = sdpvar(1,1);
y = sdpvar(1,1);
p = x^6+y^6-x^4*y^2-y^4*x^2-x^4-y^4-x^2-y^2+3*x^2*y^2+10
solvesos(set(sos(p)))
solvesos(set(sos(p)),[],sdpsettings('sos.model',2))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -