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
唯大英雄能本色,是真名士自风流!
浙公网安备 33010602011771号