在matlab中编写完LMI后继续对LMI求解
- 在完成lmivar()、lmiterm()后,获得LMI的函数的内部描述
lmis = getlmis;
对于LMI Lab, 其中有三种求解器(solver): feasp、mincx和gevp。
[tmin,xfeas] = feasp(lmisys,options,target):在约束条件下,求解LMI(feasibility problem),具体的参数可以查看help浏览器。
下面是一个具体的算例:
求矩阵P>I,在上面三个约束条件下,
setlmis([])
p = lmivar(1,[2 1]);
A1 = [-1 2;1 -3];
A2 = [-0.8 1.5; 1.3 -2.7];
A3 = [-1.4 0.9;0.7 -2.0];
lmiterm([1 1 1 p],1,A1,'s'); % LMI #1 第一个矩阵不等式 左
lmiterm([2 1 1 p],1,A2,'s'); % LMI #2 第二个矩阵不等式 左
lmiterm([3 1 1 p],1,A3,'s'); % LMI #3 第三个矩阵不等式 左
lmiterm([-4 1 1 p],1,1); % LMI #4: P 第四个矩阵不等式 右
lmiterm([4 1 1 0],1); % LMI #4: I 第四个矩阵不等式 左
lmis = getlmis;
[tmin,xfeas] = feasp(lmis);
下面是运行结果
tmin = -3.1363 表明问题有解
使用dec2mat从xfeas中导出矩阵变量的可行值。
P = dec2mat(lmis,xfeas,p)
-
[copt,xopt] = mincx(lmisys,c,options,xinit,target)在LMI约束下最小化线性目标
minimize cTx subject to NTL(x)N≤MTR(x)M -
[lopt,xopt] = gevp(lmisys,nlfc,options,linit,xinit,target) LMI约束下的广义特征值最小化