找回密码
 注册
Simdroid-非首页
查看: 82|回复: 0

Matlab Optimization fmincon/fminunc 如何调用Hessian函数?

[复制链接]
发表于 2009-3-31 20:03:08 | 显示全部楼层 |阅读模式 来自 英国
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呢?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 02:26 , Processed in 0.034874 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表