MATLAB的线性规划问题的敏感性分析.doc_第1页
MATLAB的线性规划问题的敏感性分析.doc_第2页
MATLAB的线性规划问题的敏感性分析.doc_第3页
MATLAB的线性规划问题的敏感性分析.doc_第4页
MATLAB的线性规划问题的敏感性分析.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB的线性规划问题的敏感性分析1 问题的提出 在现在的日常生活中,我们常会遇到这样的问题,在不同的约束条件下找出最优点值或算出最佳的数值,以提高总产量或经济效益。那么我们就需要假设一个模型出来,作为基本模型求解。并找出其内在的规律以方便我们的生产生活的需要。若约束条件改变,那么总产值是否也会有很大变化呢?让我们一起来研究。2 具体案例如下:以某农场A,B ,C 等级耕地的面积分别为100,300,和200,计划种植水稻,大豆和玉米,要求三种农作物最低收获量分别为190000,130000和350000。农场A,B ,C 耕地种植农作物产量如下表所示。若三种农作物售价分别为水稻1.20元/,大豆1.5元/,玉米0.8元/,。那么,(1)如何制定种植计划才能使总产量最大?(2)如何制定种植计划才能使总产值最大?表一:不同等级种植不同农作物的单产量(单位:)A等级耕地B等级耕地B等级耕地水稻1100095009000大豆800068006000玉米1400012000100003 问题假设 根据题意,可以建立线性规划模型,假设决策变量为,表示不同的农作物在第等级耕地上种植的面积。表2 作物计划种植面积(单位:)A等级耕地B等级耕地B等级耕地水稻大豆玉米4 模型建立与分析1. 模型:min z=cXS.t. AX命令:x=linprog(c,A,b)2. 模型:min z=cXS.t. AX Aeq.X=beq命令:x=linprog(c,A,b,Aeq,beq)注意:若没有不等式:AX存在,则令A=,b=.3. x,fval=linprog(.)左端fval返回解X处的目标函数值。4.思路分析:找出约束条件列出目标函数作出可行域求出最优解敏感性分析回答实际问题。5.约束方程如下:耕地面积的约束:最低收获量的约束:并且注意: 则(1)追求总产量最大时,目标函数为:(2) 追求总产值最大的目标函数为:可化简为五模型建立与求解:1.对(1)求解,追求总产量最大时,MATLAB程序如下:f=-11000 -9500 -9000 -8000 -6800 -6000 -14000 -12000 -10000;A=1 0 0 1 0 0 1 0 0 ;0 1 0 0 1 0 0 1 0;0 0 1 0 0 1 0 0 1;-11000 0 0 -9500 0 0 -9000 0 0; 0 -8000 0 0 -6800 0 0 -6000 0; 0 0 -14000 0 0 -12000 0 0 -10000;b=100 300 200 -190000 -130000 -350000;lb=0 0 0 0 0 0 0 0 0;xopt fxopt=linprog(f,A,b,lb,)Optimization terminated successfully.xopt = 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 100.0000 300.0000 200.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=1 0 0 1 0 0 1 0 0 ;0 1 0 0 1 0 0 1 0;0 0 1 0 0 1 0 0 1;-11000 0 0 -9500 0 0 -9000 0 0; 0 -8000 0 0 -6800 0 0 -6000 0; 0 0 -14000 0 0 -12000 0 0 -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); a x=x Q=-val plot(a,Q,.),hold on a=a+0.01;endxlabel(a),ylabel(Q) gridOptimization terminated successfully.a =0 x = 0 0 0 0 0 0 100 300 200Q =7000000分析整理后结果对比如下:a =0 x = 0 0 0 0 0 0 100 300 200 Q = 7000000a =0.01 x =0 0 0 0 0 0 100.01 300.01 200.01 Q =7000360a =0.02 x =0 0 0 0 0 0 100.02 300.02 200.02 Q =7000720a =0.03 x =0 0 0 0 0 0 100.03 300.03 200.03 Q =7.0011e+006a =0.04 x =0 0 0 0 0 0 100.04 300.04 200.04 Q =7.0014e+006a =0.05 x = 0 0 0 0 0 0 100.05 300.05 200.05 Q =7.0018e+006a =0.06 x =0 0 0 0 0 0 100.06 300.06 200.06 Q =7.0022e+006a =0.07 x = 0 0 0 0 0 0 100.07 300.07 200.07 Q =7.0025e+006 a =0.08 x =0 0 0 0 0 0 100.08 300.08 200.08 Q =7002880a =0.09 x =0 0 0 0 0 0 100.09 300.09 200.09 Q =7.0032e+006如果不好观测,还可以将a细分为,程序基本不变,只需改变a的步长即可,则运行后图像如下:观察图像后,最优值随a的参加变化不明显,但总在6.88e+6到6.9e+6与7e+6到7.02e+6两个区间内缓慢增长。3.对(2)求解:追求总产值最大的MATLAB程序为:f=-13200 -11400 -10800 -12000 -10200 -9000 -11200 -9600 -8000;A=1 0 0 1 0 0 1 0 0 ;0 1 0 0 1 0 0 1 0;0 0 1 0 0 1 0 0 1;-11000 0 0 -9500 0 0 -9000 0 0; 0 -8000 0 0 -6800 0 0 -6000 0; 0 0 -14000 0 0 -12000 0 0 -10000;b=100 300 200 -190000 -130000 -350000;lb=0 0 0 0 0 0 0 0 0;xopt fxopt=linprog(f,A,b,lb,)Optimization terminated successfully.xopt = 100.0000 300.0000 200.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000fxopt = -6.9000e+006键入S=-Z运行后得到原问题的目标函数最大值为S=6.9000e+006 4.敏感性分析后的MATLAB程序如下:从a=0开始,以步长对下列模型求解;a=0; while(1.1-a)1c=-13200 -11400 -10800 -12000 -10200 -9000 -11200 -9600 -8000;A=1 0 0 1 0 0 1 0 0 ;0 1 0 0 1 0 0 1 0;0 0 1 0 0 1 0 0 1;-11000 0 0 -9500 0 0 -9000 0 0; 0 -8000 0 0 -6800 0 0 -6000 0; 0 0 -14000 0 0 -12000 0 0 -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); a x=x Q=-val plot(a,Q,.),hold on a=a+0.01;endxlabel(a),ylabel(Q) Grid分析整理后结果对比如下:a=0 x =100 300 200 0 0 0 0 0 0 Q =6.9000e+006a=0.01 x = 100.01 300.01 200.01 0 0 0 0 0 0 Q =6.9004e+006a=0.02 x =100.02 300.02 200.02 0 0 0 0 0 0 Q =6.9007e+006a=0.03 x =100.03 300.03 200.03 0 0 0 0 0 0 Q =6.9011e+006a=0.04 x =100.04 300.04 200.04 0 0 0 0 0 0 Q =6.9014e+006a=0.05 x =100.05 300.05 200.05 0 0 0 0 0 0 Q =6.9018e+006a=0.06 x =100.06 300.06 200.06 0 0 0 0 0 0 Q =6.9021e+006a=0.07 x =100.07 300.07 200.07 0 0 0 0 0 0 Q = 6.9025e+006a=0.08 x =100.08 300.08 200.08 0 0 0 0 0 0 Q =6.9028e+006a=0.09 x =100.09 300.09 200.09 0 0 0 0 0 0 Q = 6.9032e+006 由上图可看出总产值与敏感系数a成正比例关系。六符号约定(1)Q为总体收益(2)A为不等式2约束的系数矩阵(3)b是相应的常量,若无不等式约束,则均用代替;(3)Aeq是等式的约束的系数矩阵,beq是相应的常数列向量,如无约束,则用代替;(4)fval是最优值;(5)a为敏感变量进行循环。七结果分析:1. 敏感系数a对总产量最优值的影响不大。2. 农场A,B ,C 等级耕地的面积越大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论