我一直在用matlab来解决一个二次优化问题,使用一个因子结构的hessian,假设我有一个协方差矩阵H,我写成H=A+B*B‘。
然后我有一小段代码来计算
hessianf=@f; options = optimset('HessMult', hessianf);
y1 = quadprog(A, r, [], [], [], [], [], [], [], options, B);
使用
function H=f(A,x,B) H=A*x+B*(B'*x); end
上面的过程就是遵循http://www.mathworks.com/help/toolbox/optim/ug/brn4nlc.html
然而,matlab说“必须为活动集算法显式指定H:不能使用HessMult选项。”
我对问题出在哪里感到非常困惑。有人能给我一些建议吗?
发布于 2011-12-06 12:57:52
我认为你应该使用trust-region-reflective算法而不是active-set算法。因此,将optimset('Algorithm', 'trust-region-reflective')添加到您的选项中。
https://stackoverflow.com/questions/8393774
复制相似问题