optimize is the common function for solving optimization problems.

```
diagnostics = optimize(Constraints,Objective,options)
```

A linear program can be solved with the following piece of code

```
x = sdpvar(length(c),1);
F = [A*x<=b];
h = c'*x;
optimize(F,h);
solution = value(x);
```

If we only look for a feasible solution, we can omit the objective function

```
optimize(F);
```

A diagnostic structure is returned which can be used, e.g, to check feasibility as reported by the solver (see yalmiperror for the possible return values)

```
diagnostics = optimize(F);
if diagnostics.problem == 0
disp('Solver thinks it is feasible')
elseif diagnostics.problem == 1
disp('Solver thinks it is infeasible')
else
disp('Something else happened')
end
```

Solving the feasibility problem with a particular solver, e.g. QUADPROG, can be done by creating an options structure with sdpsettings

```
options = sdpsettings('solver','quadprog')
optimize(F,[],options);
```

Minimization is assumed, hence if we want to maximize, we simply flip the sign of the objective.

```
optimize(F,-h);
```