当使用无约束最小化求解器fminunc
作为求解器在线文档中提供的以下选项时,如何提供函数的渐变?
options = optimoptions('fminunc','Algorithm','trustregion','SpecifyObjectiveGradient',true);
在MATLAB 2014b中不可用。
答案 0 :(得分: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