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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

清华大学数学实验-实验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.5 x1-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

甲乙混合,比例相同:

x1 x3=

x2 x4

整理得:

x1x4-x2x3=0;

模型的求解:

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

函数文件:

function z = 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.5 0 -1.5 0 -0.5 0

0 1.5 0 -0.5 0 0.5

1 1 0 0 0 0

0 0 1 1 0 0

0 0 0 0 1 1

1 0 1 0 1 0

0 1 0 1 0 1 ]

b=[0 0 500 500 500 100 200]'

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

v1=[0 0 0 0 0 0]

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

z

运算结果为:

x =

0.0000 0 -0.0000 100.0000 0 100.0000

z =

-400

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

(2)

问题的建模:

修改x1+x3+ x5≤100为:x1+x3+ x5≤600,其余不变。

模型的求解:

主文件:

将b变为:

b=[0 0 500 500 500 600 200]'

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

结果为:

x =

300.0000 0.0000 0 -0.0000 300.0000 0.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=[30 10 10 100 30 10])

x =

0.0000 50.0000 -0.0000 150.0000 0 0

z =

-750.0000

对(2),结果为:

(修改初值是x0=[30 10 10 100 30 10])

0.0000 50.0000 -0.0000 150.0000 0 0

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%收取交易费,这时你是否仍需要对手上的股票进行买卖(换手),以便满足“最优解”的要求?

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

相关文档
最新文档