清华大学数学实验_实验9 非线性规划1.docx

清华大学数学实验_实验9 非线性规划1.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
清华大学数学实验_实验9 非线性规划1

实验9 非线性规划实验目的:1)掌握用matlab优化工具箱解非线性规划的方法2)练习建立实际问题的非线性规划模型实验内容:4.某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A,B).按照生产工艺的要求,原料甲、乙必须首先倒入混合池中混合,混合后的液体再分别于原料丙生产A,B.已知原料甲、乙、丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/t,16千元/t,10千元/t;产品A,B的含硫量分别不能超过2.5%,1.5%,售价分别为9千元/t,15千元/t.根据市场信息,原料甲、乙、丙的供应量都不能超过500t;产品A,B的最大市场需求量分别为100t,200t.(1)应如何安排生产?(2)如果产品A的最大市场需求量增长为600t,应如何安排生产?(3)如果乙的进货价格下降为13千元/t,应如何安排生产?分别对(1)、(2)两种情况进行讨论.解:(1)问题的建模设利用x1吨甲,x2吨乙,x3吨丙制造y1吨A;利用x2吨甲,x4吨乙,x6吨丙制造y2吨B;总收益是z千元。则有以下方程与不等式:质量守恒:y1=x1+x3+x5y2=x2+x4+x6总收益:z=9y1+15y2-6(x1+x2)-16(x3+x4)-10(x5+x6)化简得:z=3x1+9x2+3x3+9x4-x5+5x6含硫量约束:3%x1+1%x3+2%x5≤2.5%y13%x2+1%x4+2%x6≤1.5%y2化简得:0.5 x1-1.5x3-0.5x5≤01.5x2-0.5x4+0.5x6≤0供应量约束:(x1+x2),(x3+x4),(x5+x6)≤500需求量约束:y1≤100;y2≤200化简得:x1+x3+ x5≤100x2+x4+ x6≤200甲乙混合,比例相同:整理得:x1x4-x2x3=0;模型的求解:该问题是一个带约束非线性规划问题,编写源程序如下:M文件:函数文件:function z = lab94fun( x)z=-(3*x(1)+9*x(2)-7*x(3)-x(4)-x(5)+5*x(6));end非线性约束条件文件:function [ c,ceq ] = lab94con( x )c=0;ceq=x(1)*x(4)-x(2)*x(3);end主文件:A=[0.5 0 -1.5 0 -0.5 0 0 1.5 0 -0.5 0 0.5 1 1 0 000 0 0 1 1 0 0 0 000 1 1 1 0 1 0 1 0 0 1 0 1 0 1 ]b=[0 0 500 500500 100 200]x0=[20 20 202030 30]; %已验证在可行域中v1=[0 0 0000][x,z,ef,out,lag,grad,hess]=fmincon(@lab94fun,x0,A,b,[],[],v1,[],@lab94con);xz运算结果为:x = 0.0000 0 -0.0000 100.0000 0 100.0000z = -400因此,此时应购买100吨乙,100吨丙来生产200吨B,总共收益是400千元(2)问题的建模:修改x1+x3+ x5≤100为:x1+x3+ x5≤600,其余不变。模型的求解:主文件:将b变为:b=[0 0 500 500500 600 200]在实际运行时发现,在初值为x0=[150 10 1010 150 10](也有其他初值)时,总收益最大。结果为:x = 300.0000 0.0000 0 -0.0000 300.0000 0.0000z = -600因此,这时应该购入100吨甲和100吨丙来生产A,总收益是600千元。(3)问题的建模:总收益变为:z=3x1+9x2-4x3+2x4-x5+5x6其余不变。模型的求解:将函数文件修改为:z=-(3*x(1)+9*x(2)-4*x(3)+2*x(4)-x(5)+5*x(6));其余不变。对(1),结果为:(修改初值是x0=[30 10 10 100 30 10])x = 0.0000 50.0000 -0.0000 150.0000 0 0z = -750.0000对(2),结果为:(修改初值是x0=[30 10 10 100 30 10]) 0.0000 50.0000 -0.0000 150.0000 0 0z = -750.0000可见,二者结果相同。因此,应购买50吨甲,150吨乙,生产200吨B,总收益是750千元。(本题初值对结果有一定影响,有时初值不同、结果不同,因

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档