我们要实现的就利用LMI进行求解。
首先我们要用setlmis([])命令初始化一个LMI系统。
接下来,我们就要设定矩阵变量了。采用函数为lmivar
语法:X = lmivar(type,struct)
type=1: 定义块对角的对称矩阵。每一个对角块或者是全矩阵,标量,或者是零阵。
如果X有R个对角块,那么后面这个struct就应该是一个Rx2阶的的矩阵,在此矩阵中,struct(r,1)表示第r个块的大小,struct(r,2) 表示第r个块的类型<1--全矩阵,0--标量,-1--零阵)。
比如一个矩阵有两个对角块,其中一个是2x2的全对称矩阵,第二个是1x1的一个标量,那么该矩阵变量应该表示为X = lmivar(1, [2 1; 1 0]) 。
type=2: mxn阶的矩阵,只需要写作struct = [m,n]即可。
type=3: 其它类型。针对类型3,X的每一个条目(each entry of X)被定义为0或者是+(-)xn,此处xn代表了第n个决策变量。
那么针对我们的例子,我们如此定义变量:
% Q is a symmetric matrix, has a block size of 2 and this block is symmetric
Q = lmivar(1, [2 1]);
% S1 a symmeric matrix, size 2
S1 = lmivar(1, [2 1]);
% S2 is 1 by 1 matrix
S2 = lmivar(1, [1