yalmip求解步骤

yalmip求解步骤

问题

\[Max\quad Z=\frac{x_1+2x_2}{2x_1+x_2} \]

subject to

\[\begin{cases} x_1+x_2 \geq 2\\ x_2-x_1 \leq 1\\ x_1 \leq 1 \end{cases}\]

yalmip求解语法(兼容matlab)

  • 定义决策变量
x=sdpvar(1,2);//sdpvar为实数决策变量
  • 定义目标函数
Z=-((x(1)+2*x(2))/(2*x(1)+x(2)));//默认是求最小值,添加-表示求最大值
  • 定义约束条件
c=[x(1)+x(2)>=2,x(2)-x(1)<=1,x(1)<=1];//约束以数组表示,中间以逗号或者空格隔开不同的约束表达式
  • 设置相关参数如:求解器
opt=sdpsetting('verbose',0,'solver','cplex');//调用“cpex”求解器
  • 开始求解
result=optimize(c,Z,opt);
  • 显示求解结果
if result.problem==0
    value(x) //不能代;号
    -value(result);//反转回来,不能代;
else
    disp('求解出错');

end

posted on 2020-02-20 11:33  小毅哥哥Bob  阅读(1302)  评论(0)    收藏  举报

导航