数学建模Matlab.doc
《数学建模Matlab.doc》由会员分享,可在线阅读,更多相关《数学建模Matlab.doc(4页珍藏版)》请在冰豆网上搜索。
数学规划作业(MatLab)
1、某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台.每季度的生产费用为(单位:
元),其中x是该季度生产的台数.若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元.已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问:
工厂应如何安排生产计划,才能既满足合同又使总费用最低.讨论a、b、c变化对计划的影响,并作出合理的解释.
解:
问题的分析和假设:
分析:
问题的关键在于由于工厂的生产能力足以满足每个季度用户的需求,但是为了使总费用最少,那么利用每个季度生产费用的不同,可用利用上个生产费用低的季度多生产来为下个季度进行准备,前提是本月节省下的费用减去总的发动机存储费用还有剩余,这样生产才有价值,才可能满足合同的同时又能使总费用最低。
基本假设:
1工厂的生产能力不受外界环境因素影响。
2为使总费用最低,又能满足合同要求,各个季度之间的生产数量之间是有联系的。
3第一季度开始时无存货。
4工厂每季度的生关费用与本季度生产的发动机台数有关。
5生产要按定单的数量来进行,生产的数量应和订单的数量相同,以避免生产出无用的机器。
符号规定:
X1―――第一季度生产发动机的数量
X2―――第二季度生产发动机的数量
X3―――第三季度生产发动机的数量
建模:
1.三个季度发动机的总的生产量为180台。
2.每个季度的生产量和库存机器的数量之和要大于等于本季度的交货数量。
3.每个月的生产数量要符合工厂的生产能力。
4.将实际问题转化为非线性规划问题,建立非线性规划模型
目标函数
min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(x1-40)+4(x1+x2-100)
整理,得
min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(2x1+x2-140)
约束函数 s.t x1+x2≥100;
x1+x2+x3=180;
40≤x1≤100;
0≤x2≤100;
0≤x3≤100;
求解的Matlab程序代码:
M-文件 fun.m:
function f=fun (x);
f=50*(x
(1)+x
(2)+x(3))+0.2*(x
(1)^2+x
(2)^2+x(3)^2)+4*(2*x
(1) +x
(2)-140)
主程序fxxgh.m:
x0=[60;60;60];
A=[-1 -1 0];b=[-100];
Aeq=[1 1 1];beq=[180];
vlb=[40;0;0];vub=[100;100;100];
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub)
计算结果与问题分析讨论:
计算结果:
x = 50.0000
60.0000
70.0000
fval = 11280
问题分析讨论:
由运算结果得:
该厂第一季度、第二季度、第三季度的生产量分别是50台、60台和70台时,才能既满足合同又使总费用最低,费用最低为11280元。
若a变化,对计划没有影响,因为a的变化,对于各离度的费用增长率造成相同的影响,并不会给各季度之间的生产带来差异,只会使生产的总体费用增加。
若b变大,第一季生产量要增加,第二季度保持不变,第三季度生产量减少,b变小,第一季度生产量要减少,第二季度不变,第三季度生产量增加。
这是因为b变大,每个季度的费用增长率都会增大,生产数量多的季度的费用增长率增长的会比其它季度更快,因此加减少生产量大的季度的生产量,以减缓费用的快速增加。
而b变小的时候,情况正好相反。
若c变小,第一季度的生产量增加,第二季度不变,第三季度的生产量减少。
c变大,第一季度生产量减少,第二季度不变,第三季度生产量增加。
这是因为c变小,存储费用会变小,相对于生产费用的快速增长,最好的方法就是在生产费用低的时候多生产,把多余的机器进行储存,储存的费用会小于费用的增长额度,这样做可以节省生产费用,而c变大,情况正好相反。
2、一基金管理人的工作是:
每天将现有的美元、英镑、马克和日元四种货币按当天汇率相互兑换,使在满足需要的条件下,按美元计算的价值最高.设某天的汇率、现有货币和当天需求如下:
币种
美元
英镑
马克
日元
现有量
需求量
美元
1
0.58928
1.743
138.3
8
6
英镑
1.697
1
2.9579
234.7
1
3
马克
0.57372
0.33808
1
79.346
8
1
日元
0.007233
0.00426
0.0126
1
0
10
问该基金管理人应如何操作.(“按美元计算的价值”指兑入、兑出汇率的平均值,如1英镑相当于=1.696993美元.)
解:
目标函数:
maxz=x1+x5*1.697+x9*0.57372+(x2*0.58928+x6+x10*0.33808)*+(1.743*x3+2.9579*x7+x11)*+(138.3*x4+234.7*x8+79.346*x12)*
约束条件:
;
;
所以模型为:
maxz=x1+x5*1.697+x9*0.57372+(x2*0.58928+x6+x10*0.33808)*+(1.743*x3+2.9579*x7+x11*+(138.3*x4+234.7*x8+79.346*x12)*
结果分析:
可得到的最大利润为1428720000美元,基金管理员对各货币的兑换操作情况如下表
美元
英镑
马克
日元
美元
2.9090
5.0910
0
0
英镑
0
0
0
1.0000
马克
5.3876
0
1.0000
1.6124