问题简介

有限的条件下,最大的收益。
例:在这里插入图片描述
线性规划问题,我们首先就是需要将文字内容转变为数学表达式,如下图:
在这里插入图片描述
当得到这一组公式之后,我们也就是得到了一个线性规划模型,然后通过这个模型我们求出最大值或者最小值即可。
“线性”意味着所有变量都是一次方。
适合的题目:“怎样安排”,“尽量多少”,“最多(少)”,“利润最大”,“最合理”等词。

matlab求解

Linprog函数
有一点需要注意,这个函数只能求的是目标函数的最小值。那么我们如果题目是要求最大值的话,那应该怎么办?
只需求这个数的相反数的最小值,也就是说,如果我们要求y最大,只需要求出-y最小即可。
同时他还不能求约束条件<=号,与前面的解决方法相同,加负号然后变号即可。
函数:[x,fval] = linprog(f, A, b, Aeq, beq, lb, ub)
f:目标函数的系数列向量
就比如我们的例题中给出的目标函数是明显不符合要求的,所以我们需要将他转换为下图:
在这里插入图片描述
转换为这种形式,才能是列向量。
A, b:不等式约束条件的变量系数矩阵和常数项矩阵。
Aeq,beq:等式约束条件的系数矩阵和常数矩阵。
lb,ub:决策变量的最小取值和最大取值。
x:返回最优解的变量取解范围。
fval:返回目标函数的最优值。
在没有某个约束条件时可以用“[]”代替。

代码

在这里插入图片描述

结果

在这里插入图片描述
可以得出x1=4,x2=2,可使y最大为220。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐