一、软件安装问题
Yalmip是一个Matlab工具包,在Yalmip官网下载,解压至Matlab Toolbox 工具箱中,然后设置好Path路径,就可以使用了。具体安装过程请参考这位博主的博客https://blog.csdn.net/robert_chen1988/article/details/44464369
注:安装时一定要注意版本匹配问题,否则软件运用过程中会出现很多问题。
二、求解案列
案列比较简单,求f(x)最小值的问题:
三、求解代码
%%1.定义变量
x = sdpvar(10, 1);
%%2.定义约束
Constraints = [sum(x) <= 10, x(1)==0, 0.5 <= x(2) <= 1.5];
for i = 1:7
Constraints = [Constraints, x(i) + x(i+1) <= x(i+2) + x(i+3)];
end
%%3.定义目标函数
Objective = x' * x + norm(x,1); %norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数,向量1范数=xi求和
%%4.为YALMIP以及求解器设置一些选项
options = sdpsettings('verbose', 1, 'solver', 'quadprog', 'quadprog.maxiter', 100)
%verbose:展示求解细节的设置。0表示完全不显示,1表示适度显示,2则是完全显示。
%solver:用于告诉yalmip将调用的求解器,yalmip允许调用的求解器在solver里查看。如果没有对其设置,yalmip将自动调用一个合适的求解器。
%%5.求解问题
sol = optimize(Constraints, Objective, options);
%%6.分析错误标志
if sol.problem == 0
% 说明计算成功,此时展示得到的结果
solution = value(x)
else %结束语句
display('错了亲');
sol.info
yalmiperror(sol.problem)
end