网站大量收购闲置独家精品文档,联系QQ:2885784924

第十一MATLAB求解线性规划问题精要.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 MATLAB 求解线性规划问题 数学实验 一、实验目的 了解MATLAB的优化工具箱,能利用MATLAB求解线性规划问题。 二、相关知识 线性规划是运筹学中研究得比较早,理论上已趋于成熟,在方法上非常有效,并且应用广泛的一个重要分支。 线性规划的数学模型有各种不同的形式,其一般形式可以写为: 目标函数为 ,约束条件为: 这里 称为目标函数, 称为价值系数, 称为价值向量, 为求解的变量,由系数 组成的矩阵 称为不等式约束矩阵,由系数 组成的矩阵 称为等式约束矩阵, 列向量 和 为右端向量,条件 称为非负约束。 一个满足约束条件的向量 ,称为可行解或可行点,所有可行点的集合称为可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。 求解线性规划问题已有一些成熟的方法,我们这里介绍利用MATLAB来求解线性规划问题的求解。 求解线性规划问题已有一些成熟的方法,我们这里介绍利用MATLAB来求解线性规划问题的求解。 在MATLAB中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求z的极大就是求-z的极小,因此在MATLAB中以求极小为标准形式,函数linprog()的具体格式如下: X=linprog(f,A,b) [X,fval,exitflag,output,lamnda]=linprog(f,A,b,Aeq,Beq,LB,UB,X0,options) 这里X是问题的解向量, f是由目标函数的系数构成的向量, A是一个矩阵,b是一个向量,A,b和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件,A,b是系数矩阵和右端向量。 Aeq和Beq表示了线性规划中等式约束条件中的系数矩阵和右端向量。LB和UB是约束变量的下界和上界向量,X0是给定的变量的初始值, options为控制规划过程的参数系列。返回值中fval是优化结束后得到的目标函数值。 exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数; exitflag0表示优化过程中变量收敛于解X,exitflag0表示不收敛。output有3个分量,iterations表示优化过程的迭代次数, cgiterations表示PCG迭代次数, algorithm表示优化所采用的运算规则。 lambda有4个分量, ineqlin是线性不等式约束条件, eqlin是线性等式约束条件, upper是变量的上界约束条件, lower是变量的下界约束条件。 它们的返回值分别表示相应的约束条件在约束条件在优化过程中是否有效。 例1:某工厂生产A,B两种产品,所用原料均为甲、乙、丙三种:生产一件产品所需原料和所获利润以及库存原料情况如下所示: 在该厂只有表中所列库存原料的情况下,如何安排A,B两种产品的生产数量可以获得最大利润? 原料甲(公斤) 原料乙(公斤) 原料丙(公斤) 利润(元) 产品A 8 4 4 7000 产品B 6 8 6 10000 库存原料量 380 300 220 设生产A产品 件,生产B产品 件, 为所获利润,我们将问题归结为如下的线性规划问题: 接着写出MATLAB程序如下: clear f=-[7000,10000]; A=[8,6;4,8;4,6]; b=[380,300,220]; [X,fval]=linprog(f,A,b) 运行结果为: Optimization terminated successfully. X =40.0000 10.0000 fval = -3.8000e+005 例2:求解下面的线性规划问题: 解决上述问题的MATLAB程序为: clear f=-[5,4,6]; A=[1,-2,1;3,2,4;3,2,0]; b=[20,42,30]; LB=[0;0;0]; [X,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],LB) 程序运行的结果为: Optimization terminated successfully. X = 0.0000 15.0000 3.0000 fval = -78.0000 exitflag = 1 output = i

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档