Documentation |
Describe how entries of matrix variable X relate to decision variables
decinfo(lmisys) decX = decinfo(lmisys,X)
The function decinfo expresses the entries of a matrix variable X in terms of the decision variables x_{1}, . . ., x_{N}. Recall that the decision variables are the free scalar variables of the problem, or equivalently, the free entries of all matrix variables described in lmisys. Each entry of X is either a hard zero, some decision variable x_{n}, or its opposite –x_{n}.
If X is the identifier of X supplied by lmivar, the command
decX = decinfo(lmisys,X)
returns an integer matrix decX of the same dimensions as X whose (i, j) entry is
0 if X(i, j) is a hard zero
n if X(i, j) = x_{n} (the n-th decision variable)
–n if X(i, j) = –x_{n}
decX clarifies the structure of X as well as its entry-wise dependence on x_{1}, . . ., x_{N}. This is useful to specify matrix variables with atypical structures (see lmivar).
decinfo can also be used in interactive mode by invoking it with a single argument. It then prompts the user for a matrix variable and displays in return the decision variable content of this variable.
Consider an LMI with two matrix variables X and Y with structure:
X = x I_{3} with x scalar
Y rectangular of size 2-by-1
If these variables are defined by
setlmis([]) X = lmivar(1,[3 0]) Y = lmivar(2,[2 1]) : : lmis = getlmis
the decision variables in X and Y are given by
dX = decinfo(lmis,X) dX = 1 0 0 0 1 0 0 0 1 dY = decinfo(lmis,Y) dY = 2 3
This indicates a total of three decision variables x_{1}, x_{2}, x_{3} that are related to the entries of X and Y by
$$X=\left(\begin{array}{ccc}{x}_{1}& 0& 0\\ 0& {x}_{1}& 0\\ 0& 0& {x}_{1}\end{array}\right),Y=\left(\begin{array}{c}{x}_{2}\\ x3\end{array}\right)$$
Note that the number of decision variables corresponds to the number of free entries in X and Y when taking structure into account.
Suppose that the matrix variable X is symmetric block diagonal with one 2-by-2 full block and one 2-by-2 scalar block, and is declared by
setlmis([]) X = lmivar(1,[2 1;2 0]) : lmis = getlmis
The decision variable distribution in X can be visualized interactively as follows:
decinfo(lmis) There are 4 decision variables labeled x1 to x4 in this problem. Matrix variable Xk of interest (enter k between 1 and 1, or 0 to quit): ?> 1 The decision variables involved in X1 are among {-x1,...,x4}. Their entry-wise distribution in X1 is as follows (0,j>0,-j<0 stand for 0,xj,-xj, respectively): X1 : 1 2 0 0 2 3 0 0 0 0 4 0 0 0 0 4 ********* Matrix variable Xk of interest (enter k between 1 and 1, or 0 to quit): ?> 0