最大最小化有关函数介绍

fminimax 函数使多目标函数中的最坏情况达到最小化。给定初值估计,该值必须服从一定的约束条件。其语法格式为:

x = fminimax(fun,x0):初值为x0,找到fun函数的最大最小化解x。

x = fminimax(fun,x0,A,b):给定线性不等式A*x <= b,求解最大最小化问题。

x = fminimax(fun,x,A,b,Aeq,beq):给定线性等式,Aeq*x = beq,求解最大最小化问题。如果没有不等式存在,则设置A=[ ]、b=[ ]。

x = fminimax(fun,x,A,b,Aeq,beq,lb,ub):为变量定义一系列下限lb和上限ub,使得总有lb <= x <= ub。

x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon):在nonlcon参数中给定非线性不等式约束c(x)或等式约束ceq(x),fminimax函数要求c(x) <= 0且ceq(x) = 0。若没有边界存在,则设置lb=[ ]和(或)ub=[ ]。

x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options):用options给定的参数进行优化。

[x,fval] = fminimax(...):返回解x处的目标函数值。

[x,fval,maxfval,exitflag,output] = fminimax(...):返回解x处的最大函数值,返回exitflag参数描述函数计算的退出条件,返回描述优化信息的结构输出output参数。

[x,fval,maxfval,exitflag,output,lambda] = fminimax(...):返回包含解x处Lagrange乘子的lambda参数。

语法格式中的maxfval变量为解x处函数值的最大值,maxfval = max{fun(x)}。

fminimax函数使用序列二次规划法(SQP)进行计算,对一维搜索法和Hess矩阵的计算进行了修改。在一维搜索中,将精确目标函数和另外目标函数一起使用。当有一个目标函数不再发生改善时,一维搜索终止。这里使用了改进的Hess矩阵。

在使用fminmax函数时需要注意下面几个问题。

(1)在options.MinAbsMax中设置F最大绝对值最小化的目标数。该目标数应该被放到F的第1个元素中。

(2)当提供了等式约束并且在二次子问题中发现并剔除了因变等式时,则在过程标题中打印'dependent'字样(当输出选项被设置为options.Display='iter')。因变等式只有在等式连续的情况下才被剔除。若等式不连续,则子问题不可行并且在过程标题中打印'infeasible'字样。

另外,要求目标函数必须连续,否则fminimax函数有可能给出局部最优解。