# LMI Solvers

Feasibility, minimization of linear objectives, eigenvalue minimization

## Functions

 `getlmis` Internal description of LMI system `lmiedit` Specify or display systems of LMIs as MATLAB expressions `lmiterm` Specify term content of LMIs `lmivar` Specify matrix variables in LMI problem `newlmi` Attach identifying tag to LMIs `setlmis` Initialize description of LMI system `dellmi` Remove LMI from system of LMIs `delmvar` Remove one matrix variable from LMI problem `setmvar` Instantiate matrix variable and evaluate all LMI terms involving this matrix variable
 `dec2mat` Given values of decision variables, derive corresponding values of matrix variables `decinfo` Describe how entries of matrix variable X relate to decision variables `decnbr` Total number of decision variables in system of LMIs `lmiinfo` Information about variables and term content of LMIs `lminbr` Return number of LMIs in LMI system `mat2dec` Extract vector of decision variables from matrix variable values `matnbr` Number of matrix variables in system of LMIs
 `defcx` Help specify cTx objectives for mincx solver `feasp` Compute solution to given system of LMIs `gevp` Generalized eigenvalue minimization under LMI constraints `mincx` Minimize linear objective under LMI constraints
 `evallmi` Given particular instance of decision variables, evaluate all variable terms in system of LMIs `showlmi` Return left and right sides of LMI after evaluation of all variable terms

## Examples and How To

Specify LMI System at the Command Line

This example shows how to specify LMI systems at the command line using the LMI Lab tools.

Specify LMIs with the LMI Editor GUI

Use the LMI Editor to specify LMI systems interactively.

Minimize Linear Objectives under LMI Constraints

Solve an optimization problem using the `mincx` solver.

Modify a System of LMIs

Once specified, you can modify a system of LMIs by deleting an LMI, removing a variable, or fixing a variable’s value.

## Concepts

Linear Matrix Inequalities

Linear Matrix Inequalities (LMIs) and LMI techniques are powerful design tools in areas ranging from control engineering to system identification and structural design.

LMIs and LMI Problems

A linear matrix inequality is a convex constraint.

LMI Applications

Applications of LMIs include robust stability, optimal LQG control, estimation, and many others.

Tools for Specifying and Solving LMIs

The LMI Lab blends tools for the specification and manipulation of LMIs with powerful LMI solvers for three generic LMI problems.

Specifying a System of LMIs

To specify a system of LMIs, declare the dimensions and structure of each matrix variable, and then describe the terms of each LMI.

How lmivar and lmiterm Manage LMI Representation

The LMI tools create global variables that are not visible in the workspace.

Querying the LMI System Description

Extract and display relevant information from the software’s representation of an LMI system.

LMI Solvers

There is a solver for each of the three generic optimization problems.

Conversion Between Decision and Matrix Variables

LMI solvers optimize a vector of the free scalar entries of the matrix variables. These entries are called the decision variables.

Validating Results

Use `evallmi` and `showlmi` to analyze and validate the results of an LMI optimization. 