Main Content

黑塞矩阵输出

fminuncfmincon 求解器返回一个逼近黑塞函数作为可选输出。

[x,fval,exitflag,output,grad,hessian] = fminunc(fun,x0)
% or
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

本主题说明返回的黑塞函数的含义以及您可能获得的准确度。

您还可以指定求解器用作输入黑塞函数参量的黑塞函数的类型。对于 fminunc,请参阅包括梯度和黑塞函数。对于 fmincon,请参阅作为输入的黑塞矩阵

fminunc黑塞函数

无约束问题的黑塞函数是由目标函数 f 的二阶导数组成的矩阵:

Hessian Hij=2fxixj.

  • 拟牛顿算法 - fminunc 在解处返回估计的黑塞函数。fminunc 通过有限差分计算估计值,因此估计值通常是准确的。

  • 信赖域算法 - fminunc 在倒数第二个迭代中返回一个黑塞函数。

    • 如果您在目标函数中提供黑塞函数并将 HessianFcn 选项设置为 'objective'fminunc 将返回此黑塞函数。

    • 如果您提供 HessianMultiplyFcn 函数,fminunc 将从 HessianMultiplyFcn 函数返回 Hinfo 矩阵。有关详细信息,请参阅 fminunc options 表的 trust-region 部分中的 HessianMultiplyFcn

    • 否则,fminunc 将基于梯度通过稀疏有限差分算法返回一个逼近矩阵。

    此黑塞函数对于倒数第二个迭代是准确的。然而,倒数第二个迭代可能并不接近最终点。

    trust-region 算法在倒数第二个迭代返回黑塞函数是为了提高效率。fminunc 在内部使用黑塞函数来计算其下一迭代步。当 fminunc 达到停止条件时,它不需要计算下一迭代步,因此不会计算黑塞函数。

fmincon黑塞函数

约束问题的黑塞函数是拉格朗日黑塞函数。对于目标函数 f、非线性不等式约束向量 c 以及非线性等式约束向量 ceq,拉格朗日函数为

L=f+iλici+jλjceqj.

λi 是拉格朗日乘数;请参阅一阶最优性测度拉格朗日乘数结构体。拉格朗日方程的黑塞函数公式为

H=2L=2f+iλi2ci+jλj2ceqj.

fmincon 提供若干种算法和几个选项来计算黑塞函数,如 fmincon 信赖域反射算法fmincon 活动集算法fmincon 内点算法中所述。

  • active-setsqpsqp-legacy 算法 - fmincon 返回它在倒数第二个迭代中计算的黑塞函数逼近。fmincon 会在其迭代过程中计算在解处的黑塞函数的拟牛顿逼近。一般情况下,这种逼近并不在每个分量上都与真正的黑塞函数相匹配,而是仅在某些子空间中匹配。因此,fmincon 返回的黑塞函数可能不准确。有关 active-set 计算的详细信息,请参阅SQP 实现

  • trust-region-reflective 算法 - fmincon 返回它在倒数第二个迭代中计算的黑塞函数。

    • 如果您在目标函数中提供黑塞函数并将 HessianFcn 选项设置为 'objective'fmincon 将返回此黑塞函数。

    • 如果您提供 HessianMultiplyFcn 函数,fmincon 将从 HessianMultiplyFcn 函数返回 Hinfo 矩阵。有关详细信息,请参阅 fmincon options 中的信赖域反射算法

    • 否则,fmincon 将基于梯度通过稀疏有限差分算法返回一个逼近矩阵。

    此黑塞函数对于倒数第二个迭代是准确的。然而,倒数第二个迭代可能并不接近最终点。

    trust-region-reflective 算法在倒数第二个迭代返回黑塞函数是为了提高效率。fmincon 在内部使用黑塞函数来计算其下一迭代步。当 fmincon 达到停止条件时,它不需要计算下一迭代步,因此不会计算黑塞函数。

  • interior-point 算法

    • 如果 HessianApproximation 选项是 'lbfgs''finite-difference',或如果您提供 HessianMultiplyFcn 函数,则 fmincon 返回 [] 作为黑塞函数。

    • 如果 HessianApproximation 选项是 'bfgs'(默认值),fmincon 会返回最终点处的黑塞函数的拟牛顿逼近。此黑塞函数可能不准确,类似于 active-setsqp 算法黑塞函数。

    • 如果 HessianFcn 选项是函数句柄,fmincon 会在最终点处返回此函数作为黑塞函数。

相关主题