




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
线性规划 数学建模与数学实验 问题一 任务分配问题 某车间有甲 乙两台机床 可用于加工三种工件 假定这两台车床的可用台时数分别为800和900 三种工件的数量分别为400 600和500 且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表 问怎样分配车床的加工任务 才能既满足加工工件的要求 又使加工费用最低 两个引例 解设在甲车床上加工工件1 2 3的数量分别为x1 x2 x3 在乙车床上加工工件1 2 3的数量分别为x4 x5 x6 可建立以下线性规划模型 问题二 某厂每日8小时的产量不低于1800件 为了进行质量控制 计划聘请两种不同水平的检验员 一级检验员的标准为 速度25件 小时 正确率98 计时工资4元 小时 二级检验员的标准为 速度15件 小时 正确率95 计时工资3元 小时 检验员每错检一次 工厂要损失2元 为使总检验费用最省 该工厂应聘一级 二级检验员各几名 解设需要一级和二级检验员的人数分别为x1 x2人 则应付检验员的工资为 因检验员错检而造成的损失为 故目标函数为 约束条件为 线性规划模型 1 线性规划的标准形式 用单纯法求解时 常将标准形式化为 2 线性规划的基本算法 单纯形法 线性规划的基本算法 单纯形法 用MATLAB优化工具箱解线性规划 命令 x linprog c A b 2 模型 minz cX 命令 x linprog c A b Aeq beq 注意 若没有不等式 存在 则令A b 命令 1 x linprog c A b Aeq beq VLB VUB 2 x linprog c A b Aeq beq VLB VUB X0 注意 1 若没有等式约束 则令Aeq beq 2 其中X0表示初始点 4 命令 x fval linprog 返回最优解 及 处的目标函数值fval 解编写M文件xxgh1 m如下 c 0 4 0 28 0 32 0 72 0 64 0 6 A 0 010 010 010 030 030 03 0 02000 0500 00 02000 050 000 03000 08 b 850 700 100 900 Aeq beq vlb 0 0 0 0 0 0 vub x fval linprog c A b Aeq beq vlb vub 解 编写M文件xxgh2 m如下 c 634 A 010 b 50 Aeq 111 beq 120 vlb 30 0 20 vub x fval linprog c A b Aeq beq vlb vub 引例问题一 例3问题一的解答 编写M文件xxgh3 m如下 f 1391011128 A 0 41 110000000 51 21 3 b 800 900 Aeq 100100010010001001 beq 400600500 vlb zeros 6 1 vub x fval linprog f A b Aeq beq vlb vub 结果 x 0 0000600 00000 0000400 00000 0000500 0000fval 1 3800e 004即在甲机床上加工600个工件2 在乙机床上加工400个工件1 500个工件3 可在满足条件的情况下使总加工费最小为13800 引例问题二 约束条件为 例2问题二的解答 改写为 编写M文件xxgh4 m如下 c 40 36 A 5 3 b 45 Aeq beq vlb zeros 2 1 vub 9 15 调用linprog函数 x fval linprog c A b Aeq beq vlb vub 结果为 x 9 00000 0000fval 360即只需聘用9个一级检验员 注 本问题应还有一个约束条件 x1 x2取整数 故它是一个整数线性规划问题 这里把它当成一个线性规划来解 求得其最优解刚好是整数 x1 9 x2 0 故它就是该整数规划的最优解 若用线性规划解法求得的最优解不是整数 将其取整后不一定是相应整数规划的最优解 这样的整数规划应用专门的方法求解 实验作业 某厂生产甲乙两种口味的饮料 每百箱甲饮料需用原料6千克 工人10名 可获利10万元 每百箱乙饮料需用原料5千克 工人20名 可获利9万元 今工厂共有原料60千克 工人150名 又由于其他条件所限甲饮料产量不超过8百箱 问如何安排生产计划 即两种饮料各生产多少使获利最大 进一步讨论 1 若投资0 8万元可增加原料1千克 问应否作这项投资 2 若每百箱甲饮料获利可增加1万元 问应否改变生产计划 用Matlab解无约束优化问题 其中 3 4 5 的等式右边可选用 1 或 2 的等式右边 函数fminbnd的算法基于黄金分割法和二次插值法 它要求目标函数必须是连续函数 并可能只给出局部最优解 常用格式如下 1 x fminbnd fun x1 x2 2 x fminbnd fun x1 x2 options 3 x fval fminbnd 4 x fval exitflag fminbnd 5 x fval exitflag output fminbnd 主程序为wliti1 m f 2 exp x sin x fplot f 0 8 作图语句 xmin ymin fminbnd f 0 8 f1 2 exp x sin x xmax ymax fminbnd f1 0 8 例2对边长为3米的正方形铁板 在四个角剪去相等的正方形以制成方形无盖水槽 问如何剪法使水槽的容积最大 解 先编写M文件fun0 m如下 functionf fun0 x f 3 2 x 2 x 主程序为wliti2 m x fval fminbnd fun0 0 1 5 xmax xfmax fval 运算结果为 xmax 0 5000 fmax 2 0000 即剪掉的正方形的边长为0 5米时水槽的容积最大 最大容积为2立方米 ToMatlab wliti2 命令格式为 1 x fminunc fun X0 或x fminsearch fun X0 2 x fminunc fun X0 options 或x fminsearch fun X0 options 3 x fval fminunc 或 x fval fminsearch 4 x fval exitflag fminunc 或 x fval exitflag fminsearch 5 x fval exitflag output fminunc 或 x fval exitflag output fminsearch 2 多元函数无约束优化问题 标准型为 minF X 3 fminunc为中型优化算法的步长一维搜索提供了两种算法 由options中参数LineSearchType控制 LineSearchType quadcubic 缺省值 混合的二次和三次多项式插值 LineSearchType cubicpoly 三次多项式插 使用fminunc和fminsearch可能会得到局部最优解 说明 fminsearch是用单纯形法寻优 fminunc的算法见以下几点说明 1 fminunc为无约束优化提供了大型优化和中型优化算法 由options中的参数LargeScale控制 LargeScale on 默认值 使用大型算法LargeScale off 默认值 使用中型算法 2 fminunc为中型优化算法的搜索方向提供了4种算法 由options中的参数HessUpdate控制 HessUpdate bfgs 默认值 拟牛顿法的BFGS公式 HessUpdate dfp 拟牛顿法的DFP公式 HessUpdate steepdesc 最速下降法 例3minf x 4x12 2x22 4x1x2 2x2 1 exp x1 1 编写M 文件fun1 m functionf fun1 x f exp x 1 4 x 1 2 2 x 2 2 4 x 1 x 2 2 x 2 1 2 输入M文件wliti3 m如下 x0 1 1 x fminunc fun1 x0 y fun1 x 3 运行结果 x 0 5000 1 0000y 1 3029e 10 3 用fminsearch函数求解 ToMatlab wliti41 输入命令 f 100 x 2 x 1 2 2 1 x 1 2 x fval exitflag output fminsearch f 1 22 运行结果 x 1 00001 0000fval 1 9151e 010exitflag 1output iterations 108funcCount 202algorithm Nelder Meadsimplexdirectsearch 4 用fminunc函数 ToMatlab wliti44 1 建立M 文件fun2 mfunctionf fun2 x f 100 x 2 x 1 2 2 1 x 1 2 2 主程序wliti44 m Rosenbrock函数不同算法的计算结果 可以看出 最速下降法的结果最差 因为最速下降法特别不适合于从一狭长通道到达最优解的情况 例5产销量的最佳安排某厂生产一种产品有甲 乙两个牌号 讨论在产销平衡的情况下如何确定各自的产量 使总利润最大 所谓产销平衡指工厂的产量等于市场上的销量 基本假设 1 价格与销量成线性关系 2 成本与产量成负指数关系 模型建立 若根据大量的统计数据 求出系数b1 100 a11 1 a12 0 1 b2 280 a21 0 2 a22 2 r1 30 1 0 015 c1 20 r2 100 2 0 02 c2 30 则问题转化为无约束优化问题 求甲 乙两个牌号的产量x1 x2 使总利润z最大 为简化模型 先忽略成本 并令a12 0 a21 0 问题转化为求 z1 b1 a11x1 x1 b2 a22x2 x2的极值 显然其解为x1 b1 2a11 50 x2 b2 2a22 70 我们把它作为原问题的初始值 总利润为 z x1 x2 p1 q1 x1 p2 q2 x2 模型求解 1 建立M 文件fun m functionf fun x y1 100 x 1 0 1 x 2 30 exp 0 015 x 1 20 x 1 y2 280 0 2 x 1 2 x 2 100 exp 0 02 x 2 30 x 2 f y1 y2 2 输入命令 x0 50 70 x fminunc fun x0 z fun x 3 计算结果 x 23 9025 62 4977 z 6 4135e 003即甲的产量为23 9025 乙的产量为62 4977 最大利润为6413 5 实验作业 Matlab优化工具箱简介 1 MATLAB求解优化问题的主要函数 2 优化函数的输入变量 使用优化函数或优化工具箱中其它优化函数时 输入变量见下表 3 优化函数的输出变量下表 4 控制参数options的设置 3 MaxIter 允许进行迭代的最大次数 取值为正整数 Options中常用的几个参数的名称 含义 取值如下 1 Display 显示水平 取值为 off 时 不显示输出 取值为 iter 时 显示每次迭代的信息 取值为 final 时 显示最终结果 默认值为 final 2 MaxFunEvals 允许进行函数评价的最大次数 取值为正整数 例 opts optimset Display iter TolFun 1e 8 该语句创建一个称为opts的优化选项结构 其中显示参数设为 iter TolFun参数设为1e 8 控制参数options可以通过函数optimset创建或修改 命令的格式如下 1 options optimset optimfun 创建一个含有所有参数名 并与优化函数optimfun相关的默认值的选项结构options 2 options optimset param1 value1 param2 value2 创建一个名称为options的优化选项参数 其中指定的参数具有指定值 所有未指定的参数取默认值 3 options optimset oldops param1 value1 param2 value2 创建名称为oldops的参数的拷贝 用指定的参数值修改oldops中相应的参数 oldoptions optimset fminunc options o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄冈营销活动策划方案
- 鸡西夜市活动方案
- 装饰公司交房会活动方案
- 功能食品考试题及答案
- 服务营销考试题及答案
- 美丽的南湖公园650字7篇
- 分析能力考试题及答案
- 防疫期间考试题及答案
- 项目预算与成本管控表格模板
- 动画概念考试题及答案
- 西师大版五年级音乐上册 第一单元《走街街》 课件走 街 街
- 团员组织关系转接介绍信(样表)
- 安徽水利工程施工质量缺陷备案表、质量备案表、核备表、阶段验收质量监督意见、质量监督报告示范文本模板
- 村级访谈提纲范文三篇
- 胸穿、腹穿、骨穿、腰穿四大穿刺
- XB/T 903-2002烧结钕铁硼永磁材料表面电镀层
- 参军入伍保留学籍申请表(模板)
- 食品安全事故案例课件-002
- 领导干部压力管理与心理调适概论课件
- 表面工程学第十二章-表面微细加工技术
- 基于AI的智能运维解决方案
评论
0/150
提交评论