资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数学建模,*,线性规划,数学建模与数学实验,后勤工程学院数学教研室,11/19/2024,数学建模,线性规划数学建模与数学实验后勤工程学院数学教研室9/22/,1,实验目的,实验内容,2、掌握用数学软件包求解线性规划问题。,1、了解线性规划的基本内容。,*2,、线性规划的基本算法。,5,、实验作业。,3,、用数学软件包求解线性规划问题。,1、两个引例。,4、建模案例:投资的收益与风险,11/19/2024,数学建模,实验目的实验内容2、掌握用数学软件包求解线性规划问题。1、了,2,问题一:,任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?,两个引例,11/19/2024,数学建模,问题一:任务分配问题:某车间有甲、乙两台机床,可用于,3,解,设在甲车床上加工工件1、2、3的数量分别为x,1,、x,2,、x,3,,在乙车床上加工工件1、2、3的数量分别为x,4,、x,5,、x,6,。可建立以下线性规划模型:,解答,11/19/2024,数学建模,解 设在甲车床上加工工件1、2、3的数量分别为x1、x,4,问题二:,某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?,解,设需要一级和二级检验员的人数分别为x,1,、x,2,人,则应付检验员的工资为:,因检验员错检而造成的损失为:,11/19/2024,数学建模,问题二:某厂每日8小时的产量不低于1800件。为了进行,5,故目标函数为:,约束条件为:,11/19/2024,数学建模,故目标函数为:约束条件为:9/22/2023数学建模,6,线性规划模型:,解答,返 回,11/19/2024,数学建模,线性规划模型:解答返 回9/22/2023数学建模,7,1.线性规划的标准形式:,用单纯法求解时,常将标准形式化为:,2.线性规划的基本算法单纯形法,线性规划的基本算法单纯形法,11/19/2024,数学建模,1.线性规划的标准形式:用单纯法求解时,常将标准形式化为:2,8,引入松弛变量,x,3,x,4,x,5,将不等式化为等式,即单纯形标准形:,显然,A,的秩,ran(A)=3,任取3个线性无关的列向量,如,P,3,P,4,P,5,称为,一组,基,记为,B.,其余列向量称为,非基,记为,N.,11/19/2024,数学建模,引入松弛变量x3,x4,x5,将不等式化为等式,即单,9,于是,f=c,B,x,B,+c,N,x,N,Ax=Bx,B,+Nx,N,=b,则,x,B,=B,-1,b-B,-1,Nx,N,f=c,B,B,-1,b+(c,N,c,B,B,-1,N)x,N,若可行基进一步满足:,c,N,c,B,B,-1,N0,即:,c,B,B,-1,N-c,N,0,则对一切可行解,x,必有,f(x)c,B,B,-1,b,此时称基可行解,x=(B,-1,b,0),T,为,最优解,.,3,.,最优解的存在性定理,将,A,的列向量重排次序成,A=(B,N),相应,x=(x,B,x,N,),T,c=(c,B,c,N,),基对应的变量,x,B,称为,基变量,非基对应的变量,x,N,称为,非基变量,.,定理1,如果线性规划(1)有可行解,那么一定有基可行解.,定理2,如果线性规划(1)有最优解,那么一定存在一个基可行解,是最优解.,11/19/2024,数学建模,于是 f=cBxB+cNxN,Ax=,10,4.基可行解是最优解的判定准则,因为,f=c,B,B,-1,b+(c,N,c,B,B,-1,N)x,N,,,即,f-0 x,B,+(c,B,B,-1,N-c,N,)x,N,=c,B,B,-1,b,11/19/2024,数学建模,4.基可行解是最优解的判定准则因为 f=cBB-1b,11,5.基可行解的改进,11/19/2024,数学建模,5.基可行解的改进9/22/2023数学建模,12,改进方法:,返 回,11/19/2024,数学建模,改进方法:返 回9/22/2023数学建模,13,用MATLAB优化工具箱解线性规划,min,z=cX,1、模型:,命令:,x=linprog(c,A,b),2、模型,:min,z=cX,命令:,x=linprog(c,A,b,Aeq,beq),注意:若没有不等式:存在,则令A=,b=.,11/19/2024,数学建模,用MATLAB优化工具箱解线性规划min z=cX,14,3、模型,:min,z=cX,VLBXVUB,命令:,1,x=linprog(c,A,b,Aeq,beq,VLB,VUB),2,x=linprog(c,A,b,Aeq,beq,VLB,VUB,X,0,),注意:1 若没有等式约束:,则令Aeq=,beq=.,2其中X,0,表示初始点,4、命令:,x,fval=linprog(),返回最优解及处的目标函数值fval.,11/19/2024,数学建模,3、模型:min z=cX VLBXVUB命令:,15,解 编写M文件xxgh1.m如下:,c=-0.4-0.28-0.32-0.72-0.64-0.6;,A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.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),To Matlab(xxgh1),11/19/2024,数学建模,解 编写M文件xxgh1.m如下:To Matlab(x,16,解:,编写M文件xxgh2.m如下:,c=6 3 4;,A=0 1 0;,b=50;,Aeq=1 1 1;,beq=120;,vlb=30,0,20;,vub=;,x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),To Matlab(xxgh2),11/19/2024,数学建模,解:编写M文件xxgh2.m如下:To Matlab,17,S.t.,改写为:,例3,问题一的解答,问题,11/19/2024,数学建模,S.t.改写为:例3 问题一的解答 问题9/22/202,18,编写M文件xxgh3.m如下:,f=13 9 10 11 12 8;,A=0.4 1.1 1 0 0 0,0 0 0 0.5 1.2 1.3;,b=800;900;,Aeq=1 0 0 1 0 0,0 1 0 0 1 0,0 0 1 0 0 1;,beq=400 600 500;,vlb=zeros(6,1);,vub=;,x,fval=linprog(f,A,b,Aeq,beq,vlb,vub),To Matlab(xxgh3),11/19/2024,数学建模,编写M文件xxgh3.m如下:To Matlab(xxg,19,结果:,x=,0.0000,600.0000,0.0000,400.0000,0.0000,500.0000,fval=1.3800e+004,即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。,11/19/2024,数学建模,结果:9/22/2023数学建模,20,例2,问题二的解答,问题,改写为:,11/19/2024,数学建模,例2 问题二的解答 问题改写为:9/22/2023数学建模,21,编写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),To Matlab(xxgh4),11/19/2024,数学建模,编写M文件xxgh4.m如下:To Matlab(xxg,22,结果为:,x=,9.0000,0.0000,fval=360,即只需聘用9个一级检验员。,注:,本问题应还有一个约束条件:x,1,、x,2,取整数。故它是一个,整数线性规划,问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数:x,1,=9,x,2,=0,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。,返 回,11/19/2024,数学建模,结果为:注:本问题应还有一个约束条件:x1、x2取整数。,23,投资的收益和风险,11/19/2024,数学建模,投资的收益和风险9/22/2023数学建模,24,二、基本假设和符号规定,11/19/2024,数学建模,二、基本假设和符号规定9/22/2023数学建模,25,三、模型的建立与分析,1.总体风险用所投资的S,i,中最大的一个风险来衡量,即max q,i,x,i,|i=1,2,n,4.模型简化:,11/19/2024,数学建模,三、模型的建立与分析1.总体风险用所投资的Si中最大的一个风,26,11/19/2024,数学建模,9/22/2023数学建模,27,四、模型1的求解,由于a是任意给定的风险度,到底怎样给定没有一个准则,不同的投资者有不同的风险度。我们从a=0开始,以步长,a=0.001进行循环搜索,编制程序如下:,11/19/2024,数学建模,四、模型1的求解,28,a=0;,while(1.1-a)1,c=-0.05-0.27-0.19-0.185-0.185;,Aeq=1 1.01 1.02 1.045 1.065;beq=1;,A=0 0.025 0 0 0;0 0 0.015 0 0;0 0 0 0.055 0;0 0 0 0 0.026;,b=a;a;a;a;,vlb=0,0,0,0,0;vub=;,x,val=linprog(c,A,b,Aeq,beq,vlb,vub);,a,x=x,Q=-val,plot(a,Q,.),axis(0 0.1 0 0.5),hold on,a=a+0.001;,end,xlabel(a),ylabel(Q),To Matlab(xxgh5),11/19/2024,数学建模,a=0;To Matlab(xxgh5)9/22/2023,29,计算结果:,11/19/2024,数学建模,计算结果:9/22/2023数学建模,30,五、结果分析,返 回,4,.在a=0.006附近有一个转折点,在这一点左边,风险增加很少时,利润增长,很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和,收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合,,大约是a,*,=0.6%,Q,*,=20%,所对应投资方案为:,风险度 收益 x,0,x,1,x,2,x,3,x,4,0.0060 0.2019 0 0.2400 0.4000 0.1091 0.2212,3.,曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最小风险。对于不同风险的承受能力,选择该风险水平下的最优投资组合。,2,.当投资越分散时,投资者承担的风险越小,这与题意一致。即:,冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。,1.,风险大,收益也大。,11/19/2024,数学建模,五、结果分析返 回4.
展开阅读全文