MATLAB 线性规划任务(1)

提示:完成https://bbs.csdn.net/topics/603235722任务 





前言

完成一道最大值的求解任务


提示:新手上路,如有不足请大佬们指正。




一、题目




二、分析及解答




1.定性

纯粹的线性分析问题

Z为目标函数

x1,x2,x3为决策变量

另外还有四个约束条件(注意第一个为等式!)

所以用linprog函数解决

 代码如下(示例):

x = linprog(f,A,b) 求解 min f'*x 约束条件为 A*x ≤ b.
x = linprog(f,A,b,Aeq,beq) 求解上述问题,但是增加了约束条件,即将: Aeq*x = beq. 如果没有等式存在可以用:A = [] and b = [] 
x = linprog(f,A,b,Aeq,beq,lb,ub) 定义变量x的下界lb和上街ub,使得x始终在该范围内,即lb ≤ x ≤ ub。若没有约束条件,则设: Aeq = [] and beq = [] 
 注意:max=cx   min=-cx




2.MATLAB解决问题

代码如下(示例):

clc
clear all
c=[2 3 -5];%用目标函数系数来确定

a=[-2 5 -1;1 3 1];%约束条件左边约束

b=[-10;12];%约束条件右边系数
aeq=[1 1 1];%有等式约束
beq=[7];%等式只有一个

lb=[0;0;0];%下限为0
ub=[inf;inf;inf];%没有上限,因为只限制了x>0

[x,fval]=linprog(-c,a,b,aeq,beq,lb,ub);
x    %获取对应x1,x2
%或者你直接fval取绝对值也是一样
best=c*x%计算最优值




总结

这样就解决啦!虽然还没学过线性代数,不过还是早知道系数什么的,大家一起努力呀!

再给大家提醒下,matlab里求max,其实就是min=-cx( if min=cx ), 还有就是约束条件一定要调整为 ax+by<=n! 博主第一次两个坑都掉进去了嘤嘤嘤。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值