matlab实现之线性规划

这个实际上就是高中学习过的内容了,不同的是我们需要在matlab上实现它。
下面基本上都用的向量和矩阵来描述了。
假设我们要求 z=ax1+bx2+cx3
那么z可以描述为 z=fTx ,

f=[a,b,c],x=x1x2x3

然后就是会有一系列的约数条件,让你求z的max或min
这里在matlab里有一个专门函数即linprog来求解线性问题,为了统一描述,linprog只求 zmin ,
设约束条件不等关系描述为
Ax<=b

同样是统一描述是小于等于
等号关系为
Aeqx=beq

x的范围描述为
lb<=x<=ub

则linprog的命令为:

[x,y]=linprog(f,A,b,Aeq,beq,lb,ub);//详情输入help linprog,x是向量,y是所求的最值

如求min z=2x1+3x2+x3
约数:
x1+4x2+2x3>=8
3x1+2x2>=6
x1,x2,x3>=0
代码:

f=[2;3;1];
a=[ -1 -4 -2
    -3 -2 0];
b=[-8,-6];
[x,y]=linprog(f,a,b,[],[],zeros(3,1));
x,y
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值