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

  • 相关阅读:
    python及pandas,numpy等知识点技巧点学习笔记
    人工智能,大数据,云计算大杂烩
    python开发环境
    机器学习vs深度学习及其知识点
    深入理解SVG坐标体系和transformations- viewport, viewBox,preserveAspectRatio
    军队改革看管理
    d3js path generator vs layouts
    d3js layout 深入理解
    RedisTemplate 事务处理方法 watch multi exec 的使用
    阻止联网
  • 原文地址:https://www.cnblogs.com/duye/p/9324772.html
Copyright © 2011-2022 走看看