CVX(matlab) syntax note === ###### tags: `Math` `matlab` * cvx relies on external solver to solve problems. * ex: Mosek, Gurobi, SDTP3, SeDuMi * note: Mosek can solve MISOC-problem, while Gurobi cannot.(in 2, 3 years ago.) * CVX's DCP ruleset is **sufficient** to check if a problem is convex or not, but **not necessary**. ## cvx variables * `cvx_optval`: the optimal solution of the objective function, should be a number. * `cvx_status`: the solver status. * ex: Solved, Unbouned, Infeasible.... * note: Infeasible appears very often when the DCP rules is violated. * `cvx_where`: the path of the cvx directory. * `cvx_begin ... cvx_end`: the problem should be declared in this block. * `cvx_begin quiet`: ask cvx to be quiet. * `cvx_begin sdp`: tell cvx the following problem is a semidefinite problem. ## quick start examples ### 1. LP problem $$ \max\ c^Tx \\ \text{s.t.}\ Ax<=b \\ x >= 0 $$ - in cvx: - ```= cvx_begin variable x(n) maximize (c’ * x) subject to A * x <= b x >= 0 cvx_end ``` - w/o CVX: - `linprog(c, A, b, [], [], zeros(n,1), zeros(n,1)+Inf)`