主要内容

拉格朗日乘子结构

约束优化涉及一组拉格朗日乘数,如中所述一阶最优性测度. 解算器返回结构中的估计拉格朗日乘数。该结构称为兰姆达因为拉格朗日乘数的传统符号是希腊字母lambda(λ)。该结构将乘数分为以下类型,称为字段:

  • 降低,与下界关联

  • 上面的,与上界有关

  • eqlin,与线性等式关联

  • 线性不等式,与线性不等式有关

  • 埃克诺林,与非线性等式有关

  • 伊内克诺林,与非线性不等式有关

  • soc,与二阶锥约束关联

例如,要访问拉格朗日乘数结构的非线性不等式字段,请输入兰姆达·因克诺林.要访问与下限关联的拉格朗日乘数的第三个元素,请输入下lambda(3).

拉格朗日乘子结构的内容取决于求解器。例如,线性规划没有非线性,因此它没有埃克诺林伊内克诺林字段。每个适用解算器的函数参考页在标题“输出”下包含其拉格朗日乘数结构的描述

研究具有线性和非线性不等式约束和边界的非线性问题的拉格朗日乘子结构。

lb=[-3-3];%下限ub=[3];%上界A=[1];%线性不等式x(1)+x(2)<=1b=1;Aeq=[];beq=[];x0=[-11];fun=@(x)100*(x(2)-x(1)^2^2+(1-x(1))^2;%罗森布鲁克函数nlcons=@(x)交易(x(1)^2+x(2)^2-1,[]);%非线性不等式选项=最佳选项(“fmincon”,“显示”,“关”); [x,fval,exitflag,output,lambda]=...fmincon(娱乐、x0、A、b、Aeq、beq、lb、ub、nlcons、选项);disp(lambda)
Eqlin: [0×1 double] eqnonlin: [0×1 double] ineqlin: 0.3407 lower: [2×1 double] upper: [2×1 double] ineqnonlin: 1.7038e-07

这里是对拉格朗日乘数结构的解释。

  • 这个lambda.eqlin兰姆达·埃克诺林字段的大小为0,因为不存在线性等式约束和非线性等式约束。

  • 这个lambda.ineqlin字段具有值0.3407,表示线性不等式约束处于活动状态。线性不等式约束为x(1)+x(2)<=1.检查约束在解决方案中是否处于活动状态,这意味着解决方案会使不等式成为等式:

    x(1)+x(2)
    ans=1.0000
  • 检查兰博达酒店拉姆达上领域。

    兰博达酒店
    ans=1.0e-07*0.2210.2365
    拉姆达上
    ans=1.0e-07*0.3361 0.3056

    这些值实际上是零,表明解不在边界附近。

  • 价值伊内克诺林领域是1.7038e-07,表示此约束未处于活动状态。检查约束,它是x(1)^2+x(2)^2<=1.

    x(1)^2+x(2)^2
    ans=0.5282

    非线性约束函数值不接近其极限,因此拉格朗日乘数约为0。

相关的话题