【练习2021-10-10】求解一个简单的线性规划 MATLAB

例题:
求解线性规划问题
max ⁡ z = 2 x 1 + 3 x 2 − 5 x 3 \max z = 2x_1+3x_2-5x_3 maxz=2x1+3x25x3 s . t . s.t. s.t. x 1 + x 2 + x 3 = 7 x_1+x_2+x_3=7 x1+x2+x3=7 2 x 1 − 5 x 2 + x 3 ≥ 10 2x_1-5x_2+x_3≥10 2x15x2+x310 x 1 + 3 x 2 + x 3 ≤ 12 x_1+3x_2+x_3≤12 x1+3x2+x312 x 1 , x 2 , x 3 ≥ 0 x1,x2,x3≥0 x1,x2,x30

解:
1.原理
(s.t.意思是约束条件)
首先要知道的是线性规划的MATLAB标准模板是下图所示。
在这里插入图片描述
其中,x、c、b、beq、lb、ub是列向量;
A、Aeq是矩阵;
fval是价值向量。

所需要的做的就是把题目转化成标准型。MATLAB公式只能求最小值,模板中也是小于等于号,所以对应的,如果要求最大值,就需要加负号调整。

MATLAB中求解线性规划的命令为下图所示
在这里插入图片描述
其中,x返回的是决策向量的取值,fval返回的是目标函数的最优值;
c为价值向量,A、b对应的是线性不等式约束;
Aeq、beq对应的是线性等式约束;
lb、ub分别对应的是决策向量的下届向量和上界向量。

2.代码

f = [-2;-3;5]; 
a=[-2,5,-1;1,3,1];b=[-10;12];
aeq=[1,1,1];beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));
x,y=-y

下边是一个我的错误点,需要注意。
在这里插入图片描述
3.结果
在这里插入图片描述
返回值的含义是:
x 1 = 6.4286 , x 2 = 0.5714 , x 3 = 0 x_1=6.4286,x_2=0.5714,x_3= 0 x1=6.4286x2=0.5714x3=0时,有最优解 y = 14.5714 y=14.5714 y=14.5714

(注:本题出自b站BV1kC4y1a7Ee的P3)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值