zoukankan      html  css  js  c++  java
  • 数学建模1

    4.1简单生产计划问题

    今天建模课学习了规划模型问题,分别用LINGO和MATLAB求解

    题目可以自己提炼为几个表达式:

    目标函数:max f=8*x+9*y;

    约束条件有三个:

    1、 3*x+4*y<=300

    2、10*x+8*y<=700

    3、x>=0且y>=0(下界均为零)

    ①LINGO

    打开LINGO直接敲入

    max=8*x+9*y;%目标函数
    [st_1] 3*x+4*y<300;%约束条件注意LINGO中没有小(大)于等于号,只能写小(大)于号
    [st_2] 10*x+8*y<700;%约束条件 st_1和st_2只是两种符号代表约束条件

    输入完了之后点那个红色的圈“求解”

    //观察结果

     Global optimal solution found.
      Objective value:                              706.2500 %这是目标值,也就是最后利润可以达到多少
      Infeasibilities:                              0.000000
      Total solver iterations:                             2
      Model Class:                                        LP
      Total variables:                      2
      Nonlinear variables:                  0
      Integer variables:                    0
      Total constraints:                    3
      Nonlinear constraints:                0
      Total nonzeros:                       6
      Nonlinear nonzeros:                   0
                                    Variable           Value        Reduced Cost %value是决策变量的取值,即X取25,Y取56.25时,利润达到最大706.25
                                           X        25.00000            0.000000
                                           Y        56.25000            0.000000
     
                                         Row    Slack or Surplus      Dual Price  %Slack or Surplus这一列是指剩余变量,剩余变量均为0,就代表工作日和资源量这2个约束条件取了等号,全部用完
                                           1        706.2500            1.000000           %Dual Price意为对偶价格
                                        ST_1        0.000000            1.625000       %这个约束条件的对偶价格为1.625,即当工作日增加1时,最大利润增加1.625,即工作日最大为301时,最大利润为707.875
                                        ST_2        0.000000           0.3125000        %这个约束条件的对偶价格为0.3125,即当资源原量(小麦)增加1时,最大利润增加0.3125,即工作日最大为701时,最大利润为706.5625
    ②MATLAB
     
    首先要知道用什么函数,这个要用linprog(f,A,b,Aeq,beq,[],lb)/*不知道的时候要会用help 。min f'*x    约束条件:A*x<=b;Aeq*x=beq;Aeq,beq指等式约束,本题中没有等式约束,故为空[],linprog是求极小化的问题,我们要求最大化问题,故先求最小值,再加负号即可。
     
    线性规划标准模型:
    min z=f*X
    使得:1.AX<=b;
               2.AeqX=beq//本题无等式约束条件,故Aex 和beq均为[]
               3.lb<=x<=ub//lb为下界,ub为上界,本题,X Y下界均为0故 lb=[0;0],无上界
    代码:
    f=[-8 -9];
    A=[3 4;10 8];
    b=[300;700];
    lb=[0;0];
    [x fval]=linprog(f,A,b,[],[],lb)
    fmax=-fval
    结果:X=
    25.000
    56.2500
    fval=
    -706.2500
    fmax=
    706.25
     
    对比LINGO和MATLAB发现,对于线性规划而言,用LINGO给出的信息更多更加方便
  • 相关阅读:
    BZOJ1257:[CQOI2007]余数之和——题解+证明
    BZOJ3781:小B的询问——题解
    BZOJ2038:[2009国家集训队]小Z的袜子——题解
    BZOJ3052 & UOJ58:[WC2013]糖果公园——题解
    BZOJ1086:[SCOI2005]王室联邦——题解
    BZOJ1878:[SDOI2009]HH的项链——题解
    BZOJ2453:维护队列——题解
    美团新零售招聘-高级测试开发(20k-50k/月)
    Shopee招聘-测试开发leader(30k-60k/月)
    蚂蚁金服招聘-无线测试开发(20k-36k/月)
  • 原文地址:https://www.cnblogs.com/lysun/p/12550811.html
Copyright © 2011-2022 走看看