## Specifying a System of LMIs

The LMI Lab can handle any system of LMIs of the form

NT L(X1, . . . , XK) N < MT R(X1, . . . , XK) M

where

• X1, . . . , XK are matrix variables with some prescribed structure

• The left and right outer factors N and M are given matrices with identical dimensions

• The left and right inner factors L(.) and R(.) are symmetric block matrices with identical block structures, each block being an affine combination of X1, . . . , XK and their transposes.

Note

Throughout this chapter, “left side” refers to what is on the “smaller” side of the inequality, and “right side” to what is on the “larger” side. Accordingly, X is called the right-hand side and 0 the left side of the LMI
0 < X
even when this LMI is written as X > 0.

The specification of an LMI system involves two steps:

1. Declare the dimensions and structure of each matrix variable X1, . . . , XK.

2. Describe the term content of each LMI.

This process creates the so-called internal representation of the LMI system. This computer description of the problem is used by the LMI solvers and in all subsequent manipulations of the LMI system. It is stored as a single vector called `LMISYS`.

There are two ways of generating the internal description of a given LMI system: (1) by a sequence of `lmivar`/`lmiterm` commands that build it incrementally, or (2) via the LMI Editor `lmiedit` where LMIs can be specified directly as symbolic matrix expressions. Though somewhat less flexible and powerful than the command-based description, the LMI Editor is more straightforward to use, hence particularly well-suited for beginners. Thanks to its coding and decoding capabilities, it also constitutes a good tutorial introduction to `lmivar` and `lmiterm`. Accordingly, beginners may elect to skip the subsections on `lmivar` and `lmiterm` and to concentrate on the GUI-based specification of LMIs with `lmiedit`.