zoukankan      html  css  js  c++  java
  • matlab学习笔记之求解线性规划问题和二次型问题

    一、线性规划问题

      已知目标函数和约束条件均为线性函数,求目标函数的最小值(最优值)问题。

    1.求解方式:用linprog函数求解

    2.linprog函数使用形式:

      x=linprog(f,A,b) 

      x=linprog(f,A,b,Aeq,beq) 

      x=linprog(f,A,b,Aeq,beq,lb,ub) 

      x=linprog(f,A,b,Aeq,beq,lb,ub,x0) 

      x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)  

      [x,fval]=linprog(…) 

      [x, fval, exitflag]=linprog(…) 

      [x, fval, exitflag, output]=linprog(…) 

      [x, fval, exitflag, output, lambda]=linprog(…)

    3.介绍一种最常用的:

      [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aep,beq,lb,ub); 

    其中,f是目标函数系数矩阵;A和b是不等式约束条件的参数;Aeq和beq是等式约束条件的参数;lb和ub为x取值的取值范围。

      lambda.ineqlin—不等式约束A,b

      lambda.eqlin—等式约束Aep,bep

      lambda.upper—上界条件ub

      lambda.lower—下界条件lb

    4.实例:

    目标函数:f(x) = –5x1 – 4x2 –6x3,

    约束条件:

      x1 – x2 + x3 ≤ 20

      3x1 + 2x2 + 4x3 ≤ 42

      3x1 + 2x2 ≤ 30

      0 ≤ x1, 0 ≤ x2, 0 ≤ x3

    Matlab程序:

    >> f = [-5; -4; -6]; A = [1 -1 1; 3 2 4; 3 2 0]; b = [20; 42; 30]; lb = zeros(3,1);
    >> [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);
    >> x
    x =
        0.0000
       15.0000
        3.0000
    
    >> fval
    fval =
      -78.0000

    二、二次型规划问题

      理解完线性规划问题再来学习二次型规划问题就简单得多了,可以相似类比。

    1.求解方式:用quadprog函数来求解

    2.quadprog函数使用形式:

      x = quadprog(H,f)

      x = quadprog(H,f,A,b)

      x = quadprog(H,f,A,b,Aeq,beq)

      x = quadprog(H,f,A,b,Aeq,beq,lb,ub)

      x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)

      x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)

      x = quadprog(problem)

      [x,fval] = quadprog(H,f,...)

      [x,fval,exitflag] = quadprog(H,f,...)

      [x,fval,exitflag,output] = quadprog(H,f,...)

      [x,fval,exitflag,output,lambda] = quadprog(H,f,...)

     

    3.实例:

     

    Matlab程序:

    >> H = [4 -4;-4 8];f = [-6;-3];A = [1 1;4 1];b = [3;9];lb = ones(2,1);
    >> [x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],lb);
    >> x
    x = 
        1.9500
    
        1.0500
    
    >> fval
    fval =
      -11.0250

    注:若求解的是最大值问题亦可转化为求最优化问题。

    学到即赚到。
  • 相关阅读:
    【原】独立小应用程序性能优化简化版,减少数据库访问次数,提高应用程序处理效率,缓存之 HttpRuntime.Cache
    【转】SQL索引一步到位
    C# Excel读取导入数据库碰到的问题
    VS2010SP1修复补丁&Microsoft Visual Studio 2010 Service Pack 1
    ImportError: No module named ‘MySQLdb'
    【转】(C#)OPC客户端源码
    【转】DCOM远程调用权限设置
    【转】OPC远程访问相关配置信息
    WPF之DataAnnotations 注解说明
    WPF中,输入完密码回车提交 ,回车触发按钮点击事件
  • 原文地址:https://www.cnblogs.com/always-chang/p/5652867.html
Copyright © 2011-2022 走看看