数学建模社区-数学中国

标题: 求问《Lingo和execl在数学建模中的应用》中的一个例题 [打印本页]

作者: 且生    时间: 2012-8-31 19:15
标题: 求问《Lingo和execl在数学建模中的应用》中的一个例题
《Lingo和execl在数学建模中的应用》41页下方那个生产计划安排问题if的例题,书上给的答案是13000,可以下程序运行得13051.6,难道我照着抄书上给的程序还出错了!!??
  1. model:
  2. max=5*x11+5*x12+5.6*x21+5.6*x22-f-g;
  3. x11+x12<=500+x;
  4. x21+x22<=800+y;
  5. x11>=x21;
  6. x12>=1.5*x22;
  7. f=@if(x#le#500,4*x,@if(x#le#1000,500+3*x,1500+2*x));
  8. g=@if(y#le#400,3.2*y,@if(y#le#800,240+2.6*y,880+1.8*y));

  9. f+g<=7200;
  10. x<=1650;
  11. y<=1200;
  12. x12+x22<=2000;
  13. end
复制代码

作者: 秋leaves    时间: 2012-8-31 20:05
应该是结果取整了吧
作者: 且生    时间: 2012-8-31 21:04
秋leaves 发表于 2012-8-31 20:05
应该是结果取整了吧

可结果也好奇怪呐,x12和x22都是零,这…………
作者: 南瓜少爷    时间: 2013-4-30 17:20
当然以实际运算结果为准~
作者: wujianjack2    时间: 2013-6-7 22:53
本帖最后由 wujianjack2 于 2013-7-3 23:49 编辑

其实你的目标函数和书上有点不一样呢!
代码:
MODEL:
MAX=5*X11+5*X21+5.6*X12+5.6*X22-F-G;
X11+X12<=500+X;
X21+X22<=800+Y;
X11>=X21;
X12>=1.5*X22;
F=@IF(X#LE#500,4*X,@IF(X#LE#1000,500+3*X,1500+2*X));
G=@IF(Y#LE#400,3.2*Y,@IF(Y#LE#800,240+2.6*Y,880+1.8*Y));
F+G<=7200;
X<=1650;Y<=1200;
X12+X22<2000;
END

结果:
Global optimal solution found.
  Objective value:                              13000.00
  Objective bound:                              13000.00
  Infeasibilities:                             0.8001070E-05
  Extended solver steps:                               1
  Total solver iterations:                           129


                       Variable           Value        Reduced Cost
                            X11        900.0000            0.000000
                            X21        900.0000            0.000000
                            X12        1200.000            0.000000
                            X22        800.0000            0.000000
                              F        4700.000            0.000000
                              G        2500.000            0.000000
                              X        1600.000            0.000000
                              Y        900.0000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1        13000.00            1.000000
                              2        0.000000            5.263158
                              3        0.000000            4.736842
                              4        0.000000          -0.2631579
                              5        0.000000          -0.2105263
                              6      -0.8001070E-05       -2.631579
                              7      -0.5600749E-05       -2.631579
                              8        0.000000            1.631579
                              9        50.00000            0.000000
                             10        300.0000            0.000000
                             11        0.000000           0.5473684






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5