zoukankan      html  css  js  c++  java
  • linprog线性规划求解

    linprog 四要素:

    [minquad c^Tx ]

    [s.t.quad egin{cases} Acdot xleq b\ Aeqcdot x=beq\ lbleq xleq ub end{cases} ]

    其中, c 和 x 为 n 维向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。

    Matlab 中求解线性规划的命令为以下几种:

    x=linprog(c,A,b)
    
    x=linprog(c,A,b,Aeq,beq)
    
    x=linprog(c,A,b,Aeq,beq,lb,ub)   % 最常用的一种形式
    
    x=linprog(c,A,b,Aeq,beq,lb,ub,x0)
    
    x=linprog(c,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(…)
    

    其中 x 返回的是决策向量的取值,favl 返回的是目标函数的最优值, c 为价值向量,A,b对应的是 线性不等式约束,Aeq,beq对应的是 线性等式约束,lb 和 ub 分别对应的是 决策向量的下界向量与上界向量。

    例子:

    代码:

    clear;
    
    clc;
    
    c=[6 3 4];   
    
    A=[1 2 -3;0 1 0]; 
    
    b=[80;50];    
    
    Aeq=[1 1 1];    
    
    beq=[120];  
    
    lb=[30 0 20];  
    
    ub=[];     
    
    [x,favl]=linprog(c,A,b,Aeq,beq,lb,ub)
    

    结果展示:

    Optimal solution found.
    
    
    x =
    
       30.0000
       50.0000
       40.0000
    
    
    favl =
    
       490
    
    >> 
    
  • 相关阅读:
    无缝轮播图
    瀑布流之ajax
    进阶版轮播图
    桌面特效
    3D模型文字动画
    Razor 常用方法
    easyui常用
    C#
    Redis设置记录
    日志三剑客ELK
  • 原文地址:https://www.cnblogs.com/Noturns/p/13341135.html
Copyright © 2011-2022 走看看