%YALMIPDEMO Brief tutorial and examples. % % See also YALMIPTEST % Author Johan Löfberg % $Id: yalmipdemo.m,v 1.6 2006/01/17 15:49:08 joloef Exp $ % Check for paths if ~(exist('socpex')==2) disp('You have to set the path to the demo library (...\yalmip\demos\)') return; end i = 1; problems{i}.class = 0; problems{i}.info = 'Getting started, the basics'; problems{i}.call = 'basicsex';i = i+1; problems{i}.class = 1; problems{i}.info = 'Linear and quadratic programming'; problems{i}.call = 'regressex';i = i+1; problems{i}.class = 1; problems{i}.info = 'Second order cone programming'; problems{i}.call = 'socpex';i = i+1; problems{i}.class = 2; problems{i}.info = 'Lyapunov stability (SDP)'; problems{i}.call = 'stabilityex';i = i+1; problems{i}.class = 0; problems{i}.info = 'Model predictive control (LP,QP,SDP)'; problems{i}.call = 'mpcex';i = i+1; problems{i}.class = 2; problems{i}.info = 'Determinant maximization (MAXDET)'; problems{i}.call = 'maxdetex';i = i+1; problems{i}.class = 2; problems{i}.info = 'Decay-rate estimation (SDP)'; problems{i}.call = 'decayex';i = i+1; problems{i}.class = 0; problems{i}.info = 'Mixed integer programming (MILP,MIQP,MICP)'; problems{i}.call = 'milpex';i = i+1; problems{i}.class = 3; problems{i}.info = 'Working with polynomial expressions'; problems{i}.call = 'nonlinex';i = i+1; problems{i}.class = 3; problems{i}.info = 'Working with nonlinear operators'; problems{i}.call = 'nonlinopex';i = i+1; problems{i}.class = 3; problems{i}.info = 'Nonlinear semidefinite programming using PENBMI (BMI)'; problems{i}.call = 'bmiex1';i = i+1; problems{i}.class = 3; problems{i}.info = 'Decay-rate estimation revisited with PENBMI (BMI)'; problems{i}.call = 'decaybmiex';i = i+1; problems{i}.class = 3; problems{i}.info = 'Simultaneous stabilization with PENBMI (BMI)'; problems{i}.call = 'simstabex';i = i+1; problems{i}.class = 4; problems{i}.info = 'Sum-of-squares decompositions'; problems{i}.call = 'sosex';i = i+1; problems{i}.class = 4; problems{i}.info = 'Polynomial programming using moment-relaxations'; problems{i}.call = 'momentex';i = i+1; problems{i}.class = 4; problems{i}.info = 'Global nonlinear programming'; problems{i}.call = 'globalex';i = i+1; problems{i}.class = 5; problems{i}.info = 'Multi-parametric programming'; problems{i}.call = 'mptex';i = i+1; problems{i}.class = 5; problems{i}.info = 'KYP problems (SDP)'; problems{i}.call = 'kypdex';i = i+1; problems{i}.class = 5; problems{i}.info = 'Posynomial geometric programming'; problems{i}.call = 'geometricex';i = i+1; problems{i}.class = 5; problems{i}.info = 'Complex-valued problems'; problems{i}.call = 'complexex';i = i+1; problems{i}.class = 5; problems{i}.info = 'Dual variables'; problems{i}.call = 'dualex';i = i+1; while (1) clc echo off disp(' ') disp(' ') disp(' YALMIP DEMO') disp(' ') oldclass = 0; for i = 1:length(problems) % if problems{i}.class == oldclass % fprintf('\n'); % end fprintf([' %1.2d) ' problems{i}.info '\n'],i); % oldclass = problems{i}.class; end disp(' '); disp(' 0) quit') inp = input('Select demo: '); try if ~isempty(inp) switch(inp) case 0 return otherwise if inp<=length(problems) feval(problems{inp}.call); end end end catch disp(lasterr) pause end end