MATLAB的线性规划问题的敏感性分析.doc

上传人:b****9 文档编号:95933 上传时间:2022-10-02 格式:DOC 页数:8 大小:201.21KB
下载 相关 举报
MATLAB的线性规划问题的敏感性分析.doc_第1页
第1页 / 共8页
MATLAB的线性规划问题的敏感性分析.doc_第2页
第2页 / 共8页
MATLAB的线性规划问题的敏感性分析.doc_第3页
第3页 / 共8页
MATLAB的线性规划问题的敏感性分析.doc_第4页
第4页 / 共8页
MATLAB的线性规划问题的敏感性分析.doc_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

MATLAB的线性规划问题的敏感性分析.doc

《MATLAB的线性规划问题的敏感性分析.doc》由会员分享,可在线阅读,更多相关《MATLAB的线性规划问题的敏感性分析.doc(8页珍藏版)》请在冰豆网上搜索。

MATLAB的线性规划问题的敏感性分析.doc

MATLAB的线性规划问题的敏感性分析

一.问题的提出

在现在的日常生活中,我们常会遇到这样的问题,在不同的约束条件下找出最优点值或算出最佳的数值,以提高总产量或经济效益。

那么我们就需要假设一个模型出来,作为基本模型求解。

并找出其内在的规律以方便我们的生产生活的需要。

若约束条件改变,那么总产值是否也会有很大变化呢?

让我们一起来研究。

二.具体案例如下:

以某农场A,B,C等级耕地的面积分别为100,300,和200,计划种植水稻,大豆和玉米,要求三种农作物最低收获量分别为190000,130000和350000。

农场A,B,C耕地种植农作物产量如下表所示。

若三种农作物售价分别为水稻1.20元/,大豆1.5元/,玉米0.8元/,。

那么,

(1)如何制定种植计划才能使总产量最大?

(2)如何制定种植计划才能使总产值最大?

表一:

不同等级种植不同农作物的单产量(单位:

A等级耕地

B等级耕地

B等级耕地

水稻

11000

9500

9000

大豆

8000

6800

6000

玉米

14000

12000

10000

三.问题假设

根据题意,可以建立线性规划模型,假设决策变量为,表示不同的农作物在第等级耕地上种植的面积。

表2作物计划种植面积(单位:

A等级耕地

B等级耕地

B等级耕地

水稻

大豆

玉米

四.模型建立与分析

1.模型:

minz=cX

S.t.AX

命令:

x=linprog(c,A,b)

2.模型:

minz=cX

S.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=[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,[])

Optimizationterminatedsuccessfully.

xopt=

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

100.0000

300.0000

200.0000

fxopt=-7000000

键入S=-Z

得到原问题的目标函数最大值为S=7000000

2.运行后敏感性分析后的MATLAB程序如下:

从a=0开始,以步长对下列模型求解;

a=0;

while(1.1-a)>1

c=[-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=[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,'.'),holdon

a=a+0.01;

end

xlabel('a'),ylabel('Q')

grid

Optimizationterminatedsuccessfully.

a=0x=000000100300200

Q=7000000

分析整理后结果对比如下:

a=0x=000000100300200Q=7000000

a=0.01x=000000100.01300.01200.01Q=7000360

a=0.02x=000000100.02300.02200.02Q=7000720

a=0.03x=000000100.03300.03200.03Q=7.0011e+006

a=0.04x=000000100.04300.04200.04Q=7.0014e+006

a=0.05x=000000100.05300.05200.05Q=7.0018e+006

a=0.06x=000000100.06300.06200.06Q=7.0022e+006

a=0.07x=000000100.07300.07200.07Q=7.0025e+006

a=0.08x=000000100.08300.08200.08Q=7002880

a=0.09x=000000100.09300.09200.09Q=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=[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,[])

Optimizationterminatedsuccessfully.

xopt=

100.0000

300.0000

200.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

fxopt=

-6.9000e+006

键入S=-Z

运行后得到原问题的目标函数最大值为S=6.9000e+006

4.敏感性分析后的MATLAB程序如下:

从a=0开始,以步长对下列模型求解;

a=0;

while(1.1-a)>1

c=[-13200-11400-10800-12000-10200-9000-11200-9600-8000];

A=[100100100;010010010;001001001;-1100000-950000-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);

a

x=x'

Q=-val

plot(a,Q,'.'),holdon

a=a+0.01;

end

xlabel('a'),ylabel('Q')

Grid

分析整理后结果对比如下:

a=0x=100300200000000Q=6.9000e+006

a=0.01x=100.01300.01200.01000000Q=6.9004e+006

a=0.02x=100.02300.02200.02000000Q=6.9007e+006

a=0.03x=100.03300.03200.03000000Q=6.9011e+006

a=0.04x=100.04300.04200.04000000Q=6.9014e+006

a=0.05x=100.05300.05200.05000000Q=6.9018e+006

a=0.06x=100.06300.06200.06000000Q=6.9021e+006

a=0.07x=100.07300.07200.07000000Q=6.9025e+006

a=0.08x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1