2016-09-01 6 views
0

Как я могу обеспечить градиент функции при использовании безусловной минимизации решателя fminunc в виде следующих вариантов, представленных в онлайн-документации решателя options = optimoptions('fminunc','Algorithm','trustregion','SpecifyObjectiveGradient',true); не доступно в MATLAB 2014b.MATLAB 2014b fminunc обеспечивает градиент

ответ

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