MATLAB 2014b fminunc提供渐变

时间:2016-09-01 06:45:39

标签: matlab minimization

当使用无约束最小化求解器fminunc作为求解器在线文档中提供的以下选项时,如何提供函数的渐变? options = optimoptions('fminunc','Algorithm','trustregion','SpecifyObjectiveGradient',true); 在MATLAB 2014b中不可用。

1 个答案:

答案 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