Как я могу обеспечить градиент функции при использовании безусловной минимизации решателя fminunc
в виде следующих вариантов, представленных в онлайн-документации решателя options = optimoptions('fminunc','Algorithm','trustregion','SpecifyObjectiveGradient',true);
не доступно в MATLAB 2014b.MATLAB 2014b fminunc обеспечивает градиент
0
A
ответ
1
Вы можете использовать опцию GradObj
. Так, например, сказать, что мы имеем функцию x1^2 + x2^4:
function [f,g]= goal(x)
f= x(1)^2+x(2)^4; % function
if nargout>1 % gradient
g= [2*x(1);4*x(2)^3];
end
end
Нам нужно установить GradObj
вариант:
options=optimset('GradObj','on');
Теперь мы можем получить решение:
x= fminunc(@goal,x0,options) % x0 is the inital point