zoukankan      html  css  js  c++  java
  • 【数学建模】day01-线性规划问题

     

    线性规划问题是在一组线性约束条件下,求线性目标函数最大/最小值的问题。这些约束条件有不等式约束、等式约束以及边界约束,这和中学讲的线性规划无异。

     

    此类问题的MATLAB标准形式为:

      image

    其中,max问题可以转换为min求解,三个约束条件分别为不等、等式、边界约束。

    MATLAB求解函数:

    [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)

    param:

      c是目标系数;

      A、b对应不等条件;

      Aeq、beq对用等式条件;

      LB、UB为边界;

      x0是求解的初始值;

      OPTIONS是控制参数,一般不用。

    return:

       x向量是使得目标函数最小的x取值;

      fval是相应的目标函数最优值,若是由max问题转化为min,还要取反。

    例题以及matlab求解:

    一、求解线性规划问题

      image

    求解的matlab程序如下:

     1 f = [-2;-3;5];
     2 A = [-2,5,-1;1,3,1];
     3 b = [-10;12];
     4 Aeq = [1,1,1];
     5 beq = 7;
     6 lb = [0;0;0];
     7 ub = [inf;inf;inf];
     8 [x,y]=linprog(f,A,b,Aeq,beq,zeros(3,1));
     9 x
    10 y = -y

    二、其他可以转换为线性规划问题,如目标为绝对值函数,指派问题(匈牙利算法),对偶理论与敏感度分析,在此略过,使用时查阅。

    三、应用建模:投资的收益与风险

    imageimage

    image

    image

    image

    模型一的求解:

    image

    image

     1 clc,clear
     2 a = 0;
     3 hold on
     4 while a<0.05
     5     c = [-0.05,-0.27,-0.19,-0.185,-0.185]
     6     A = [zeros(4,1),diag([0.025,0.015,0.055,0.026])];
     7     b = a*ones(4,1);
     8     Aeq = [1,1.01,1.02,1.045,1.065];
     9     beq = 1;
    10     LB = zeros(5,1);
    11     [X,Q] = linprog(c,A,b,Aeq,beq,LB);
    12     Q = -Q;
    13     Q
    14     plot(a,Q,'*k');
    15     a = a + 0.001;
    16 end
    17 xlabel('风险水平a');
    18 ylabel('最大收益Q');

    结果分析:

    image

    image

  • 相关阅读:
    HttpURLConnection中使用代理(Proxy)及其验证(Authentication)
    Java获取随机数的几种方法
    史上最全的java随机数/字符串生成算法(转)
    httpClient中的三种超时设置小结
    几个性能测试工具
    硬件知识
    北风风hadoop课程体系
    IT大数据服务管理高级课程(IT服务,大数据,云计算,智能城市)
    .net framework client profile
    Resharper中注释代码的快捷键
  • 原文地址:https://www.cnblogs.com/duye/p/9324772.html
Copyright © 2011-2022 走看看