Specify matrix variables in LMI problem
X = lmivar(type,struct) [X,n,sX] = lmivar(type,struct)
lmivar
defines a new matrix
variable X in the LMI system currently described.
The optional output X
is an identifier that can
be used for subsequent reference to this new variable.
The first argument type
selects among available
types of variables and the second argument struct
gives
further information on the structure of X depending
on its type. Available variable types include:
type=1: Symmetric matrices with a block-diagonal structure. Each diagonal block is either full (arbitrary symmetric matrix), scalar (a multiple of the identity matrix), or identically zero.
If X has R diagonal blocks, struct
is
an R-by-2 matrix where
struct(r,1)
is the size of the r-th
block
struct(r,2)
is the type of the r-th
block (1 for full, 0 for scalar, –1 for zero block).
type=2: Full m-by-n rectangular
matrix. Set struct = [m,n]
in this case.
type=3: Other structures. With Type 3, each entry of X is specified as zero or ±x where xn is the n-th decision variable.
Accordingly, struct
is a matrix of the same
dimensions as X such that
struct(i,j)=0
if X(i,
j) is a hard zero
struct(i,j)=n
if X(i,
j) = xn
struct(i,j)=–n
if X(i,
j) = –xn
Sophisticated matrix variable structures can be defined with
Type 3. To specify a variable X of Type 3, first
identify how many free independent entries are
involved in X. These constitute the set of decision
variables associated with X. If the problem already
involves n decision variables, label the new free
variables as xn+1,
. . ., xn+p. The structure
of X is then defined in terms of xn+1,
. . ., xn+p as indicated
above. To help specify matrix variables of Type 3, lmivar
optionally
returns two extra outputs: (1) the total number n of scalar decision
variables used so far and (2) a matrix sX
showing
the entry-wise dependence of X on the decision
variables x1, . . ., xn.