查看单个帖子
旧 2009-04-01, 18:23   #1
ggyyree
初级会员
 
注册日期: 2009-04-01
年龄: 31
帖子: 2
声望力: 0
ggyyree 正向着好的方向发展
问题 [求助]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呢?谢谢
ggyyree 当前离线   回复时引用此帖