[数学建模]线性规划与matlab,lingo解法
2018-07-24 21:41
801 查看
1.1线性规划问题
1.1.1什么情况下使用线性规划(规划)模型求解
线性规划通常研究资源的最优利用问题,总的来说有两类方面。
a.在任务确定的条件下,如何利用最少的资源(如资金、原材料、人工、设备)完成确定的任务?
b.在资源一定的条件下,如何组织生产使得成本最小,利润最大?
1.1.2线性规划解题的基本步骤
a.建立模型,列出线性规划模型的三要素(决策变量、目标函数、约束条件)。
b.利用软件计算得结果(excel,matlab,lingo)。
c.灵敏度分析和最优解判别,推荐使用lingo。
1.1.3经典问题
a.运输问题
b.指派问题
1.1.4程序代码
mtlab专用程序函数
[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x0),下面分别介绍各参数的含义.
[x,fval]返回值中x为最优解,fval为最优值.
f表示目标函数中各个变量前面的系数向量,如果是求最小值问题,那么f就是各个变量的系数,如果是求最大值问题,那么f就是各个变量的系数的相反数.
A和b 表示不等式约束A*x <=b中的矩阵A和向量b.
Aeq和beq 表示等式约束Aeq*x =beq中的矩阵Aeq和向量beq.
lb和ub 分别表示自变量的上下界组成的向量,如果没有上下界,该选项用[]表示,如果只有部分变量有上下界,其余的变量没有,那么可以把没有上下界的变量的上下界设为-inf或者inf使lb或者ub的长度符合要求.
x0 表示变量的初始值,可以缺省.
1.1.5例题举例
matlab代码
[code]clc clear c=1:4; c=[c,c]'; aeq=[1,-1,-1,1; 1,-1,1,-3; 1,-1,-2,3]; beq=[0,1,-1/2]; aeq=[aeq,-aeq]; [x,fval]=linprog(c,[],[],aeq,beq,zeros(8,1)) x=x(1:4)-x(5:end)
lingo代码
[code]model: sets: col/1..4/:c,x; row/1..3/:b; links(row,col):a; endsets data: c=1 2 3 4; a=1 -1 -1 1 1 -1 1 -3 1 -1 -2 3; b=0 1 -0.5; enddata min=@sum(col:c*@abs(x)); @for(row(i):@sum(col(j):a(i,j)*x(j))=b(i)); @for(col:@free(x));!x的取值可正可负; end
阅读更多
相关文章推荐
- [数学建模]线性规划与matlab解法
- 使用Python scipy linprog 线性规划求最大值或最小值(使用Python学习数学建模笔记)
- 数学建模常用Matlab/Lingo/c代码总结系列——hamilton回路
- Matlab和LINGO求解线性规划问题
- 数学建模常用Matlab/Lingo/c代码总结系列——hamilton回路
- 数学建模(一)线性规划
- 数学建模算法与程序之线性规划
- 数学建模常用Matlab/Lingo/c代码总结系列——floyd最短路径
- 数学建模之线性规划问题(含整数规划和0-1规划)
- 数学之路(3)-机器学习(3)-常用算法-线性规划之几何解法
- 数学建模常用Matlab/Lingo/c代码总结系列——最小费用最大流问题
- 数学建模常用Matlab/Lingo/c代码总结系列——整数规划问题
- 数学建模 | MATLAB学习 | 非线性规划
- 数学建模常用Matlab/Lingo/c代码总结系列——参数估计
- 钢管下料问题用非线性整数规划的数学模型来建模以及用Lingo进行计算
- octave学习数学建模(一 线性规划问题)
- 数学建模常用Matlab/Lingo/c代码总结系列——非线性拟合
- 数学建模常用Matlab/Lingo/c代码总结系列——Matlab图形绘制函数汇总
- 数学建模常用Matlab/Lingo/c代码总结系列——Matlab图形绘制函数汇总
- 数学建模专栏 | 第五篇:MATLAB优化模型求解方法(上):标准模型