1.1 用MATLAB求解下列线性规划问题:
maxz3x1x2x3,
x12x2x311,-4xx2x3,123 s.t.2xx1,13x1,x2,x30.
解:编写MATLAB程序如下: f=[-3;1;1]; a=[1 -2 1; 4 -1 -2]; b=[11;-3]; aeq=[-2 0 1]; beq=1;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1)); x,y=-y
求得最优解为 x1=4.0000,x2=1.0000,x3=9.0000,对应的最优值为z= 2.0000.
1.3 某厂生产三种产品I,II,III。每种产品要经过A, B两道工序加工。设该厂有两种规格的设备能完成A工序,以A1,A2表示;有三种规格的设备能完成B工序,以B1,B2,B3表示。产品I可在A,B任何一种规格设备上加工。产品II可在任何规格的A设备上加工,但完成B 工序时,只能在B1设备上加工;产品III只能在A2与B2设备上加工。已知在各种机床设备的单件工时,原材料费,产品销售价格,各种设备有效台时以及满负荷操作时机床设备的费用如表2,求安排最优的生产计划,使该厂利润最大。
设备 产品 设备有效台时 满负荷时的设I II III 备费用/元 A1 5 10 6000 300 A2 7 9 12 10000 321 B1 6 8 4000 250 B2 4 11 7000 783 B3 7 4000 200 原料费0.25 0.35 0.50 (元/件) 单价(元/1.25 2.00 2.80 件)
解:对产品I来说,设以A1,A2完成A工序的产品分别为件x1,x2,转入B工序时,以B1,B2,B3,完成B工序的产品分别为x3,x4,x5件;
对II产品来说,设以A1,A2完成A工序的产品分别为x6,x7件,转入B工序时,以B1完成B工序的产品为x8件;
对产品III来说,设以A2完成A工序的产品分别为x9件,则以B2完成B工序的产品也为x9件。由上述条件,得:
x1x2x3x4x5
x6x7x8
有题目所给的数据可建立如下线性规划模型:
max z (1.250.25)(x1x2)(20.35)x8(2.80.5)x9
300321 (5x110x6)(7x29x712x9)600010000250783200(6x38x8)(4x411x9)7x5,400070004000
5x110x660007x9x12x10007926x38x84004x11x97000s.t.4
7x40005x1x2x3x4x5x6x7x8x0,i1,2,,9iMATLAB代码如下:
f=[-0.75 -0.7753 0.375 783/7000 0.35 0.5 0.2889 -1.15 -0.684371429]' a=[5 0 0 0 0 10 0 0 0; 0 7 0 0 0 0 9 0 12; 0 0 6 0 0 0 0 8 0; 0 0 0 4 0 0 0 0 11; 0 0 0 0 0 0 7 0 0];
b=[6000;10000;4000;7000;4000]; aeq=[1 1 -1 -1 -1 0 0 0 0; 0 0 0 0 0 1 1 -1 0]; beq=[0;0];
[x,y]=linprog(f,a,b,aeq,beq,zeros(9,1)) x,y
求得最优解为:x1=1200, x2=230, x3=0, x4=858.6207, x5=571.4286, x7=500,
x8=500, x9=324.
该题实际上应该为整数规划问题,对应整数规划的最优解为x1=1200, x2=230, x3=0, x4=859 x5=571.4286, x7=500, x8=500, x9=324. 最优值z=1146.414
故最大利润为1146.41元
P100
5.1 用给定的多项式,如y=x^3-6x^2+5x-3,产生一组数据(xi,yi,i=1,2,..n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或randn用产生N(0.1)分布随机数),然后用xi和添加了随机干扰的yi作3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何?
解:MATLAB代码如下: clear all
x=[1,2,3,4,5,6,7,8];
y=[-3,-9,-15,-15,-3,27,81,165] z=y+rand(1,8); xi=1:0.1:8;
p1=polyfit(x,z,2) ; zi= polyval(p1,xi); subplot (1,3,1);
plot(x,z, 'bo',xi,zi, 'k'); title ('二次');
p2=polyfit(x,z,3) ; zi= polyval(p2,xi); subplot (1,3,2);
plot(x,z, 'bo',xi,zi, 'k'); title ('三次 ');
p3=polyfit(x,z,4) ; zi= polyval(p3,xi); subplot (1,3,3);
plot(x,z, 'bo',xi,zi, 'k'); title ('四次 ');
MATLAB运行结果如下:
y = -3 -9 -15 -15 -3 27 81 165
5.4
用最小二乘法求一形如yaebx的经验公式拟合表5.11中的数据。 解: 把y=a两边取对数,得:lnylnabx
那个线性最小二乘法拟合参数lna和b,可得参数a的拟合值 求解的MATLAB代码如下: x=[1:8]';
y=[15.3 20.5 27.4 36.6 49.1 65.6 87.87 117.6]'; r=[ones(8,1),x]; ab=r\\log(y);
ab(1)=exp(ab(1)) x0=1:0.1:8;
y0=ab(1).*exp(ab(2).*x0); plot(x,y,'o',x0,y0,'r') 运算结果如下: ab =
11.4358
0.2913
1 15.3 2 20.5 表5.11 已知数据 3 4 5 27.4 36.6 49.1 6 65.6 7 87.87 8 117.6
求得的经验公式为:y11.4358e0.2913x。
因篇幅问题不能全部显示,请点此查看更多更全内容