MATLAB线性规划 例题+代码模板

非整形线性规划:

题目

在这里插入图片描述

c = [13; 9; 10; 11; 12; 81]; % 目标函数的系数向量 
A = [0.4,1.1,1, 0, 0, 0;
0, 0, 0, 0.5, 1.2, 1.3];  
b = [800;900]; 
Aeq = [1,0,0,1,0,0;0,1,0,0,1,0;0,0,1,0,0,1]; % 没有等式约束 
beq = [400;600;500]; 
lb = zeros(6,1); % 变量下界,所有变量都从0开始 
ub = Inf(6,1); % 变量上界 若上界不存在就为inf无穷大  若为1  就是One
% 定义整数变量的索引 
[x, fval] = linprog(c, A, b, Aeq, beq, lb, ub); 
disp('最优解为:'); 
disp(x); 
disp('最小值为:'); 
disp(fval); 

注意事项

linprog 函数默认是求最小值 如果要求最大值 目标函数矩阵就要加上负号
因为负数最小值 就是绝对值最大值 即为所求最大值
同时约束条件默认 小于等于

整形规划(01规划)

题目:

在这里插入图片描述

解题:

步骤1:(设置变量和初始化)现在设9个变量 x1代表微积分 x2代表线性
代数 x3代表最优化方法 x4代表数据结构 x5代表应用统计 x6代表计算机
模拟 x7代表计算机编程 x8代表预测理论 x9代表数学实验
步骤2:(设置边界-上界与下界)
lb = [0; 0; 0; 0; 0; 0; 0; 0; 0]; % 变量下界
ub = [1; 1; 1; 1; 1; 1; 1; 1; 1]; % 变量上界为空
步骤3:确定决策条件:
x1+x2+x3+x4+x5>=2
X3+x5+x6+x8+x9>=3
x4+x6+x7+x9>=2
x1+x2-2x3 >=0
X7-x4>=0
x1+x2-2
x5>=0
x7-x6>=0
x5-x8>=0
x1+x2-2*x9>=0
步骤4:求目标函数 min(x1+x2+x3+x4+x5+x6+x7+x8+x9)

matlab程序:

c = [1,1,1,1,1,1,1,1,1]; % 目标函数的系数向量 
A = -[1,1,1,1,1,0,0,0,0;  
0,0,1,0,1,1,0,1,1;  
0,0,0,1,0,1,1,0,1; 
1,1,-2,0,0,0,0,0,0; 
0,0,0,-1,0,0,1,0,0; 
1,1,0,0,-2,0,0,0,0; 
0,0,0,0,0,-1,1,0,0; 
0,0,0,0,1,0,0,-1,0; 
1,1,0,0,0,0,0,0,-2];  
b = -[2; 3; 2; 0; 0; 0; 0; 0; 0]; 
Aeq = []; % 没有等式约束 
beq = []; 
lb = zeros(9,1); % 变量下界,所有变量都从0开始 
ub = ones(9,1); % 变量上界,所有变量最大为1 
% 定义整数变量的索引 
intcon = 1:9; 
[x, fval] = intlinprog(c, intcon, A, b, Aeq, beq, lb, ub); 
disp('最优解为:'); 
disp(x); 
disp('最小值为:'); 
disp(fval);
结果:

在这里插入图片描述

注意事项:

%如果是整形求解就用intlinprog函数,加上intcon参数
%intcon(6,1)
%intlinprog(。。。。。)
其余的细节和非整形线性规划差不多

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值