《清华大学数学实验-实验9-非线性规划1.docx》由会员分享,可在线阅读,更多相关《清华大学数学实验-实验9-非线性规划1.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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.根据市场信息,原料甲、乙、丙的供应量都不能超过50
2、0t;产品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、:3%x1+1%x3+2%x52.5%y13%x2+1%x4+2%x61.5%y2化简得:0.5 x1-1.5x3-0.5x501.5x2-0.5x4+0.5x60供应量约束:(x1+x2),(x3+x4),(x5+x6)500需求量约束:y1100;y2200化简得:x1+x3+ x5100x2+x4+ x6200甲乙混合,比例相同:x1x3=x2x4整理得: 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
4、);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 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 b=0 0 500 500 500 100 200x0=20 20 20 20 30 30; %已验证在可行域中v1=0 0 0 0 0 0x,z,ef,out,lag,grad,hess=fmincon(lab94fun,x0,A,b,
5、v1,lab94con);xz运算结果为:x = 0.0000 0 -0.0000 100.0000 0 100.0000z = -400因此,此时应购买100吨乙,100吨丙来生产200吨B,总共收益是400千元(2)问题的建模:修改x1+x3+ x5100为:x1+x3+ x5600,其余不变。模型的求解:主文件:将b变为:b=0 0 500 500 500 600 200在实际运行时发现,在初值为x0=150 10 10 10 150 10(也有其他初值)时,总收益最大。结果为:x = 300.0000 0.0000 0 -0.0000 300.0000 0.0000z = -600因此
6、,这时应该购入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
7、0 0z = -750.0000可见,二者结果相同。因此,应购买50吨甲,150吨乙,生产200吨B,总收益是750千元。(本题初值对结果有一定影响,有时初值不同、结果不同,因此应该多选初值进行尝试。)9.8.美国某三种股票(A,B,C)12年(1943-1954年)的价格(已经包括了分红在内)每年的增长情况如下表所示(表中还给出了相应年份的500种股票的价格指数的增长情况).例如,表中第一个数据1.300倍,即收益为30%,其余数据的含义以此类推.假设你在1955年时有一笔资金准备投资这三种股票,并期望年收益率至少达到15%,那么你应当如何投资?此外,考虑一下问题:(1)当期望的年收益率在1
8、0%100%变化时,投资组合和相应的风险如何变化?(2)假设除了上述三种股票外,投资人还有一种无风险的投资方式,如购买国库券.假设国库券的年收益率为5%,如何考虑该投资问题?(3)假设你手上目前握有的股票比例为:股票A占50%,B占35%,C占15%.这个比例与你得到的最优解可能有所不同,但实际股票市场上每次股票买卖通常总有交易费,例如按交易额的1%收取交易费,这时你是否仍需要对手上的股票进行买卖(换手),以便满足“最优解”的要求?年份股票A股票B股票C股票指数19431.3001.2251.1491.25899719441.1031.2901.2601.19752619451.2161.21
9、61.4191.36436119460.9540.7280.9220.91928719470.9291.1441.1691.05708019481.0561.1070.9651.05501219491.0381.3211.1331.18792519501.0891.3051.7321.31713019511.0901.1951.0211.24016419521.0831.3901.1311.18367519531.0350.9281.0060.99010819541.1761.7151.9081.526236解:问题的建模:为方便建模及程序编写,先将各值计算出来。令EA,EB,EC为各股票的期
10、望,DA,DB,DC为各股票的方差,rAB、rAC、rBC分别为每两支股票之间的相关系数。可以计算得:EA=1.0891;EB=1.2137;EC=1.2346DA=0.0108;DB=0.0584;DC=0.0942rAB=0.4939;rAC=0.4097;rBC=0.7472同时可计算出每两种股票的协方差为:covA,B=rABDADB=0.01240387covA,C=rACDADC=0.01306782covB,C=rBCDBDC=0.05542028令投资A,B,C三种股票每种所占的比例分别为x1、x2、x3因此,投资的总期望收益是:Z1=x1EA+x2EB+x3EC=1.0891
11、x1+1.2137x2+1.2346x3投资总收益的方差为Z2=x12DA+x22DB+x32DC+2x1x2covA,B+2x1x3covA,C+2x2x3covB,C=0.0108x12+0.0584x22+0.0942x32+0.01240387x1x2+0.01306782x1x3+0.05532028x2x3年收益率至少要达到15%:1.0891x1+1.2137x2+1.2346x31.15其他约束:x1+x2+x3=1x1,x2,x30模型的求解:源程序如下:函数文件:function f=lab98fun(x)f=0.0108*x(1)2+0.0584*x(2)2+0.0942
12、*x(3)2+0.01240387*x(1)*x(2)+0.01306782*x(1)*x(3)+0.05532028*x(2)*x(3);end约束条件文件:function c,ceq=lab98con(x)c=1.15-1.0891*x(1)-1.2137*x(2)-1.2346*x(3);ceq=x(1)+x(2)+x(3)-1;end主程序:x0=0.1 0.1 0.1;v1=0 0 0;v2=1 1 1;x,fv,ef,out,lag,grad,hess=fmincon(lab98fun,x0,v1,v2,lab98con);运行结果为:x =0.5394 0.2928 0.167
13、8fv =0.0167所以选择投资A54%,B29%,C17%左右,可使方差最小,收益率的方差为1.67%。改变期望的年收益率,则可得到部分情况如下:期望年收益率投资组合收益率方差ABC10%90.55%6.91%2.54%1.04%11%84.09%10.74%5.17%1.06%12%76.58%15.22%8.2%1.13%13%69.05%19.77%11.18%1.25%14%61.53%24.31%14.16%1.43%15%53.94%29.28%16.78%1.67%20%16.37%51.58%32.05%3.64%22%1.32%60.67%38.01%4.8%22.5%0
14、45.93%54.07%5.36%23%022.01%77.99%6.96%23.46%00100%9.42%由表中数据所示,当期望年收益率低的时候,多投资A股一些可以减小风险。随着期望年收益率的不断增高,投资A股的份额不断减小,而B股和C股的份额在增大,同时风险也在增大,当期望年收益率更高时,B股的股份也下降,转而都投资C股,同时风险进一步加大。由此可以看出,高收益总是伴随着高风险。(2)问题的建模:只是要改变相应的约束条件。ED=1.05 DD=0投资的总期望收益变为Z1=x1EA+x2EB+x3EC=1.0891x1+1.2137x2+1.2346x3+1.05x4投资总收益的方差不变其
15、余约束条件变为x1+x2+x3+x4=1x1,x2,x3,x40根据问题要求,变为1.0891x1+1.2137x2+1.2346x3+1.05x41.15模型的求解:解为:x =0.2463 0.3268 0.1997 0.2272fv =0.0159因此,应投资的比例分别为A24.6%,B32.7%,C20%,D22.7%左右,收益率的方差为1.59%(3)问题的建模:需要改变收益的方程为Z1=x1EA+x2EB+x3EC=1.0891x1+1.2137x2+1.2346x3-0.01(0.5-x1+0.35-x2+0.15-x3)模型的求解:将收益的语句改为c=1.15-1.0891*x(1)-1.2137*x(2)-1.2346*x(3)+0.01*(abs(0.5-x(1)+abs(0.35-x(2)+abs(0.15-x(3);运行后可得x =0.5314 0.3187 0.1500fv =0.0169因此,应投资的比例分别为A53.14%,B31.87%,C15%,收益率的方差为1.69%也就是适当改变A,B的持股比例,C股不变即可(本题没有用quadprog语句求解,最终结果与课本答案有偏差)【精品文档】第 6 页
限制150内