天软金融分析.NET函数大全 > TSL函数 > 数学函数 > 优化

NonLP_minSUMT    

简述
(非线性规划建议统一使用prog_n函数)混合惩罚函数+转轴法/模式搜索法:可解所有优化问题,返回最优点、最优值和迭代次数。可求解如下问题:

定义
NonLP_minSUMT(Fun:String;X0:array;A:Array;B:Array;Aeq:Array;Beq:Array; Nonlcon;Methods:String):array
参数
名称类型说明
FunString目标函数表达式,为字符串类型;
x0array初值向量,为一维数组类型;
AArray线性矩阵不等式约束,为二维数组类型;
BArray线性向量不等式约束值,为一维数组类型;
AeqArray线性矩阵等式约束,为二维数组类型;
BeqArray线性向量等式约束值,为一维数组类型;
NonlconString非线性约束回调,为字符串类型;
METHODSString方法选择,’NM’,’Rb’,’HJ’
  • 范例


    {线性不等式约束
      x[0]+x[1] <= 3;
      4*x[0]+x[1]<=9 ; }
      A :=ARRAY((1,1),(4,1));
      B := array(3,9);
      //线性等式约束
      AEQ := ARRAY();
      BEQ := ARRAY();
      // 初始值
      x0:=array(1,1) ;
      //分别设置的变量,约束条件,目标函数的迭代精度;不设置采用默认值
      Return NonLP_minSUMT('obj',X0,A,B,Aeq,Beq,'constr',"NM");

    //目标函数
    Function obj(x);
    Begin
      Return 2*x[0]^2-4*x[0]*x[1]+4*x[1]^2-6*x[0]-3*x[1];
    End;

    //非线性约束:
    function constr(x);
    begin
    ne := array();
    e := array() ;
    ne[0]:= x[0]+x[1]^2-5;//x[0]+x[1]^2<5非线性不等式约束
    e[0]:=x[1]^2+x[0]^2-4;//x[1]^2=4非线性等式约束
    return array(ne,e);
    end

    结果:
    参考
    Prog_N Fmin NonLP_minPS NonLP_minFactor NonLP_Fmincon 
相关