清华大学数学实验实验9非线性规划1.docx

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

清华大学数学实验实验9非线性规划1.docx

《清华大学数学实验实验9非线性规划1.docx》由会员分享,可在线阅读,更多相关《清华大学数学实验实验9非线性规划1.docx(9页珍藏版)》请在冰豆网上搜索。

清华大学数学实验实验9非线性规划1.docx

清华大学数学实验实验9非线性规划1

实验9非线性规划

实验目的:

1)掌握用matlab优化工具箱解非线性规划的方法

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

实验内容:

4.某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A,B).按照生产工艺的要求,原料甲、乙必须首先倒入混合池中混合,混合后的液体再分别于原料丙生产A,B.已知原料甲、乙、丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/t,16千元/t,10千元/t;产品A,B的含硫量分别不能超过2.5%,1.5%,售价分别为9千元/t,15千元/t.根据市场信息,原料甲、乙、丙的供应量都不能超过500t;产品A,B的最大市场需求量分别为100t,200t.

(1)应如何安排生产?

(2)如果产品A的最大市场需求量增长为600t,应如何安排生产?

(3)如果乙的进货价格下降为13千元/t,应如何安排生产?

分别对

(1)、

(2)两种情况进行讨论.

解:

(1)

问题的建模

设利用x1吨甲,x2吨乙,x3吨丙制造y1吨A;利用x2吨甲,x4吨乙,x6吨丙制造y2吨B;总收益是z千元。

则有以下方程与不等式:

质量守恒:

y1=x1+x3+x5

y2=x2+x4+x6

总收益:

z=9y1+15y2-6(x1+x2)-16(x3+x4)-10(x5+x6)

化简得:

z=3x1+9x2+3x3+9x4-x5+5x6

含硫量约束:

3%x1+1%x3+2%x5≤2.5%y1

3%x2+1%x4+2%x6≤1.5%y2

化简得:

0.5x1-1.5x3-0.5x5≤0

1.5x2-0.5x4+0.5x6≤0

供应量约束:

(x1+x2),(x3+x4),(x5+x6)≤500

需求量约束:

y1≤100;y2≤200

化简得:

x1+x3+x5≤100

x2+x4+x6≤200

甲乙混合,比例相同:

整理得:

x1x4-x2x3=0;

模型的求解:

该问题是一个带约束非线性规划问题,编写源程序如下:

M文件:

函数文件:

functionz=lab94fun(x)

z=-(3*x

(1)+9*x

(2)-7*x(3)-x(4)-x(5)+5*x(6));

end

非线性约束条件文件:

function[c,ceq]=lab94con(x)

c=0;

ceq=x

(1)*x(4)-x

(2)*x(3);

end

主文件:

A=[0.50-1.50-0.50

01.50-0.500.5

110000

001100

000011

101010

010101]

b=[00500500500100200]'

x0=[202020203030];%已验证在可行域中

v1=[000000]

[x,z,ef,out,lag,grad,hess]=fmincon(@lab94fun,x0,A,b,[],[],v1,[],@lab94con);

x

z

运算结果为:

x=

0.00000-0.0000100.00000100.0000

z=

-400

因此,此时应购买100吨乙,100吨丙来生产200吨B,总共收益是400千元

(2)

问题的建模:

修改x1+x3+x5≤100为:

x1+x3+x5≤600,其余不变。

模型的求解:

主文件:

将b变为:

b=[00500500500600200]'

在实际运行时发现,在初值为x0=[15010101015010](也有其他初值)时,总收益最大。

结果为:

x=

300.00000.00000-0.0000300.00000.0000

z=

-600

因此,这时应该购入100吨甲和100吨丙来生产A,总收益是600千元。

(3)

问题的建模:

总收益变为:

z=3x1+9x2-4x3+2x4-x5+5x6

其余不变。

模型的求解:

将函数文件修改为:

z=-(3*x

(1)+9*x

(2)-4*x(3)+2*x(4)-x(5)+5*x(6));

其余不变。

(1),结果为:

(修改初值是x0=[3010101003010])

x=

0.000050.0000-0.0000150.000000

z=

-750.0000

(2),结果为:

(修改初值是x0=[3010101003010])

0.000050.0000-0.0000150.000000

z=

-750.0000

可见,二者结果相同。

因此,应购买50吨甲,150吨乙,生产200吨B,总收益是750千元。

(本题初值对结果有一定影响,有时初值不同、结果不同,因此应该多选初值进行尝试。

9.8.美国某三种股票(A,B,C)12年(1943-1954年)的价格(已经包括了分红在内)每年的增长情况如下表所示(表中还给出了相应年份的500种股票的价格指数的增长情况).例如,表中第一个数据1.300倍,即收益为30%,其余数据的含义以此类推.假设你在1955年时有一笔资金准备投资这三种股票,并期望年收益率至少达到15%,那么你应当如何投资?

此外,考虑一下问题:

(1)当期望的年收益率在10%~100%变化时,投资组合和相应的风险如何变化?

(2)假设除了上述三种股票外,投资人还有一种无风险的投资方式,如购买国库券.假设国库券的年收益率为5%,如何考虑该投资问题?

(3)假设你手上目前握有的股票比例为:

股票A占50%,B占35%,C占15%.这个比例与你得到的最优解可能有所不同,但实际股票市场上每次股票买卖通常总有交易费,例如按交易额的1%收取交易费,这时你是否仍需要对手上的股票进行买卖(换手),以便满足“最优解”的要求?

年份

股票A

股票B

股票C

股票指数

1943

1.300

1.225

1.149

1.258997

1944

1.103

1.290

1.260

1.197526

1945

1.216

1.216

1.419

1.364361

1946

0.954

0.728

0.922

0.919287

1947

0.929

1.144

1.169

1.057080

1948

1.056

1.107

0.965

1.055012

1949

1.038

1.321

1.133

1.187925

1950

1.089

1.305

1.732

1.317130

1951

1.090

1.195

1.021

1.240164

1952

1.083

1.390

1.131

1.183675

1953

1.035

0.928

1.006

0.990108

1954

1.176

1.715

1.908

1.526236

解:

问题的建模:

为方便建模及程序编写,先将各值计算出来。

令EA,EB,EC为各股票的期望,DA,DB,DC为各股票的方差,rAB、rAC、rBC分别为每两支股票之间的相关系数。

可以计算得:

EA=1.0891;EB=1.2137;EC=1.2346

DA=0.0108;DB=0.0584;DC=0.0942

rAB=0.4939;rAC=0.4097;rBC=0.7472

同时可计算出每两种股票的协方差为:

令投资A,B,C三种股票每种所占的比例分别为x1、x2、x3

因此,投资的总期望收益是:

投资总收益的方差为

年收益率至少要达到15%:

其他约束:

模型的求解:

源程序如下:

函数文件:

functionf=lab98fun(x)

f=0.0108*x

(1)^2+0.0584*x

(2)^2+0.0942*x(3)^2+0.01240387*x

(1)*x

(2)+0.01306782*x

(1)*x(3)+0.05532028*x

(2)*x(3);

end

约束条件文件:

function[c,ceq]=lab98con(x)

c=1.15-1.0891*x

(1)-1.2137*x

(2)-1.2346*x(3);

ceq=x

(1)+x

(2)+x(3)-1;

end

主程序:

x0=[0.10.10.1];

v1=[000];

v2=[111];

[x,fv,ef,out,lag,grad,hess]=fmincon(@lab98fun,x0,[],[],[],[],v1,v2,@lab98con);

运行结果为:

x=

0.53940.29280.1678

fv=

0.0167

所以选择投资A54%,B29%,C17%左右,可使方差最小,收益率的方差为1.67%。

改变期望的年收益率,则可得到部分情况如下:

期望年收益率

投资组合

收益率方差

A

B

C

10%

90.55%

6.91%

2.54%

1.04%

11%

84.09%

10.74%

5.17%

1.06%

12%

76.58%

15.22%

8.2%

1.13%

13%

69.05%

19.77%

11.18%

1.25%

14%

61.53%

24.31%

14.16%

1.43%

15%

53.94%

29.28%

16.78%

1.67%

20%

16.37%

51.58%

32.05%

3.64%

22%

1.32%

60.67%

38.01%

4.8%

22.5%

0

45.93%

54.07%

5.36%

23%

0

22.01%

77.99%

6.96%

23.46%

0

0

100%

9.42%

由表中数据所示,当期望年收益率低的时候,多投资A股一些可以减小风险。

随着期望年收益率的不断增高,投资A股的份额不断减小,而B股和C股的份额在增大,同时风险也在增大,当期望年收益率更高时,B股的股份也下降,转而都投资C股,同时风险进一步加大。

由此可以看出,高收益总是伴随着高风险。

(2)问题的建模:

只是要改变相应的约束条件。

ED=1.05DD=0

投资的总期望收益变为

投资总收益的方差不变

其余约束条件变为

根据问题要求,变为

模型的求解:

解为:

x=

0.24630.32680.19970.2272

fv=

0.0159

因此,应投资的比例分别为A24.6%,B32.7%,C20%,D22.7%左右,收益率的方差为1.59%

(3)

问题的建模:

需要改变收益的方程为

模型的求解:

将收益的语句改为c=1.15-1.0891*x

(1)-1.2137*x

(2)-1.2346*x(3)+0.01*(abs(0.5-x

(1))+abs(0.35-x

(2))+abs(0.15-x(3)));

运行后可得

x=

0.53140.31870.1500

fv=

0.0169

因此,应投资的比例分别为A53.14%,B31.87%,C15%,收益率的方差为1.69%

也就是适当改变A,B的持股比例,C股不变即可

(本题没有用quadprog语句求解,最终结果与课本答案有偏差)

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

当前位置:首页 > 工程科技 > 能源化工

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

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