收藏 分享(赏)

MATLAB在线性规划中的应用.doc

上传人:精品资料 文档编号:10750327 上传时间:2020-01-07 格式:DOC 页数:12 大小:207.50KB
下载 相关 举报
MATLAB在线性规划中的应用.doc_第1页
第1页 / 共12页
MATLAB在线性规划中的应用.doc_第2页
第2页 / 共12页
MATLAB在线性规划中的应用.doc_第3页
第3页 / 共12页
MATLAB在线性规划中的应用.doc_第4页
第4页 / 共12页
MATLAB在线性规划中的应用.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、MATLAB课程论文 MATLAB 在线性规划中的应用姓名:马福蕊学号:12010245317专业:通信工程指导老师:汤全武学院:物理电气信息学院完成日期:2011.12.7 MATLAB 在线性规划中的应用(马福蕊 12010245317 通信工程(1 )班)【摘要】在各类经济活动中,经常遇到这样的问题:在生产条件不变的情下,如何通过统筹安排,改进生产组织或计划,合理安排人力、物力资源,组织生产过程,使总的经济效益最好。这样的问题常常可以化成或近似地化成所谓的“线性规划” (Linear Programming,简记为 LP)问题。线性规划是应用分析、量化的方法,对经济管理系统中的人、财、物

2、等有限资源进行统筹安排,为决策者提供有依据的最优方案,以实现有效管理。利用线性规划我们可以解决很多问题。如:在不违反一定资源限制下,组织安排生产,获得最好的经济效益(产量最多、利润最大、效用最高) 。也可以在满足一定需求条件下,进行合理配置,使成本最小。同时还可以在任务或目标确定后,统筹兼顾,合理安排,用最少的资源(如资金、设备、原材料、人工、时间等)去完成任务。常规的手工解法复杂且运算量大,而 MATLAB 语言可以很好的处理线性规划问题,既能进行数值的求解,又能绘制有关线性图形,非常方便实用,利用其可以减少工作量,节约时间,加深理解,同样可以培养应用能力。【关键词】线性规划 优化求解 MA

3、TLAB 语言1、线性规划问题的在实际中的应用 1、线性规划问题的在实际应用中的作用任何资源都是有限的,如何通过分配有限的资源获得人们所期望的效果,在工农业生产、交通运输、资本增值等各项经济活动中,如何提高经济效益,做到耗费较少的人力物力财力,创造出较多的经济价值,这些问题涉及分配,而线性规划为最优分配提供了工具。2、线性规划主要研究的两类问题一是一项任务确定后,如何统筹安排,尽量做到用最少的人力物力资源去完成这一任务。二是已有一定数量的人力物力资源,如何安排使用它们,使得完成任务最多。 常见的线性规划问题如:运输问题,生产的组织与计划问题,合力下料问题,配料问题、布局问题、分派问题等。2、M

4、ATLAB 在线性规划中的应 1.MATLAB 在线性规划中的指令线性规划是一种优化方法,Matlab 优化工具箱中有现成函数 linprog 对如下式描述的 LP 问题求解:% min fx % s.t .(约束条件) : Ax=b% (等式约束条件 ): Aeqx=beq% lb=x=ublinprog 函数的调用格式如下:x=linprog(f,A,b)x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beq,lb,ub)x=linprog(f,A,b,Aeq,beq,lb,ub,x0)x=linprog(f,A,b,Aeq,beq,lb,ub,x0

5、,options)x,fval=linprog()x, fval, exitflag=linprog()x, fval, exitflag, output=linprog()x, fval, exitflag, output, lambda=linprog()2、相关说明x=linprog(f,A,b)返回值 x 为最优解向量。x=linprog(f,A,b,Aeq,beq) 作有等式约束的问题。若没有不等式约束,则令A= 、 b= 。x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中 lb ,ub 为变量 x 的下界和上界,x0 为初值点,options

6、为指定优化参数进行最小化。Options 的参数描述:Display 显示水平。 选择off 不显示输出;选择Iter显示每一 步迭代过程的输出;选择final 显示最终结果。MaxFunEvals 函数评价的最大允许次数。Maxiter 最大允许迭代次数。TolX x 处的终止容限。x,fval=linprog() 左端 fval 返回解 x 处的目标函数值。x,fval,exitflag,output,lambda=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的输出部分: exitflag 描述函数计算的退出条件:若为正值,表示目标函数收敛于解x 处;若为负值,表示目

7、标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。output 返回优化信息:output.iterations 表示迭代次数;output.algorithm 表示所采用的算法;outprt.funcCount 表示函数评价次数。lambda 返回 x 处的拉格朗日乘子。它有以下属性:lambda.lower-lambda 的下界;lambda.upper-lambda 的上界;lambda.ineqlin-lambda 的线性不等式;lambda.eqlin-lambda 的线性等式。三、运用 MATLAB 解决线性规划问题的实例对于给定的实际问题,首先是要建立线性规划问题的数

8、学模型, 其次是求问题的最优解。1、直接运用 MATLAB 编程计算求解线性规划问题线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件可以是不等式也可以是等式,变量可以有非负要求也可以没有非负要求(称这样的变量为自由变量)。为了避免这种由于形式多样性而带来的不便,规定线性规划的标准形式为(1)121212,min ,0(,).nmmnizfxfxstaabxx 极小值模型 (2)121212ax ,0(,).nmmnizfxfst abxax 极大值模型 利用矩阵与向量记为(3)in.0TzCxstAb其中 C 和 x 为 n 维列向量,b 为 m 维列向量,b0,A 为 mn 矩阵

9、,mn且 rank(A)=m。如果根据实际问题建立起来的线性规划问题并非标准形式,可以将它如下化为标准形式:(1)若目标函数为 ,可将它化为axTzCinTzCx(2)若第 i 个约束为 ,可增加一个松驰变量 ,将不等式1iinib iy化为,且 0。1iiniaxy iy若第 i 个约束为 ai1x1+ainxn bi,可引入剩余量 ,将不等式化为iyai1x1+ainxn yi = bi,且 yi 0。(3)若 xi 为自变量,则可令 ,其中 、 0。iixiix问题一、某牧场饲养一批动物,平均每头动物至少需要 700g 蛋白质,30g矿物质和 100g 维生素。现有 A,B,C,D,E

10、五种饲料可供选用,每千克饲料的营养成分(单位:g)与价格(单位:元/kg)如下表所示:表 1 每千克饲料的营养成分(单位:g)与价格(单位:元/kg)蛋白质 矿物质 维生素 价格A 3 1.0 0.5 0.4B 2 0.5 1.0 1.4C 1 0.2 1.2 0.8D 6 2.0 2.0 1.6E 12 0.5 0.8 1.6试求能满足动物生长营养需求又最经济的选用饲料方案。设配合饲料中,用 A 种饲料 单位,用 B 种饲料 单位,用 C 种饲料 单1x2x3x位,用 D 种饲料 单位,用 E 种饲料 单位,则配合饲料的原料成本函数,即4x5决策的目标函数为 Z。考虑三种营养含量限制条件后,

11、得这一问题的线性规划模型如下目标函数:(4)54321 6.1.8.040xxxMinz 约束条件为:(5)123454567. 0.5.2.0.3081stxxx编写 M 文件如下:c = 0.4;1.4;0.8;1.6;1.6; %产生有五个元素的列向量 cA=-3,-2,-1,-6,-12;-1.0,-0.5,-0.2,-2.0,-0.5;-0.5,-1.0,-1.2,-2.0,-0.8; %约束条件中的变量系数构成的矩阵 Ab=-700;-30;-100; %约束条件中的上下界构成的列向量Aeq=; %没有等式约束beq=; %没有等式约束vlb = zeros(5,1); %生成一个

12、五行一列的零矩阵x,fval,eval = linprog(c,A,b,Aeq,beq,vlb) %调用 linprog 函数可得到如下结果:Optimization terminated.x =224.71150.00000.00000.00002.1555fval =93.3333从以上结果可以看出,买 224.7115 千克的 A 饲料,2.1555 千克的 E 饲料,能满足动物生能满足动物生长营养需求又最经济,所用价钱为 93.3333 元。问题二、某厂每日 8 小时的产量不低于 1800 件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度 25 件/小时,正

13、确率98%,计时工资 4 元/小时;二级检验员的标准为:速度 15 小时/件,正确率 95%,计时工资 3 元/小时。检验员每错检一次,工厂要损失 2 元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?解:设需要一级和二级检验员的人数分别为 、 人,则应付检验员的工1x2资为: (6)21214384x因检验员错检而造成的损失为:2121 8)%58258( xxx(7) 故目标函数为: (8)213640minxz约束条件为:(9)0,159 .22xts编写 M 文件如下:c = 40;36; %产生有两个元素的列向量 cA=-5 -3; %约束条件中的变量系数构成的矩阵 Ab=-

14、45; %约束条件中的上下界构成的列向量Aeq=; %没有等式约束beq=; %没有等式约束vlb = zeros(2,1); %生成一个两行一列的零矩阵(含两个零的列向量)下界 vub=9;15; %上界 x,fval = linprog(c,A,b,Aeq,beq,vlb,vub) %调用 linprog 函数x =9.00000.0000fval =360即只需聘用 9 个一级检验员。问题三、某农场 I、II、III 等耕地的面积分别为 100 hm2、300 hm2和200 hm2,计划种植水稻、大豆和玉米,要求三种作物的最低收获量分别为190000kg、130000 kg 和 350

15、000kg。I、II、III 等耕地种植三种作物的单产如表 5.1.4 所示。若三种作物的售价分别为水稻 1.20 元/ kg,大豆 1.50 元/kg,玉米 0.80 元/ kg。那么, (1)如何制订种植计划,才能使总产量最大?(2)如何制订种植计划,才能使总产值最大 表 2 不同等级耕地种植不同作物的单产(单位: kg / hm2)I 等耕地 II 等耕地 III 等耕地水稻 11 000 9 500 9 000大豆 8 000 6 800 6 000玉米 14 000 12 000 10 000首先根据题意建立线性规划模型(决策变量设置如表 2 所示,表中 表示ijx第 种作物在第 j

16、 等级的耕地上的种植面积。 ):i表 3 作物计划种植面积(单位: hm2)I 等 耕地 II 等 耕地 III 等耕地水稻 1x12x13x大豆 2 2玉米 31x32x3x约束方程如下:耕地面积约束: (10)20x31231最低收获量约束: -35010x2140x-689953312(11)非负约束: ,2)j1,;(i0xij (1)追求总产量最大,目标函数为:(12)3323123221121 0x40x -6 68- 95-=minZ(2)追求总产值最大,目标函数为:(13)3323122113332221110x8960x4- ) (.8 0x680x1595-.=maxZ 根

17、据求解函数 linprog 中的参数含义,列出系数矩阵,目标函数系数矩阵,以及约束条件等。这些参数中没有的设为空。譬如,当追求总产量最大时,只要将参数f=-11000 9500 9000 8000 6800 6000 14000 12000 -10000;A=1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000; 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000; 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000

18、0.0000 0.0000 1.0000; -11000.0000 0.0000 0.0000 -9500.0000 0.0000 0.0000 -9000.0000 0.0000 0.0000; 0.0000 -8000.0000 0.0000 0.0000 -6800.0000 0.0000 0.0000 -6000.0000 0.0000; 0.0000 0.0000 -14000.0000 0.0000 0.0000 -12000.0000 0.0000 0.0000 -10000.0000;b=100 300 200 -190000 -130000 -350000;lb=0.0000

19、 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ;代入求解函数 ,即可得到求解结),(lbAflinprogfxtopt果。线性规划,还有其他的几种调用函数形式,可在 Matlab 帮助中查找 LP 或者 LINPROG 的帮助说明。2.运用 MATLAB 的图解法求解线性规划问题 若一个线性规划问题有最优解,则最优解一定可以在可行域的某个极点上找到一个最优解。同时仍有可能有其他最优解存在,但它们也只可能存在于可行域的其他极点或是边界上。如果我们的目的是找出一个最优解而不是全部最优解,这一定理实际上是把寻找的范围,从可行域中的无

20、穷多个可行点,缩小到可行域的有限几个极点上。 问题一、某农户有耕地 20 公顷,可采用甲乙两种种植方式。甲种植方式每公顷需投资 280 元,每公顷投工 6 个,可获收入 1000 元,乙方式每公顷需投资 150元,劳动 15 个工日,可获收入 1200 元,该户共有可用资金 4200 元、240 个劳动工日。问如何安排甲乙两种方式的生产,可使总收入最大?解:设甲方式种 公顷,乙方式种 公顷,总收入为 Z,则有: 1x2x(13) 121212ma085460,zx图 问题一线性规划图解所以,如图所示,在 B 点时,甲级两种方式的总收入最大,即甲方式种 6.7 公顷,乙方式种 13.3 公顷。4

21、、结论1、由于将线性规划问题化为标准形式之后的约束条件是一个非齐次线性方程组,故当考虑 LP 问题的解时,首先可以考虑非齐次线性方程组的解,然后再考虑目标函数的解最大、最小值问题。单纯形法是求解 LP 问题的一种常用方法,但单纯形法的运算量比较大,当约束条件中的约束变量比较多时,效费比就比较低,因此借助计算机软件的强大运算功能,既节约时间又提高了运算的准确性,对于一般的线性规划问题,应用 excel、MATLAB 都可以轻松解决,但 MATLAB 的整数线性规划运算功能欠缺,此时可以应用 lingo、excel 软件解决这类问题。2、在接触 MATLAB 之后,我发现 MATLAB 语法简单,

22、易于绘制图形,编程也非常容易.并且有功能强大的开放式的 toolbox。MATLAB 是功能强大的科学及工程计算软件,它不但具有矩阵计算为基础的强大数学计算 和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。3、对于 MATLAB 自带函数的问题,要多利用 MATLAB 的帮助功能,例如:对于某些不是很明确的命令,只知道大体的所属范围,譬如说某个工具箱,直接在命令窗口中敲入 helptoolboxname.可以这么说任何问题都可以在 MATLAB 帮助里找到解决方法,问题不论大小,都是由更小的问题组成,到 MATLAB 帮助里面去找这些小问题,就可以得到解决。4、MATLAB

23、 在使用的过程中一定要仔细,整个程序中如果一个分号放错位置,都会导致程序不能运行,这样会花费大量时间去调试,往往还不能找到错误的地方. 5、MATLAB 同时也会自动进行记忆体的使用和回收 ,而不必像 C 语言,必须由使用者一一指定若不想让 MATLAB 每次都显示运算结果,只需在运算式最后加上分号。6、MATLAB 的函数库十分庞大,包含 2000 多 个函数.它几乎囊括了一般用户所需的所有函数.但 MATLAB 和其它高级程序相比,程序的执行速度慢,占内存,且不能生成 exe 文件. 五、课程体会通过本次MATLAB 在线性规划中的应用 的课题的探究及其论文的写作,我认识到:把线性规划的知

24、识运用到企业中去,可以使企业适应市场激烈的竞争,及时、准确、科学的制定生产计划、投资计划、对资源进行合理配置。过去企业在制定计划,调整分配方面很困难,既要考虑生产成本,又要考虑获利水平,人工测算需要很长时间,不易做到机动灵活,但将一些基本的数学软件,如 MATLAB 语言,lingo、excel 等计算机软件运用到线性规划问题求解中进行测算则非常简便易行,几分钟就可以拿出最优方案,提高了企业决策的科学性和可靠性。其决策理论是建立在严格的理论基础之上,运用大量基础数据,经严格的数学运算得到的,从而在使企业能够在生产的各个环节中优化配置,提高了企业的效率,对企业是大有益处的。【参考文献】1 韩明, 王家宝, 李林. 数学实验M.上海:同济大学出版社, 2009.2 管梅谷,郑汉鼎.线性规划.济南:山东科学技术出版社,19833 郎艳怀.经济数学方法与模型教程.上海:上海财经大学出版社.2004.4 陈志杰.高等代数与解析几何 ,高等教育出版社,2006 5 唐文换.数学模型,高等教育出版社,2008 6 百度文库:http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报