matlab使用yalmip工具箱

使用yalmip工具箱可以像书写数学模型那样输入规划问题的约束和目标函数,非常方便。
以下为在Matlab R2018a下添加yalmip并简单使用的例子

一、下载解压

下载地址:https://yalmip.github.io/download/

matlab使用yalmip工具箱_第1张图片
我下载后解压在D盘

二、添加路径

注意!!!路径中最好没有中文
选择“添加并包含子文件夹”,将 yalmip 的路径添加进去
matlab使用yalmip工具箱_第2张图片
在命令行中输入which sdpvarwhich solvesdpwhich intvar等命令,显示路径则表明添加成功
matlab使用yalmip工具箱_第3张图片

三、建模过程

1.定义变量
sqdvar() 创建实数型决策变量;
intvar() 创建整数型决策变量;
binva() 创建0/1型决策变量;
在创建n*n的决策变量时,yalmip默认是对称方阵,所以要创建非对称方针时,需要这样写:xxxvar(n,n,'full').
2.设定目标函数 :f=目标函数.
3.设定限定条件:F=set(限定条件).
4.多个限定条件用加号相连F=set(限定条件)+set(限定条件1)+set(限定条件2)…….事实上,现在的set()已经把不使用了,改为使用()或[]为限定条件的框.
5.求解:solvesdp(F,f).这里解得是F条件下目标函数f的最小值,如果一开始要求最大值那么需要f前面加个负号 solvesdp(F,-f).
6.求解之后查看数值 :double(变量名).

四、 整数规划的例子

matlab使用yalmip工具箱_第4张图片
这里求最大值,所以f前要加负号

x=intvar(1,3);
f=[17,72,35]*x';
F=(0<= x)+([10,41,20]*x'<=50);
solvesdp(F,-f);
disp(double(x));
disp(double(f));

结果就是x取值1,0,2时,得到f最大值为87
matlab使用yalmip工具箱_第5张图片

更多深入讲解可以浏览官方教程:https://yalmip.github.io/tutorials/

你可能感兴趣的:(一些基础分享)