Positive Semi-Definite Matrices

LINGO's @POSD function allows one to specify that a matrix of decision variables must be positive semi-definite. The matrix may be either lower triangular, upper triangular or square. In the case of square matrices, @POSD will force the matrix to be symmetric. Alternatively, one can think of this as allowing the user to formulate in terms of decision variables that are matrices rather than just scalars, and where the non-negativity of a scalar variable is replaced by the positive definiteness of the matrix of decision variables. It turns out that the barrier algorithms that are used for second-order cone problems can be generalized to solving models with semi-definite matrix decision variables.

The syntax for @POSD is:

@POSD( matrix);

where matrix refers to a two-dimensional matrix (i.e., attribute on a two-dimensional set)  that is either lower triangular, upper triangular or square. An example of the @POSD function follows.

Note: The @POSD function requires that your LINGO installation have both barrier and conic solver licenses. Attempting to solve a model containing @POSD without these licenses will trigger an error message.