[求助]Matlab Optimization fmincon/fminunc 如何调用Hessian函数
Matlab Optimization fmincon/fminunc 如何调用Hessian函数?
使用fmincon或者fminunc函数时可以直接使用Hessian矩阵。只要在function evaluate时返回函数值f,梯度g和Hessian矩阵H就可以了,如:
x = fmincon(@func,x0,A,b)
function [f, g, H] = func(x)
但是,同样fmincon和fminunc可以把Hessian矩阵定义成一个函数形式,@hessianfcn或者@HessMultFcn
options = optimset('Hessian','user-supplied','HessFcn',@hessianfcn);
或者,
options = optimset('Hessian','user-supplied', 'HessMult',@HessMultFcn);
请问如何定义函数@hessianfcn或者@HessMultFcn?
Matlab解释可以定义函数@HessMultFcn返回W = H*v,这样可以避免生成Hessian矩阵的内存开销,但是这里的向量v是什么呢?如果我不想生成Hessian矩阵,而我可以得到W = H*v中的W向量,请问怎么定义@HessMultFcn呢?谢谢
|