数学实验报告利用MALTAB进行线性规划Word下载.docx

上传人:b****3 文档编号:17689926 上传时间:2022-12-08 格式:DOCX 页数:12 大小:66.08KB
下载 相关 举报
数学实验报告利用MALTAB进行线性规划Word下载.docx_第1页
第1页 / 共12页
数学实验报告利用MALTAB进行线性规划Word下载.docx_第2页
第2页 / 共12页
数学实验报告利用MALTAB进行线性规划Word下载.docx_第3页
第3页 / 共12页
数学实验报告利用MALTAB进行线性规划Word下载.docx_第4页
第4页 / 共12页
数学实验报告利用MALTAB进行线性规划Word下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数学实验报告利用MALTAB进行线性规划Word下载.docx

《数学实验报告利用MALTAB进行线性规划Word下载.docx》由会员分享,可在线阅读,更多相关《数学实验报告利用MALTAB进行线性规划Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

数学实验报告利用MALTAB进行线性规划Word下载.docx

[x,f,exitflag,output,lag]=linprog(c,A,b,[],[],[],[],[],opt1);

(2)有效集方法

opt2=optimset(’largescale’,’off’);

[x,f,exitflag,output,lag]=linprog(c,A,b,[],[],[],[],[],opt2);

(3)单纯形算法

opt3=optimset(’largescale’,’off’,’simplex’,’on’);

[x,f,exitflag,output,lag]=linprog(c,A,b,[],[],[],[],[],opt3);

㈣结果与分析

1、第一问:

 

最优解

最优目标值

平均

迭代

次数

平均使用

时间

内点

218.181818

8.45E-09

736.363636

2.29E-08

45.4545455

-29.8363636352

6

0.01020192

有效集

-8.81E-16

-29.8363636364

5

0.004822365

单纯形

4

0.009097038

使用三种方法进行计算,得到结果对比如下:

结果为:

应购买A种证券218.18万元、B种证券0元、C种证券736.36万元、D种证券0元、E种证券45.45万元;

最终得到的收益约为29.8364万元。

通过对比可以发现以下几点结论:

(1)三种算法所得的计算结果基本一致,各种算法计算得到的目标值仅在小数点后第10位才有所区别;

(2)三种算法得到的最优解略有区别,其中内点算法没有得出第2、4项为0的结论(虽然已很接近),这也许只是因为计算精度的问题,但也有可能是算法本身的原因;

(3)迭代次数上,内点算法

但是值得注意的是,这里的问题仅仅是一个n=5的小规模规划的例子,不能以此得出“大规模算法比中、小规模算法需要更多次迭代“的结论;

(4)使用时间上,这里对三种算法分别进行了100次调用,计算得到平均使用时间。

从表格可以看出使用时间上内点算法

当然,这个结论在未进行进一步的实验前也不能推广

2、第二问

继续采用三种算法,计算结果如下:

229.1

1.74E-07

739.3996

8.11E-06

31.52

1.09E+01

1.73E-07

7.06E+01

5.39E-06

18.478886

240

-5.32E-15

710

50

-1.36E-14

-6.71E-16

100

-8.52E-15

将所得的最优解根据债券类型进行合并,即计算a+a1,b+b1,c+c1,d+d1,e+e1,记录如下:

平均使用时间

240.00

0.00

810.00

50.00

-30.0699999606

7

0.011674

-30.0700000000

10

0.008759

0.010294

结果为:

应购买A种证券240万元、B种证券0元、C种证券810万元、D种证券0元、E种证券50万元;

最终得到的收益约为30.07万元。

观察表格可以发现一个有意思的现象,即通过内点算法计算得到的结果与使用有效集或单纯形算法得到的结果,虽然最终结论一样,但是在如何分配使用已有资金和贷款资金上并不相同。

产生这种现象是因为该线性规划存在不止一个最优解,即目标函数的最大值对应的不是一个点。

本次实验的结果出现了两个最优解,这意味着最优解至少是一条线。

其实从实际意义上也很好理解,题目中已有资金和贷款资金唯一的区别就是贷款资金需要交利息,而这一点在规划方程组中仅体现在目标函数中,也就是说它们在其它约束上是没有区别的,即a与a1相同,b与b1相同等等。

这样也就不难理解实验过程中出现了不止一个最优解的现象。

通过对比还可以得到以下几点结论:

(1)本例中迭代次数上

内点算法

(2)使用时间上内点算法

(3)有效集算法得到的最优解与单纯形算法得到的最优解仍略有区别,其中有效集算法没有得出第2、4项为0的结论(虽然已很接近),猜测这是算法本身的原因。

3、第三问

前面已经对三种算法进行了对比和分析,本小问不再继续采用三种算法,仅选用最经典的单纯形算法。

改变规划进行计算:

①A证券税前收益增加

结果如下:

迭代次数

218.1818

736.3636

45.45455

-30.27272727

4

可以看出投资方案不应改变。

但是由于个别证券收益有所提升,所以最优目标值有所“提高”。

②C证券税前收益减少

336

648

16

-29.424

3

可以看出,投资方案有所改变,而且投资组合也出现了改变,说明基解发生了变化。

由于个别证券收益有所下降,所以最优目标值“下降”理所当然。

4、总结

(1)单纯形、有效集、内点算法都能简单有效地解决线性规划基本问题。

对于小规模线性规划而言,有效集算法效率更高,单纯性算法结果更为可靠。

(2)理论上,通过分析单纯形表格法求解过程的最终表格,可以得到严格的敏感性分析结论,但是由于本题计算较为繁琐,我没有使用表格法进行计算。

观察Lagrange乘子可以在敏感性分析上得出一些基本的结论,但是无法解决目标函数变化的情况。

 

㈤程序清单

1、第一问

clear;

clc;

c=-[4.3e-22.7e-22.5e-22.2e-24.5e-2];

A=[0-1-1-10;

0.60.6-0.4-0.43.6;

410-1-2-3;

11111];

b=[-400,0,0,1000];

v1=[00000];

opt1=optimset('

largescale'

'

on'

);

tic;

fori=1:

[x1,f1,exitflag1,output1,lag1]=linprog(c,A,b,[],[],v1,[],[],opt1);

end

time1=toc;

time1=time1/100;

opt2=optimset('

off'

i=0;

[x2,f2,exitflag2,output2,lag2]=linprog(c,A,b,[],[],v1,[],[],opt2);

time2=toc;

time2=time2/100;

opt3=optimset('

simplex'

[x3,f3,exitflag3,output3,lag3]=linprog(c,A,b,[],[],v1,[],[],opt3);

time3=toc;

time3=time3/100;

2、第二问的线性规划

c=-[4.3e-22.7e-22.5e-22.2e-24.5e-24.3e-2-2.75e-22.7e-2-2.75e-22.5e-2-2.75e-22.2e-2-2.75e-24.5e-2-2.75e-2];

A=[0-1-1-100-1-1-10;

0.60.6-0.4-0.43.60.60.6-0.4-0.43.6;

410-1-2-3410-1-2-3;

1111100000;

0000011111];

b=[-400,0,0,1000,100];

v1=[0000000000];

3、第三问的线性规划

(1)A改变

c=-[4.5e-22.7e-22.5e-22.2e-24.5e-2];

[x3,f3,exitflag3,output3,lag3]=linprog(c,A,b,[],[],v1,[],[],opt3);

(2)C改变

c=-[4.3e-22.7e-22.4e-22.2e-24.5e-2];

二、牧马

给定养马所需的最低营养需求、各种饲料中各种营养的含量以及各种饲料的价格,确定如何以最低的成本满足最低的营养需求。

这仍旧是一个比较简单的线性规划问题。

假设分别购买干草、燕麦片、饲料块、高蛋白浓缩料a,b,c,d个单位。

由题意有:

解此线性规划即可。

为继续第一题的探究,仍旧使用三种算法进行解题。

最后作为探究,通过lagrange乘子做出大致的敏感性分析,并写出其对偶问题并求解。

1、解题

通过计算,得到如下结果

1.42E-13

20

1.66E-12

17

0.013959495

0.00425513

2

0.008455142

应购买干草5捆,饲料块20块。

总价格为17美元。

简要对比分析如下:

(1)平均迭代次数上,

(2)平均时间上,

(3)最优解中,内点算法仍旧没有计算得出0。

2、敏感性分析

单纯性算法的Lagrange乘子如下:

从ineqlin可以看出,第一项约束不是有效约束。

通过计算可以发现,当最优解取[5,0,20,0]时,蛋白质含量为45磅,超过了需求,证实这不是有效约束。

这说明,当各种饲料的蛋白质含量在某一范围内变化时,最优解以及目标函数值并不会变化。

3、对偶问题及其解

实验结果如下(这里仅选用单纯形法):

最优目标值(-f)

0.4

0.2

-17

可以看到,最优目标值为17,与原问题最优解一致。

这就是线性规划中的强对偶定理。

由于问题比较难以理解,这里没有得出有关其现实意义的结论。

这道题比较简单,计算过程中没有太多问题。

第一部分有关三种算法的对比与第一道题得到的结果一致。

有关敏感性分析也与之前的想法一致。

线性规划对偶问题是很值得研究的方向。

1、原问题

c=[1.83.50.41];

A=-[0.5126;

240.51;

5212.5];

b=-[40,20,45];

v1=[0000];

2、对偶问题求解

c=-[402045];

A=[0.5126;

5212.5]'

;

b=[1.83.50.41];

v1=[000];

四、体验与收获

这是本学期数学实验的第六次作业,总体来相当顺利。

由于以前有学习过运筹学,所以对线性规划、单纯形算法、对偶问题都不陌生。

本次试验中,也在各个方面实践了以前所学的知识,感觉非常好。

总体来说收获如下:

1、学习了线性规划的建立与求解过程;

2、了解了单纯性算法的基本原理;

3、了解了线性规划的敏感性分析以及对偶问题;

4、学会使用MATLAB求解基本线性规划问题;

5、初步对比了三种求解线性规划的算法;

6、学习并验证了强对偶定理。

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

当前位置:首页 > 求职职场 > 职业规划

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

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