Я использовал matlab для решения задачи квадратичной оптимизации, используя фактор-структурированный гессиан, скажем, у меня есть ковариационная матрица H, и я записал ее как H = A + B * B '.
Тогда у меня есть небольшой кусочек кода для вычисления
hessianf=@f;
options = optimset('HessMult', hessianf);<br>
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.».
Я очень запутался в том, где проблема. Кто-нибудь может дать мне какое-нибудь предложение?