# 5 Design Overview¶

## 5.1 Modeling¶

Optimization Toolbox for MATLAB is an interface for specifying optimization problems directly in matrix form. It means that an optimization problem such as:

or

is specified by describing the matrices \(A\), \(F\), vectors \(b,c,g\) and a list of cones \(\mathcal{K}\) directly.

The main characteristics of this interface are:

**Simplicity**: once the problem data is assembled in matrix form, it is straightforward to input it into the optimizer.**Exploiting sparsity**: data is entered in sparse format, enabling huge, sparse problems to be defined and solved efficiently.**Efficiency**: the API incurs almost no overhead between the user’s representation of the problem and**MOSEK**’s internal one.

Optimization Toolbox for MATLAB does not aid with modeling. It is the user’s responsibility to express the problem in **MOSEK**’s standard form, introducing, if necessary, auxiliary variables and constraints. See Sec. 12 (Problem Formulation and Solutions) for the precise formulations of problems **MOSEK** solves.

## 5.2 “Hello World!” in **MOSEK**¶

Here we present the most basic workflow pattern when using Optimization Toolbox for MATLAB.

Create a `prob`

structure

Optimization problems using Optimization Toolbox for MATLAB are specified using a `prob`

structure that describes the numerical data of the problem. In most cases it consists of matrices of floating-point numbers.

Retrieving the solutions

When the problem is set up, the optimizer is invoked with the call to `mosekopt`

. The call will return a response and a structure containing the solution to all variables. See further details in Sec. 7 (Solver Interaction Tutorials).

We refer also to Sec. 7 (Solver Interaction Tutorials) for information about more advanced mechanisms of interacting with the solver.

Source code example

Below is the most basic code sample that defines and solves a trivial optimization problem

For simplicity the example does not contain any error or status checks.

```
%%
% Copyright: Copyright (c) MOSEK ApS, Denmark. All rights reserved.
%
% File: helloworld.m
%
% The most basic example of how to get started with MOSEK.
prob.a = sparse(0,1) % 0 linear constraints, 1 variable
prob.c = [1.0]' % Only objective coefficient
prob.blx= [2.0]' % Lower bound(s) on variable(s)
prob.bux= [3.0]' % Upper bound(s) on variable(s)
% Optimize
[r, res] = mosekopt('minimize', prob);
% Print answer
res.sol.itr.xx
```