当前位置:首页 > 实验12
用matlab求解线性规划与非线性规划问题
试验内容:
1、某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过800箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:
1)若投资0.8万元可增加原料1千克,问应否作这项投资.
2)若每100箱甲饮料获利可增加1万元,问应否改变生产计划. 1.由题意,可列目标函数zmax?10x1?9x2,约束条件为:
?6x1?5x2?60?? ?10x1?20x2?150?? ???x1?8????x1?0,x2?0?>> c=[-10,-9];A=[6,5;10,20;1,0];b=[60;150;8];vlb=[0;0];vub=[];Aeq=[];beq=[]; >> [x,febal]=linprog(c,A,b,Aeq,beq,vlb,vub) Optimization terminated. x =
6.4286 4.2857 febal = -102.8571
由此可知,生产甲饮料643箱,乙饮料429箱,可获最大利润为107.8571万元 (1)设增加a千克的原料,则此时目标函数为zmax?10x1?9x2-0.8a,约束条件为:
?6x1?5x2?60?a??? ?10x1?20x2?150?
??x?81?????x1?0,x2?0?>> c=[-10,-9,0.8];A=[6,5,-1;10,20,0;1,0,0];b=[60;150;8];vlb=[0;0];vub=[];Aeq=[];beq=[]; >> [x,febal]=linprog(c,A,b,Aeq,beq,vlb,vub) Optimization terminated. x =
8.0000 3.5000 5.5000 febal = -107.1000
由实验结果可知,当生产甲800箱,乙350箱,增加5.5千克原料可获最大利润107.1万元,比上述安排的利润增加了,所以可进行投资。
(2)当每百箱甲饮料获利增加1万元时,目标函数为zmax?11x1?9x2,约束条件不变 >> c=[-11,-9];A=[6,5;10,20;1,0];b=[60;150;8];vlb=[0;0];vub=[];Aeq=[];beq=[]; >> [x,febal]=linprog(c,A,b,Aeq,beq,vlb,vub) Optimization terminated. x =
8.0000 2.4000 febal = -109.6000
由实验结果可得,甲每百箱获利增加1万元时,生产甲800箱,乙240箱,可获最大利润109.6万元,比原来的方案增加了利润,可进行计划更改。
2、 求下列函数的极小点:
222 1) f?X??x1?4x2?9x3?2x1?18x2;
function f = fun1 (x)
f = x(1)^2+4*x(2)^2+9*x(3)^2-2*x(1)+18*x(2); >> x=fminunc('fun1',[0,0,0]);y=fun1(x) y =
-21.2500
3222) f?X??x1?x2?2x1x2?x1?2x2;
2 >> [x,feval]=fminunc(@(x)x(1)^2+3/2*x(2)^2-2*x(1)*x(2)+x(1)-2*x(2),[0,0]) x =
0.5000 1.0000 feval =
-0.7500
3) f?X???x1?1?4?222. >> [x,feval]=fminunc(@(x)(x(1)-1)^4+2*x(2)^2,[0,1]);feval x =
1.0045 -0.0000 feval =
7.8886e-031 第1),2)题的初始点可任意选取,
0 第3)题的初始点取为X??0,1?.
T3、梯子长度问题
一楼房的后面是一个很大的花园. 在花园中紧靠着楼房有一个温室, 高3m,温室伸入花园2m,温室正上方是楼房的窗台. 清洁工打扫窗台周围,他得用梯子越过温室,一头放在花园中,一头靠在楼房的墙上. 因为温室是不能承受梯子压力的,所以梯子太短是不行的. 现清洁工只有一架7m长的梯子,你认为它能达到要求吗? 能满足要求的梯子的最小 长度为多少?
a b
由题意可建立一个无约束优化模型:min y=2/cosx+3/sinx;0<=x<=?/2
>> [x,feval]=fminbnd(@(x)2/cos(x)+3/sin(x),0,pi/2) x = feval =
0.8528 7.0235
即当地面与梯子的夹角为48.87度,梯子的最短长度为7.0235米。
4. 陈酒出售的最佳时机问题
某酒厂有批新酿的好酒,如果现在就出售,可得总收入R0=50万元(人民币),如果窖藏起来待来日(第n年)按陈酒价格出售,第n年末可得总收入R?R0en6(万元),而银行利率
为r=0.05,试分析这批好酒窖藏多少年后出售可使总收入的现值最大. (假设现有资金X万 元,将其存入银行,到第n年时增值为R(n)万元,则称X为R(n)的现值.)并填下表. 第一种方案:将酒现在出售,所获50万元本金存入银行; 第二种方案:将酒窖藏起来,待第n年出售.
(1)计算15年内采用两种方案,50万元增值的数目并填入表1,2中; (2)计算15年内陈酒出售后总收入R(n)的现值填入表3中.
>> n=1:15;y=50*(1+0.05).^n y =
52.5000 55.1250 57.8813 60.7753 63.8141 67.0048 70.3550 73.8728 77.5664 81.4447 85.5170 89.7928 94.2825 98.9966 103.9464 >> n=1:15;y=50*exp(sqrt(n)/6) y =
59.0680 63.2899 66.7329 69.7806 72.5808 75.2090 77.7098 80.1121 82.4361 84.6961 86.9031 89.0656 91.1903 93.2825 95.3467 >> n=1:15;y=50*exp(sqrt(n)/6)./((1+0.05).^n) y =
56.2553 57.4058 57.6464 57.4087 56.8690 56.1221 55.2269 54.2231 53.1390 51.9960 50.8104 49.5951 48.3601 47.1140 45.8634
表1 第一种方案 第1年 52.5 第6年 67.005 第11年 85.517 第2年 55.125 第7年 70.335 第12年 89.793 第3年 57.881 第8年 73.873 第13年 94.282 第4年 60.775 第9年 77.566 第14年 98.997 第5年 63.814 第10年 81.445 第15年 103.946
表2 第二种方案 第1年 第6年 第11年 第2年 第7年 第12年 第3年 第8年 第13年 第4年 第9年 第14年 第5年 第10年 第15年 59.0680 63.2899 66.7329 69.7806 72.5808 75.2090 77.7098 80.1121 82.4361 84.6961 86.9031 89.0656 91.1903 93.2825 95.3467
表3 陈酒出售后的现值 第1年 第6年 第11年 第2年 第7年 第12年 第3年 第8年 第13年 第4年 第9年 第14年 第5年 第10年 第15年 45.8634 56.2553 57.4058 57.6464 57.4087 56.8690 56.1221 55.2269 54.2231 53.1390 51.9960 50.8104 49.5951 48.3601 47.1140 5、某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台.每季度的生产费用为f(x)=ax+bx^2(单位:元), 其中x是该季度生产的台数.若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元.已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问:工厂应如何安排生产计划,才能既满足合同又使总费用最低.讨论a、b、c变化对计划的影响,并作出合理的解释. 设:第一季度生产x1台,第二季度生产x2台,第三季度生产x3台,则 Min y=50x1+0.2x1^2+50x2+0.2x2^2+50x3+0.2x3^2+4(x1-40)+4(x1+x2-100) St x1+x2>=100;
x1+x2+x3=180;
x1>=40;x1,x2,x3<=100;
[x,feval]=fmincon(@(x)50*(x(1)+x(2)+x(3))+0.2*(x(1)^2+x(2)^2+x(3)^2)+4*(x(1)-40+x(1)+x(2)-100),x0,A,b,Aeq,beq,vlb,vub) x =
50.0000 60.0000 70.0000 feval =
1.1280e+004
6、一基金管理人的工作是: 每天将现有的美元、英镑、马克和日元四种货币按当天汇率相互兑换,使在满足需要的条件下,按美元计算的价值最高.设某天的汇率、现有货币和当天需求如下: 美元 英镑 马克 日元 美元 英镑 马克 日元 现有量(?108 1 8 0 8) 需求量(?10) 6 3 1 10 81 1.697 0.58928 1 1.743 2.9579 1 0.0126 138.3 234.7 79.346 1 0.57372 0.33808 0.007233 0.00426 问该天基金管理人应如何操作. (“按美元计算的价值”指兑入、兑出汇率的平均值,如1英镑相当于
1.697??10.58928?=1.696993美元.
2 解:日元现有量为0,可不予考虑
现有美元8,需求为6,设兑换成美元,英镑,马克,日元的美元数量为x1,x2,x3,x4 现有英镑1,需求为3,设兑换成美元,英镑,马克,日元的英镑数量为x5,x6,x7,x8
现有马克8,需求为1,设兑换成美元,英镑,马克,日元的马克数量为x9,x10,x11,x12 英镑,马克,日元按美元计算的价值分别为
y1=(1.697+(1/0.58928))/2,y2=(0.57372+(1/1.743))/2,y3=(0.007233+(1/138.3))/2 目标函数为:
minz=-(x1+x2*0.58928*y1+x3*1.743*y2+x4*138.3*y3+x5*1.697+x6*y1+x7*2.9579*y2+x8*234.7*y3+x9*0.57372+x10*0.33808*y1+x11*y2+x12*79.346*y3)
x1+1.697*x5+0.57372*x9>=6 约束条件为:
x1+x2+x3+x4=8 0.58928*x2+x6+0.33808*x10>=3 x5+x6+x7+x8=1 1.743*x3+2.9579*x7+x11>=1 x9+x10x+x11+x12=8 138.3*x4+234.7*x8+79.346*x12>=10 >> y1=(1.697+(1/0.58928))/2;y2=(0.57372+(1/1.743))/2;y3=(0.007233+(1/138.3))/2;
>>c=-[1,0.58928*y1,1.743*y2,138.3*y3,1.697,y1,2.9579*y2,234.7*y3,0.57372,0.33808*y1,y2,79.346*y3];
>>A=[1,1,1,1,0,0,0,0,0,0,0,0;0,0,0,0,1,1,1,1,0,0,0,0;0,0,0,0,0,0,0,0,1,1,1,1;-1,0,0,0,-1.697,0,0,0,-0.57372,0,0,0;0,-0.58928,0,0,0,-1,0,0,0,-0.33808,0,0;0,0,-1.743,0,0,0,-2.9579,0,0,0,-1,0;0,0,0,-138.3,0,0,0,-234.7,0,0,0,-79.346]; >> b=[8,1,8,-6,-3,-1,-10]'; >> b0=zeros(12,1);
>> [x,feval]=linprog(c,A,b,[],[],b0,[],[]) x = 0.0000 0.0000 2.9090 0.0000 1.0000 5.0910 0.0000 1.6124 0.0000 1.0000 feval = 0.0000 5.3876 -14.2872
共分享92篇相关文档