MATLAB 2014b fminunc 提供梯度
MATLAB 2014b fminunc provide gradient
如何在使用无约束最小化求解器时提供函数的梯度 fminunc
作为求解器在线文档中提供的以下选项
options = optimoptions('fminunc','Algorithm','trustregion','SpecifyObjectiveGradient',true);
在 MATLAB 2014b 中不可用。
您可以使用 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
如何在使用无约束最小化求解器时提供函数的梯度 fminunc
作为求解器在线文档中提供的以下选项
options = optimoptions('fminunc','Algorithm','trustregion','SpecifyObjectiveGradient',true);
在 MATLAB 2014b 中不可用。
您可以使用 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