实验8线性规划.docx

上传人:b****8 文档编号:11489874 上传时间:2023-03-01 格式:DOCX 页数:12 大小:91.03KB
下载 相关 举报
实验8线性规划.docx_第1页
第1页 / 共12页
实验8线性规划.docx_第2页
第2页 / 共12页
实验8线性规划.docx_第3页
第3页 / 共12页
实验8线性规划.docx_第4页
第4页 / 共12页
实验8线性规划.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验8线性规划.docx

《实验8线性规划.docx》由会员分享,可在线阅读,更多相关《实验8线性规划.docx(12页珍藏版)》请在冰豆网上搜索。

实验8线性规划.docx

实验8线性规划

线性规划

【实验目的】

1、掌握用MATLAB优化工具箱解线性规划的方法;

2、练习建立实际问题的线性规划模型。

【实验内容】

题目6

某银行经理计划用一笔资金进行证券投资,可供购进的证券以及其信用等级,到期年限、收益如下表所示,按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税,此外还有以下限制:

(1)政府及代办机构的证券总共至少要购进400万元;

(2)所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程度越高);

(3)所购证券的平均到期年限不超过5年。

证券名称

证券种类

信用等级

到期年限/年

到期税前收益/%

A

市政

2

9

4.3

B

代办机构

2

15

5.4

C

政府

1

4

5.0

D

政府

1

3

4.4

E

市政

5

2

4.5

 

 

 

 

 

①若该经理有1000万元资金,应如何投资?

②如果能够以2.75%的利率借到不超过100万元资金,该经理应如何操作?

并考虑利率在什么范围内变化时,投资方案不改变?

③在1000万元资金情况下,若证券A的税前收益增加为4.5%,投资应否改变?

若证券C的税前收益减少为4.8%,投资应否改变?

6.1模型分析

这是一个有约束的优化问题,其模型应包含决策变量、目标函数和约束条件。

设购买A、B、C、D、E五种证券的资金分别为a、b、c、d、e,要最大化的目标函数是最终总收益z

根据上述约束条件,可列出下列不等式:

整理可得:

此外,还有非负约束:

如果记决策向量

目标函数

,右端向量

,约束矩阵

6.1.1总资金为1000万元

此时

则限制条件

,右端向量b2=1000。

6.1.2以2.75%的利率借到不超过100万元资金

设借贷金额为f,则此时可添加一条0≤f≤100;同时改变目标函数的形式。

收益

则决策向量

目标函数

右端向量

约束矩阵

6.1.3在1000万元资金情况下,证券A的税前收益增加为4.5%,即证券C的税前收益减少为4.8%

将证券A的税前收益增加为4.5%时,只需将

(1)中的右端向量c的A分量改变为0.045;

将证劵C的税前收益减少为4.8%时,只需将c的C分量改变为0.048。

6.2 matlab求解及结果分析

6.2.1总资金为1000万元

在matlab中运行如下程序touzi1.m:

c=-0.01*[4.32.72.52.24.5];

A1=[0-1-1-10

0.60.6-0.4-0.43.6

410-1-2-3];

b1=[-40000];

A2=[11111];

b2=1000;

v1=[00000];

[x,f,exit,outlag]=linprog(c,A1,b1,A2,b2,v1)

得到如下结果:

x=

218.1818

0.0000

736.3636

0.0000

45.4545

f=

-29.8364

exit=

1

out=

iterations:

5

algorithm:

'large-scale:

interiorpoint'

cgiterations:

0

message:

'Optimizationterminated.'

constrviolation:

5.6843e-013

firstorderopt:

3.5406e-008

lag=

ineqlin:

[3x1double]

eqlin:

0.0298

upper:

[5x1double]

lower:

[5x1double]

由此可得,这个银行经理手里的1000万元应该这样投资:

购买A证券218.1818万元,购买C证券736.3636万元,购买E证券45.4545万元。

最终的到的最大收益为29.8364万元。

此外,由exit=1可得结果收敛;由algorithm:

'large-scale:

interiorpoint'可得此程序采用的方法是内点法;由lag.ineqlin=[0.0000 0.0062 0.0024]可得第一项约束式没有起作用,在最优解下,第2、3个约束条件是等式约束。

6.2.2以2.75%的利率借到不超过100万元资金

在matlab中运行如下程序touzi2.m:

c=-0.01*[4.32.72.52.24.5-2.75];

A1=[0-1-1-100

0.60.6-0.4-0.43.60

410-1-2-30

111110];

b1=[-400001100];

A2=[11111-1];

b2=1000;

v1=[00000];

v2=[11001100110011001100100];

[x,f,exit,outlag]=linprog(c,A1,b1,A2,b2,v1)

得到如下结果:

x=

240.0000

0.0000

810.0000

0.0000

50.0000

100.0000

f=

-30.0700

exit=

1

out=

iterations:

6

algorithm:

'large-scale:

interiorpoint'

cgiterations:

0

message:

'Optimizationterminated.'

constrviolation:

2.2737e-013

firstorderopt:

5.7685e-014

lag=

ineqlin:

[4x1double]

eqlin:

0.0275

upper:

[6x1double]

lower:

[6x1double]

由上述结果可得,贷款总额为100万元,对A投资为240万元,对C投资为810万元,对E投资为50万元。

最优收益为30.07万元。

对此题进行分析,在命令窗口下键入lag.eqlin后按回车,显示0.0298。

这就是说,总投资金额每增加1万元,最终收益会增加0.0298万元。

也就是说投资金额每增加100万元,最终收益会增加2.98万元。

扣除贷款利率的2.75万元,最终收益能够增加0.23万元。

这样来看,最终收益约为30.07万元。

与matlab运行结果相符合。

另外也可以得到,只要贷款利率小于2.98%,将贷款来的钱再投资进去,最终收益就会增加。

一旦利率等于或大于这个值,投资收益的增加不能抵过贷款利息的偿还,最终收益反而会减小,这样的话就不应贷款。

6.2.3在1000万元资金情况下,证券A的税前收益增加为4.5%,即证券C的税前收益减少为4.8%

(1)中的右端向量c的A分量改变为0.045,得到输出结果如下:

x=

218.1818

0.0000

736.3636

0.0000

45.4545

f=

-30.2727

(1)中的右端向量c的C分量改变为0.024,得到输出结果如下:

x=

336.0000

0.0000

0.0000

648.0000

16.0000

f=

-29.4240

由上述结果可得,如A的税前收益增加为4.5%,投资不必改变。

如C的税前收益减少为4.8%,应改变投资方案。

具体改为:

买进A336万元,D648万元,E16万元,不买进BC。

题目8

某牧场主知道,对于一匹平均年龄的马来说,最低的营养需求为:

40磅蛋白质,20磅碳水化合物,45磅粗饲料。

这些营养成分是从不同的饲料中得到的,饲料及其价格在下表中列出。

建立数学模型,确定如何以最低的成本满足最低的营养需求。

 

蛋白质/磅

碳水化合物/磅

粗饲料/磅

价格/美元

干草/捆

0.5

2.0

5.0

1.80

燕麦片/袋

1.0

4.0

2.0

3.50

饲料块/块

2.0

0.5

1.0

0.40

高蛋白浓缩料/袋

6.0

1.0

2.5

1.00

每匹马的需求/天

40.0

20.0

45.0

-

 

 

 

 

 

8.1模型分析

这是一个有约束的优化问题,其模型应包含决策变量、目标函数和约束条件。

设干草、燕麦片、饲料快和高蛋白浓缩料这4种饲料的用量分别为a,b,c,d。

饲料成本价格为z。

目标函数

约束条件:

记决策向量

费用向量

,右端向量

约束矩阵

综上所述,可得到如下模型:

Min

s.t.Ax≥b

x≥0

8.2matlab求解

在matlab中运行以下程序yingyang.m

c=[1.83.50.41];

A=[0.5126

240.51

5212.5];

b=[402045];

v=[0000];

opt=optimset('largescale','off','simplex','on');

[x,f,exit,out,lag]=linprog(c,-A,-b,[],[],v1,[],[],opt)

得到如下输出结果:

x=

5.0000

0

20.0000

0

f=

17

exit=

1

out=

iterations:

2

algorithm:

'mediumscale:

simplex'

cgiterations:

[]

message:

'Optimizationterminated.'

constrviolation:

0

firstorderopt:

0

lag=

ineqlin:

[3x1double]

eqlin:

[0x1double]

upper:

[4x1double]

lower:

[4x1double]

由上述结果可知,所需干草5捆,饲料块20块即可满足营养要求,最低需要17美元。

输出的lag.ineqlin如下:

[0.0000,0.4000,0.2000]

这表明第一项约束式并没有起作用,而第二个和第三个约束条件起了作用,即在这个最优解下,第2、3个约束条件是等式约束。

【实验总结】

这次的实验内容比以往任何一次都来得简单、易于操作。

线性规划的关键在于将变量之间的约束关系转化为不等式,然后再以矩阵的形式表达出来。

在表达时要十分注意要写成标准形式,才可以求出正确的解。

虽然这次实验很简单,但是它的重要性却很大,因为生活中也好,其他学科领域也好,许多问题最后要归结到线性规划问题上。

通过本次实验,我了解了线性规划问题求解的算法,掌握了:

(1)建立实际问题的线性规划模型;

(2)利用MATLAB提供的程序求解线性规划问题;(3)对MATLAB提供的结果进行简单分析。

谢谢老师和助教的指导。

 

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

当前位置:首页 > 高等教育 > 法学

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

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