司守奎《数学建模算法与应用》 第二版的学习(1)线性规划入门

文章详细介绍了MATLAB中的linprog命令用于解决线性规划问题的用法,包括参数含义和示例。注意到linprog只能求解最小值问题,最大化需转换。在不同MATLAB版本中,可能存在多组最优解导致决策变量差异的情况。
摘要由CSDN通过智能技术生成

本文章的学习和例题全部来源于司守奎《数学建模算法与应用》 第二版。

  • 命令:

在matlab中有专门用来解决线性规划问题的命令,[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub),下面依次介绍该命令各个部分的含义:

  • 命令的各部分含义:

x:决策变量,对解决问题所选取的合理方案
fval:为目标函数最优解,最大值或者最小值
f:为价值向量(即决策变量x的系数)
A,b:为线性不等式约束,A为不等式的系数矩阵,b为常数矩阵(列向量),即:AX=b
Aeq,beq:为线性等式约束,Aeq为等式的系数矩阵,beq为常数矩阵(列向量),即:AeqX=beq
lb,ub:用来约束决策变量X的取值范围:lb<=X<=ub

  • 注意:

该命令只能求出最小值,若求最大值时需要将价值向量f乘上一个负号,最后结果fval输出时也要乘上负号

  • 例题演示:

下为例题演示:

 

 

 

 

其中有个有趣的点,在1.3中运行结果最优结果与课本一致,但是决策变量不一样,然后我又用lingo进行验算,得到的是课本上的决策变量,反复检查代码的确不存在问题,因为我用的是matlab 2023a,所以又用学校机房用matlab 2014b测试了一下,结果与课本相符,所以推断这是一个最优解的多组决策,因为软件版本问题所以运行结果里决策变量不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值