1、 《数学模型》上机实验报告 2014-2015学年第二学期 专 业:信息与计算科学 班 级:信计122 姓 名:司后君 学 号:2012 上机实验1--证券投资(P130-1) 一、问题(1) 1、决策变量:投资a,b,c,d,e,的资金分别为x1,x2,x3,x4,x5 2、目标函数:设获利最大值为z,z=0.043*x1+0.027*x2+0.025*x3+0.022*x4+0.045*x5 3、 约束条件:(2*x1+2*x2+x3+x4+5*x5
2、)/(x1+x2+x3+x4+x5)<=1.4 (9*x1+15*x2+4*x3+3*x2+2*x5)/(x1+x2+x3+x4+x5)<=5 X2+x3+x4>=400 X1+x2+x3+x4+x5<=1000 4、 Lindo/Lingo程序: model: max=0.043*x1+0.027*x2+0.025*x3+0.022*x4+0.045*x5; (2*x1+2*x2+x3+x4+5*x5)/(x1+x2+x3+x4+x5)<=1.4; (9
3、x1+15*x2+4*x3+3*x2+2*x5)/(x1+x2+x3+x4+x5)<=5; X2+x3+x4>=400; X1+x2+x3+x4+x5<=1000; end 5、程序运行结果: Local optimal solution found. Objective value: 31.45000 Infeasibilities: 0.000000 Extended solver ste
4、ps: 5 Total solver iterations: 26 Variable Value Reduced Cost X1 400.0000 0.000000 X2 0.000000 0.227
5、5000E-01 X3 350.0000 0.000000 X4 250.0000 0.000000 X5 0.000000 0.3550000E-01 Row Slack or Surplus Dual Price
6、 1 31.45000 1.000000 2 0.000000 14.25000 3 0.000000 0.7500000 4 200.0000 0.000000 5
7、 0.000000 0.3145000E-01 6、结果说明:由运行结果可知目标函数值为31.4万元,x1投资400万元,x3投资350万元,x4投资250万元。 二、 问题(2) 由影子价格分析可知,若资金增加100万元,可多获利3.14万元,大于利息2.75万元,所以应该投资,将条件1000改为1100,得到x1投资440万元,x2 385万元,x4 275万元, Local optimal solution found. Objective value: 34.
8、59500 Infeasibilities: 0.000000 Extended solver steps: 5 Total solver iterations: 26 Variable Value Reduced Cost X1 440.000
9、0 0.000000 X2 0.000000 0.2275000E-01 X3 385.0000 0.000000 X4 275.0000 0.000000 X5 0.000000 0.355000
10、0E-01 Row Slack or Surplus Dual Price 1 34.59500 1.000000 2 0.000000 15.67500 3 0.000000 0.8250000
11、 4 260.0000 0.000000 5 0.000000 0.3145000E-01 三、问题(3) Ranges in which the basis is unchanged: Objective Coefficient Ranges Current
12、 Allowable Allowable Variable Coefficient Increase Decrease X1 NONLINEAR 0.0 0.0 X2 NONLINEAR 0.2000000E-02 INFINITY X3 NONLINEA
13、R 0.0 0.0 X4 NONLINEAR 0.0 0.0 X5 NONLINEAR 0.2000000E-02 INFINITY Righthand Side Ranges Row Current
14、 Allowable Allowable RHS Increase Decrease 2 NONLINEAR 0.0 0.0 3 NONLINEAR 0.0 0.0 4
15、400.0000 0.0 0.0 5 1000.000 0.0 0.0 由敏感性分析,投资应该改变。 上机实验2--销售代理点如何选址(P131-2) 1、 问题分析: 2、 有题目可知,销售点得位置,目的获得最大的学生数量, 并且若其中一个区作为销售点,否则无法达到学生数量最多的目标,条件是最多两个销售点,一个区只能与相邻的区共用一个销售点。综合考虑,可以用x1-x7表示七个区,Xij表示
16、i与j之间有一个销售点服务,Xij为0-1变量。 。 3、 决策变量:设34,29,42,21,56,18,71分别为1-7个区,Xij表示i与j之间有一个销售点服务。 4、 目标函数: z=63*x12+76*x13+71*x23+50*x24+85*x25++63*x34+77*x45+39*x46+92*x47+74*x56+89*x67; 4、约束条件:x12+x13+x23+x24+x25+x34+x45+x46+x47+x56+x67<=2; x12+x12<=1; x12+x23+x24+x25<=1; x13+x23+x34<=1; x24+x3
17、4+x45+x46+x47<=1; x25+x45+x56<=1; x46+x56+x67<=1; x47+x67<=1; 5、Lindo/Lingo程序:model: max=63*x12+76*x13+71*x23+50*x24+85*x25++63*x34+77*x45+39*x46+92*x47+74*x56+89*x67; x12+x13+x23+x24+x25+x34+x45+x46+x47+x56+x67<=2; x12+x12<=1; x12+x23+x24+x25<=1; x13+x23+x34<=1; x24+x34+x45+x46+x47<=1;
18、 x25+x45+x56<=1; x46+x56+x67<=1; x47+x67<=1; end 6、程序运行结果: Global optimal solution found. Objective value: 177.0000 Infeasibilities: 0.000000 Total solver iterations: 3
19、 Variable Value Reduced Cost X12 0.000000 22.00000 X13 0.000000 9.000000 X23 0.000000 14.00000 X24 0.000
20、000 38.00000 X25 1.000000 0.000000 X34 0.000000 25.00000 X45 0.000000 11.00000 X46 0.000000 49.00000
21、 X47 1.000000 0.000000 X56 0.000000 11.00000 X67 0.000000 0.000000 Row Slack or Surplus Dual Price
22、 1 177.0000 1.000000 2 0.000000 85.00000 3 1.000000 0.000000 4 0.000000 0.000000 5 1.0000
23、00 0.000000 6 0.000000 3.000000 7 0.000000 0.000000 8 1.000000 0.000000 9 0.000000 4.000000
24、 7、结果说明:最优解为177人,在第二区与第五区有一个销售点来服务,在第四区与第七区建一个销售点来服务。 上机实验3--储蓄所服务员数量问题(P131-3) 一、问题(1) 1、问题分析:假设有全时服务员xi与半时服务员yi,只要保证每时段的两种服务员数量满足需求即可。 2、决策变量:在12点到2点之间的休息的全时间服务员分别设为x1,x2,另外其他的时段所雇用的半时的服务员分别设为y1-y7,则所用费用表示为100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5; 3、目标函数:min z=10
25、0*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5; x1+x2+y1>=4; x1+x2+y1+y2>=3; x1+x2+y1+y2+y3>=4; x2+y1+y2+y3+y4>=6; x1+y2+y3+y4+y5>=5; x1+x2+Y3+y4+y5>=6; x1+x2+y4+y5>=8; x1+x2+y5>=8; Y1+y2+y3+y4+y5<=3; 4、约束条件:min z=100x1+100x2+40Y1+40y2+40Y3+40Y4+40Y5 5、Lindo/Lingo程序: model: min
26、100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5; x1+x2+y1>=4; x1+x2+y1+y2>=3; x1+x2+y1+y2+y3>=4; x2+y1+y2+y3+y4>=6; x1+y2+y3+y4+y5>=5; x1+x2+Y3+y4+y5>=6; x1+x2+y4+y5>=8; x1+x2+y5>=8; Y1+y2+y3+y4+y5<=3; @gin(x1);@gin(x2);;@gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5); end 6、程序运行
27、结果: Global optimal solution found. Objective value: 820.0000 Objective bound: 820.0000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations:
28、 46 Variable Value Reduced Cost X1 3.000000 100.0000 X2 4.000000 100.0000 Y1 0.000000 40.
29、00000 Y2 2.000000 40.00000 Y3 0.000000 40.00000 Y4 0.000000 40.00000 Y5 1.000000 40.00000
30、 X3 0.000000 0.000000 X4 0.000000 0.000000 X5 0.000000 0.000000 Row Slack or Surplus Dual Price 1
31、820.0000 -1.000000 2 3.000000 0.000000 3 6.000000 0.000000 4 5.000000 0.000000 5 0.000000 0.00
32、0000 6 1.000000 0.000000 7 2.000000 0.000000 8 0.000000 0.000000 9 0.000000 0.000000
33、 10 0.000000 0.000000 7、结果说明:有结果可知最少的花费为820元,12点到一点休息的全时服务员3名,一点到两点休息的4名,10-11点开始工作的半时2名,1-2点开始工作的半时一名。 二、问题(2) 1、问题分析:如果全是全时间的服务员,考虑休息时间和每时段的最大需求量,容易看出x1为6名,x2为5名 2、决策变量:设在12-1工作得x1,在1-2工作的x2, 3、目标函数:minz=100x1+100x2 4、约束条件:x1>=6,x2>=5 5、Lindo/Lingo程序
34、 model: min=100*x1+100*x2; x1>=6; x2>=5; end 6、程序运行结果: Global optimal solution found. Objective value: 1100.000 Infeasibilities: 0.000000 Total solver iterations: 0 Va
35、riable Value Reduced Cost X1 6.000000 0.000000 X2 5.000000 0.000000 Row Slack or Surplus Dual Price 1 1100.000
36、 -1.000000 2 0.000000 -100.0000 3 0.000000 -100.0000 7、结果说明:增加的费用为1100-820=280元。 三、问题(3) 1、问题分析:如果全时间的服务员没有限制,只需将一问的限制条件去掉即可 2、决策变量: 3、目标函数: 4、约束条件: 5、Lindo/Lingo程序: 6、程序运
37、行结果: Global optimal solution found. Objective value: 560.0000 Objective bound: 560.0000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations:
38、 2 Variable Value Reduced Cost X1 0.000000 100.0000 X2 0.000000 100.0000 Y1 6.000000 40
39、00000 Y2 0.000000 40.00000 Y3 0.000000 40.00000 Y4 0.000000 40.00000 Y5 8.000000 40.00000
40、 X3 0.000000 0.000000 X4 0.000000 0.000000 X5 0.000000 0.000000 Row Slack or Surplus Dual Price 1
41、 560.0000 -1.000000 2 2.000000 0.000000 3 3.000000 0.000000 4 2.000000 0.000000 5 0.000000 0.0
42、00000 6 3.000000 0.000000 7 2.000000 0.000000 8 0.000000 0.000000 9 0.000000 0.000000 7、结果说明:不雇佣全时服务员
43、9-10时段雇佣6名短时服务员,1-2时段雇佣8名,共省下820-560=260元。 上机实验4--传染病模型(P136) 一、图1 SI模型的i-t曲线 1、MATLAB程序:function y=sir(t,x) a=1;b=0.3; y=[x(1)*(1-x(1))]'; ts=0:50; x0=[0.02]; [t,x]=ode45('sir',ts,x0);[t,x] plot(t,x(:,1)),grid, 2、图像: 二、图2 SI模型的di/dt-i曲线 1、MATLAB程序:function y=sir(i,p,q) y=
44、p.*i.*(1-i) p=0.3;q=0.5;i=0:0.01:1; y=sir(i,p) plot(i,y) 2、图像: 三、图3 SIS模型的di/dt-i曲线 1、MATLAB程序:function y=sir(i,p,q) y=-p.*i.*(i-(1-1./q)) p=0.3;q=2;i=0:0.01:1; y=sir(i,p,q) plot(i,y) 2、图像: 四、图4 SIS模型的i-t曲线 1、MATLAB程序:lambda=0.01; sigma=0.2; [t,i]=ode45(@crb,[0,100],0.
45、9,[],lambda,sigma); plot(t,i) legend('\sigma<1') 2、图像: 五、图5 SIS模型的di/dt-i曲线 1、MATLAB程序:function y=sir(i,p,q) y=-p.*i.*(i-(1-1./q)) p=0.3;q=2;i=0:0.01:1; y=sir(i,p,q) plot(i,y) 2、图像: 六、图6 SIS模型的i-t曲线 1、MATLAB程序:lambda=0.01; sigma=0.2; [t,i]=ode45(@crb,[0,100],0.9,[],lambda,s
46、igma); plot(t,i) legend('\sigma<1') 2、图像: 六、图7 i(t)-s(t)图形 1、MATLAB程序:function y=ill(t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts=0:50; x0=[0.02,0.98]; [t,x]=ode45('ill',ts,x0);[t,x] plot(t,x(:,1),t,x(:,2)),grid,pause 2、图像: 六、图8 i-s图形(相轨线) 1、MATLAB程序:function y=ill(
47、t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts=0:50; x0=[0.02,0.98]; [t,x]=ode45('ill',ts,x0);[t,x] plot(x(:,2),x(:,1)),grid, 2、图像: 上机实验5--如何预报人口增长(P163) 一、图3a 指数增长模型拟合图形(1790-1900年) 1、MATLAB程序: ezplot('4.188*exp(0.2743*t)',[1:1:12]) hold
48、 on scatter([1:1:12],[4.2,5.5,7.2,9.5,12.5,16.5,21.7,28.6,37.6,49.5,65.1,85.6],'+') hold off 2、图像: 二、图3b 指数增长模型拟合图形(1790-2000年) 1、MATLAB程序: ezplot('3.9*exp(0.2022*t)',[0:5:25]) hold on scatter([1:1:22],[6.0,7.4,9.1,11.1,13.6,16.6,20.3,24.9,30.5,37.3,45.7,55.9,68.4,83.7,102.5,125.5,
49、153.6,188.0,230.1,281.7,344.8,422.1],'+') hold off 2、图像: 三、图1 Logistic模型dx/dt-x曲线 1、MATLAB程序: x=0:0.01:1; >> y=0.2.*x.*(1-x./1); >> plot(x,y) >> 2、图像: 四、图2 Logistic模型x-t曲线 1、MATLAB程序:x=1:8; y=[3,13,80,195,332,895,1038,1143]; c0=[500,732.6,1.487]; fun=inline('c(1)./(1+c(
50、2).*exp(-c(3).*x))','c','x'); b=nlinfit(x,y,fun,c0); t=0:.01:8; plot(t,fun(b,t)) 2、图像: 五、图4 阻滞增长模型拟合图形 1、MATLAB程序:function y1=shiyan(beta,t) y1=beta(1)./(1+((beta(1)./3.9)-1).*exp(-beta(2)*t)); t=0:1:20; x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.






