资源描述:
《matlab的线性规划问题的敏感性分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB的线性规划问题的敏感性分析一.问题的提出在现在的日常生活中,我们常会遇到这样的问题,在不同的约束条件下找出最优点值或算出最佳的数值,以提高总产量或经济效益。那么我们就需要假设一个模型出来,作为基本模型求解。并找出其内在的规律以方便我们的生产生活的需要。若约束条件改变,那么总产值是否也会有很大变化呢?让我们一起来研究。二.具体案例如下:以某农场A,B,C等级耕地的面积分别为100,300,和200,计划种植水稻,大豆和玉米,要求三种农作物最低收获量分别为190000,130000和350000。农场A,B,C耕地种植农作物产量如下表所示。若三种农作
2、物售价分别为水稻1.20元/,大豆1.5元/,玉米0.8元/,。那么,(1)如何制定种植计划才能使总产量最大?(2)如何制定种植计划才能使总产值最大?表一:不同等级种植不同农作物的单产量(单位:)A等级耕地B等级耕地B等级耕地水稻1100095009000大豆800068006000玉米140001200010000三.问题假设根据题意,可以建立线性规划模型,假设决策变量为,表示不同的农作物在第等级耕地上种植的面积。表2作物计划种植面积(单位:)A等级耕地B等级耕地B等级耕地水稻大豆8玉米一.模型建立与分析1.模型:minz=cXS.t.AX命令:x=lin
3、prog(c,A,b)2.模型:minz=cXS.t.AXAeq.X=beq命令:x=linprog(c,A,b,Aeq,beq)注意:若没有不等式:AX存在,则令A=[],b=[].3.[x,fval]=linprog(.....)左端fval返回解X处的目标函数值。4.思路分析:找出约束条件——列出目标函数——作出可行域——求出最优解——敏感性分析——回答实际问题。5.约束方程如下:耕地面积的约束:最低收获量的约束:并且注意:则(1)追求总产量最大时,目标函数为:(2)追求总产值最大的目标函数为:可化简为五.模型建立与求解:1.对(1)求解,追求总产量最
4、大时,MATLAB程序如下:8f=[-11000-9500-9000-8000-6800-6000-14000-12000-10000];A=[100100100;010010010;001001001;-1100000-950000-900000;0-800000-680000-60000;00-1400000-1200000-10000];b=[100300200-190000-130000-350000];lb=[000000000];[xoptfxopt]=linprog(f,A,b,[],[],lb,[])Optimizationterminate
5、dsuccessfully.xopt=0.00000.00000.00000.00000.00000.0000100.0000300.0000200.0000fxopt=-7000000键入S=-Z得到原问题的目标函数最大值为S=70000002.运行后敏感性分析后的MATLAB程序如下:从a=0开始,以步长对下列模型求解;a=0;while(1.1-a)>1c=[-11000-9500-9000-8000-6800-6000-14000-12000-10000];A=[100100100;010010010;001001001;-1100000-95000
6、0-900000;0-800000-680000-60000;00-1400000-1200000-10000];b=[100+a;300+a;200+a;-190000+a;-130000+a;-350000+a];Aeq=[];beq=[];vlb=[0,0,0,0,0,0,0,0,0];vub=[];[x,val]=linprog(c,A,b,Aeq,beq,vlb,vub);ax=x'Q=-valplot(a,Q,'.'),holdona=a+0.01;endxlabel('a'),ylabel('Q')gridOptimizationtermina
7、tedsuccessfully.a=0x=0000001003002008Q=7000000分析整理后结果对比如下:a=0x=000000100300200Q=7000000a=0.01x=000000100.01300.01200.01Q=7000360a=0.02x=000000100.02300.02200.02Q=7000720a=0.03x=000000100.03300.03200.03Q=7.0011e+006a=0.04x=000000100.04300.04200.04Q=7.0014e+006a=0.05x=000000100.05300
8、.05200.05Q=7.0018e+006a=0.