本文主要是介绍数学建模(1):线性规划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先明确,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。
在解决这类型的实际问题时,应当选择适当的决策变量来建立有效模型。在数学建模中,涉及到线性规划的问题有以下几个类型:
§1 一般线性规划
简单的线性规划问题都可使用matlab或lingo来处理。但对于matlab来说,所给定的模型必须满足标准型。因此,在matlab中,往往需要人工转化再输入计算。
标准型的转化规则:
- 目标函数统一求max,若为min则乘以-1,作向量b
- 约束中出现≥号,两端同时乘以-1,改写为≤号,作向量a
- 若存在等式约束,令左侧系数为向量aeq,右侧为beq
- 若需要变量全大于0约束,加入全0阵。全0阵的行为变量个数,列为1。
转化完成后,使用linprog函数做计算即可。例如:
c=[2;3;1];
a=[1,4,2;3,2,0];
b=[8;6];
[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))
使用lingo做计算则更为简便。只需要将约束条件,目标函数直接输入即可。例如:
min=2*x1+3*x2-5*x3;
x1+x2+x3=7;
2*x1-5*x2+x3>&#
这篇关于数学建模(1):线性规划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!