# What is Yalmip?

## What is Yalmip?

YALMIP is a free MATLAB toolbox for rapid prototyping of optimization problems. The package initially aimed at the control community and focused on semidefinite programming, but the latest release extends this scope significantly.

**What is the standard form of SDP?**

Semidefinite programming (SDP) is a subfield of convex optimization concerned with the optimization of a linear objective function (a user-specified function that the user wants to minimize or maximize) over the intersection of the cone of positive semidefinite matrices with an affine space, i.e., a spectrahedron.

**What is Sdpvar?**

sdpvar is used to define YALMIPs symbolic decision variables.

### How can I download Yalmip?

YALMIP is entirely based on m-code, and is thus easy to install. The official version can be found at https://github.com/yalmip/yalmip/archive/master.zip.

**How do I know if Yalmip is installed?**

To test your installation, run the command yalmiptest. For further examples and tests, run code from this manual!

**Are nonnegative matrices positive definite?**

While such matrices are commonly found, the term is only occasionally used due to the possible confusion with positive-definite matrices, which are different. A matrix which is both non-negative and is positive semidefinite is called a doubly non-negative matrix.

## Is a nonnegative matrix positive semidefinite?

A matrix which is both non-negative and is positive semidefinite is called a doubly non-negative matrix. A rectangular non-negative matrix can be approximated by a decomposition with two other non-negative matrices via non-negative matrix factorization.

**What is the description of nonnegative?**

Definition of nonnegative : not negative: such as. a : being either positive or zero. b : taking on nonnegative values a nonnegative function.

**Is the zero matrix positive semidefinite?**

The eigenvalues or the zero matrix are all 0 so, yes, the zero matrix is positive semi-definite.

### How does YALMIP know which solvers to use?

Every time optimize is called, YALMIP checks for available solvers. This can take a while on some systems (some slow networks), so it is possible to avoid doing this check every call. Set cachesolvers to 1, and YALMIP will remember the solvers (using a persistent variable) found in the first call to optimize.

**What are the constraints of YALMIP?**

Constraints. Strict inequalities cannot be used (YALMIP will warn you) as they have no meaning when doing optimization with numerical solvers, as these solvers always work with numerical tolerances anyway. Hence, if you need the upper bound to be strict, you have to select a margin. Note that selection of this margin is a tricky issues.

**How to alter options without getting a long line in YALMIP?**

A convenient way to alter many options without getting a long line is to send an existing options structure as the first input argument. In the code above, we told YALMIP to use the solver Mosek. The possible values to give to the field solver can be found in the solver documentation.

## Is it possible to use multi-dimensional variables in YALMIP?

In some situations, coding is simplified with a multi-dimensional variable. This is supported in YALMIP with two different constructs, cell arrays and multi-dimensional sdpvar objects. The cell array can now be used as usual in MATLAB.