您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 数学实验——线性规划
数学实验报告实验5线性规划1实验5线性规划分1黄浩2011011743一、实验目的1.掌握用MATLAB工具箱求解线性规划的方法2.练习建立实际问题的线性规划模型二、实验内容1.《数学实验》第二版(问题6)问题叙述:某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如下表所示。按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税。此外还有如下限制:(1).政府及代办机构的证券总共至少要购进400万元;(2).所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程度越高);(3).所购证券的平均到期年限不超过5年证券名称证券种类信用等级到期年限/年到期税前收益/%A市政294.3B代办机构2155.4C政府145.0D政府134.4E市政524.5I.若该经理有1000万元资金,该如何投资?II.如果能够以2.75%的利率借到不超过100万元资金,该经理应如何操作?III.在1000万元资金情况下,若证券A的税前收益增加为4.5%,投资应否改变?若证券C的税前收益减少为4.8%,投资应否改变?模型转换及实验过程:I.数学实验报告实验5线性规划2设经理对于上述五种证券A、B、C、D、E的投资额分别为:x1、x2、x3、x4、x5(万元),全部到期后的总收益为z万元。由题目中的已知条件,可以列出约束条件为:{x2+x3+x4≥4002x1+2x2+x3+x4+5x5≤1.4(x1+x2+x3+x4+x5)9x1+15x2+4x3+3x4+2x5≤5(x1+x2+x3+x4+x5)x1+x2+x3+x4+x5≤1000}而决策变量x=(x1,x2,x3,x4,x5)𝑇的上下界约束为:xi∈[0,1000]目标函数z=0.043x1+0.027x2+0.025x3+0.022x4+0.045x5将上述条件转变为matlab的要求形式:min−z=−0.043x1−0.027x2−0.025x3−0.022x4−0.045x5s.t.{−x2−x3−x4≤−4000.6x1+0.6x2−0.4x3−0.4x4+3.6x5≤04x1+10x2−x3−2x4−3x5≤0x1+x2+x3+x4+x5≤1000,0≤𝑥𝑖≤1000使用matlab解上述的线性规划问题(程序见四.1),并整理成表格:名称证券A证券B证券C证券D证券E总收益金额(万元)218.180736.36045.4529.836得出结论:当经理对A、B、C、D、E五种证券分别投资218.18、0、736.36、0、45.45万元时,在全部收回时可得到29.836万元的税后收益,而且这种投资方式所得收益是最大的。讨论:尝试输出该约束条件下的拉格朗日乘子:λ=(0,0.00618,0.00236,0.02984)𝑇该乘子表示,第一个约束条件对目标函数的取值不起作用,而剩余三个约束条件取严格等号的时候,目标函数达到最优解。下面验证之:数学实验报告实验5线性规划3由解得的x值,代入四个约束条件中,得:{−x2−x3−x4=−736.36≪−4000.6x1+0.6x2−0.4x3−0.4x4+3.6x5=0.016≈04x1+10x2−x3−2x4−3x5=0.01≈0x1+x2+x3+x4+x5=999.99≈1000}因为决策变量x的取值经过了四舍五入,因而后三个约束条件最终是“约等于”,但已经十分接近,若使用更高精度的x,则该三式是可以严格等于的。以上便从实验角度证明了拉格朗日乘子的其中一条数学意义——非零分量对应于起作用的约束,且这些约束取严格等于的时候,目标函数达到最优解。II.若能以2.75%的利率借到不超过100万元资金,那么还可以将这部分资金进行证券投资,设借款金额为𝑥6,则线性规划条件改为:min−100z=−4.3x1−2.7x2−2.5x3−2.2x4−4.5x5+2.75𝑥6s.t.{−x2−x3−x4≤−4000.6x1+0.6x2−0.4x3−0.4x4+3.6x5≤04x1+10x2−x3−2x4−3x5≤0x1+x2+x3+x4+x5−𝑥6≤11000≤𝑥𝑖≤1100,(i=1,2,3,4,5)0≤𝑥6≤100使用matlab求解(程序见四.2)并整理成表格:名称证券A证券B证券C证券D证券E借款额总收益金额(万元)240081005010030.07得出结论:当经理在以2.75%的利率借款100万元后,且对A、B、C、D、E五种证券分别投资240、0、810、0、50万元时,在全部收回投资时可得到30.07万元的税后收益,而且这种投资方式所得收益是最大的。讨论:本小题中借款的利率2.75%设为了与借款时间无关的量,即无论借多长时间,最终只需多缴纳0.0275倍借款额的利息,这显然是与实际不符的。在这种情况数学实验报告实验5线性规划4下,借款额𝑥6的数值显然是100(万元),因为其他五种证券的收益率都高于贷款利率(也可看做负的收益率),借款越多,其他高收益证券就可以有更多本金,收益就越大,因而该情况下,借款多多益善。而实际情况下,贷款利率是按年计算的,在这种情况下,还需要考虑还款时间。III.若证券A的税前收益增加为4.5%,则目标函数变为:z=0.045x1+0.027x2+0.025x3+0.022x4+0.045x5使用matlab解上述线性规划问题(程序见四.3),并整理成表格:名称证券A证券B证券C证券D证券E总收益金额(万元)218.180736.36045.4530.273因此,证券A的税前收益增加为4.5%时,投资方式不需改变,而总收益提高为30.273万元同样,若证券C的税前收益减少为4.8%,则目标函数变为:z=0.043x1+0.027x2+0.024x3+0.022x4+0.045x5使用matlab解上述线性规划问题(程序见四.4),并整理成表格:名称证券A证券B证券C证券D证券E总收益金额(万元)336006481629.424因此,当证券C的税前收益减少为4.8%时,投资方式发生了很大改变,证券A和E有少量的变化,证券C被完全舍弃,原C的资金大部分改投证券D,而总收益也由29.836万元下降为29.424万元。得出结论:若证券A的税前收益增加为4.5%,投资不需改变。总收益增加为30.273万元。而若证券C的税前收益减少为4.8%,投资需要发生改变,五个证券的投资额相应变为336、0、0、648、16万元。总收益下降为29.424万元。2.《数学实验》第二版(问题8)问题叙述:数学实验报告实验5线性规划5某牧场主知道,对于一匹平均年龄的马来说,最低的营养需求为:40磅蛋白质,20磅碳水化合物,45磅粗饲料。这些营养成分是从不同饲料中得到的,饲料及其价格在下表中列出。建立数学模型,确定如何以最低的成本满足最低的营养需求。蛋白质/磅碳水化合物/磅粗饲料/磅价格/美元干草/捆0.5251.8燕麦片/袋1423.5饲料块/块20.510.4高蛋白浓缩料/袋612.51每匹马的需求/天402045---模型转换及实验过程:设牧场主对于每一匹马的供给量为:x1捆干草,x2袋燕麦片,x3块饲料块,x4袋高蛋白浓缩料。每匹马耗费资金z美元。则可列出约束条件为:{0.5x1+x2+2x3+6x4≥402x1+4x2+0.5x3+x4≥205x1+2x2+x3+2.5x4≥45}而决策变量x=(x1,x2,x3,x4)𝑇,𝑥𝑖≥0目标函数:z=1.8x1+3.5x2+0.4x3+x4改换成matlab的要求格式:min𝑧=1.8x1+3.5x2+0.4x3+x4s.t.{−0.5x1−x2−2x3−6x4≤−40−2x1−4x2−0.5x3−x4≤−20−5x1−2x2−x3−2.5x4≤−45𝑥𝑖≥0使用matlab解上述的线性规划问题(程序见四.5),结果整理成表格:项目干草/捆燕麦片/袋饲料块/块高蛋白浓缩料/袋资金/美元数学实验报告实验5线性规划6数量5020017得出结论:当牧场主给每匹马配备5捆干草、20块饲料块时,能以每匹马17美元的最低的成本满足最低的营养需求。讨论:与第一题类似,尝试输出该约束条件下的拉格朗日乘子:λ=(0,0.4,0.2)𝑇这说明,蛋白质的需求量不是有效约束条件,而碳水化合物和粗饲料的需求是有效约束条件,二者在严格等于的时候才会出现最优解。下面再证明拉格朗日乘子的另一个数学意义:影子价格,λ表示对应约束的右端项增加一个单位时,目标函数的增加量(最大化问题)或减少量(最小化问题)。分别对一匹马的蛋白质、碳水化合物、粗饲料需求量加1,使用matlab求解这三种线性规划,得目标函数的最优解如下:𝑧1=17z2=17.4𝑧3=17.287可见,𝑧1没有变化,验证了蛋白质的需求量不是有效约束条件这一性质,z2的增量为𝜆2=0.4,也验证了影子价格的性质。但奇怪的是,𝑧3却没有按照预期增加0.2,而是增加了0.287个单位。再将粗饲料的增值设为0.1,其他增值设为0,重复实验,得𝑧3=17.02,即目标函数的增量为0.1∗𝜆2,符合预期。然而为什么当增值设为1时,便得不到预期的目标函数的增量了呢?因为拉格朗日乘子仅在一定范围内,代表影子价格,即λ=𝑑𝑧𝑑𝑏,当约束条件的改变达到一定程度后,拉格朗日乘子便不再表示正确的影子价格了。而在matlab中,无法调用函数操作来输出拉格朗日乘子的使用范围,只有在LINGO或LINDO中才能给出。三、实验总结数学实验报告实验5线性规划7本次实验是求解两个实际的线性规划问题,相对于之前的实验,本次的内容较少,操作也很简单。除了需要注意一下matlab对于线性规划问题的标准格式,搞清楚min和max的区别、大于与小于的区别之外,没有其他易错点。相对于这两道题的实际情景,我在本次实验中更关心拉格朗日乘子这个数学概念的深层意义。通过附加的实验,我证明了拉格朗日乘子的两条数学含义,它的零分量对应于不起作用的约束,且为严格不等式约束,非零分量对应于起作用的约束,且为严格等式约束,且分量数值代表约束右端项改变一个单位时,目标函数的改变量,即影子价格。当然,拉格朗日乘子也有一定的使用范围,当约束右端项改变达到一定程度,使得各个约束之间的优劣关系发生改变时,原条件下的拉格朗日乘子便不能代表当前的影子价格了。四、程序清单1.第一题小问c=[-0.043,-0.027,-0.025,-0.022,-0.045];A1=[0,-1,-1,-1,0;0.6,0.6,-0.4,-0.4,3.6;4,10,-1,-2,-3;1,1,1,1,1];b1=[-400;0;0;1000];v1=[0,0,0,0,0];v2=[1000,1000,1000,1000,1000];opt=optimset('largescale','off','simplex','on');[x,fv,ef,out,lambda]=linprog(c,A1,b1,[],[],v1,v2,[],opt)2.第一题II小问c=[-0.043,-0.027,-0.025,-0.022,-0.045,0.0275];A1=[0,-1,-1,-1,0,0;0.6,0.6,-0.4,-0.4,3.6,0;4,10,-1,-2,-3,0;1,1,1,1,1,-1];b1=[-400;0;0;1000];v1=[0,0,0,0,0,0];v2=[1100,1100,1100,1100,1100,100];opt=optimset('largescale','off','simplex','on');[x,fv,ef,out,lambda]=linprog(c,A1,b1,[],[],v1,v2,[],opt)3.第一题III小问——A的税前收益增加为4.5%c=[-0.045,-0.027,-0.025,-0.022,-0.045];A1=[0,-1,-1,-1,0;0.6,0.6,-0.4,-0.4,3.6;4,10,-
本文标题:数学实验——线性规划
链接地址:https://www.777doc.com/doc-4363389 .html