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

Fmin    

简述
(非线性规划建议统一使用prog_n函数),用起作用集法求任意形式非线性优化问题,结果返回最优点、最优值。可求解如下问题:

定义
NonLP_Fmincon(Fun:String;X0:array;A:Array;B:Array;Aeq:Array;Beq:Array;Nonlcon:String):array
参数
名称类型说明
FunString目标函数表达式,为字符串类型;
x0array初值向量,为一维数组类型;
AArray线性矩阵不等式约束,为二维数组类型;
BArray线性向量不等式约束值,为一维数组类型;
AeqArray线性矩阵等式约束,为二维数组类型;
BeqArray线性向量等式约束值,为一维数组类型;
NonlconString非线性约束回调,为字符串类型;nonlcon回调需用户自己新建一个函数,然后把函数名传进nonlcon,函数格式如下:
Function “函数名”(x);
Begin
C=array();//*
C[0]:=……
C[1]:=……
……
Ceq:=array();//*
Ceq[0]:=……
Ceq[1]:=……
……
Return array(0:c,1:ceq);//*
End;
//*号的式子一定要写
  • 范例

    Find values of x that minimize
    f(x) = –x1x2x3, starting at the point x = [10;10;10],
    subject to the constraints:

    0 ≤ x1 + 2x2 + 2x3 ≤ 72.
    TSL代码:
    fun:="Fmin_FunCall";//回调目标函数
    x0:=array(10,10,10);//初值
    A:=array((-1,-2,-2),(1,2,2));//线性不等式左边
    B:=array(0,72);//线性不等式右边
    Aeq:=array();//
    Beq:=array();//
    lb:=array();
    ub:=array();
    nonlcon:="";//回调非线性约束为空
    return fmin(fun,x0,A,B,Aeq,Beq,lb,ub,nonlcon);

    结果:

    x1=24,x2=12,x3=12,最优值f(x)=-3456
    回调函数:
    Function Fmin_FunCall(x);
    Begin
     return -x[0]*x[2]*x[1];
    End;
    参考
    Prog_N NonLP_minSUMT NonLP_minPS NonLP_minFactor NonLP_Fmincon 
相关