utilities(matlab)—— minFunc

minFunc

minFunc is a Matlab function for unconstrained optimization(无约束最优化) of differentiable real-valued multivariate functions (可微分实值多元函数)using line-search methods(线性搜索).

接口

function [x,f,exitflag,output] = minFunc(funObj,x0,options,varargin)

% Inputs:
%   funObj - is a function handle
%   x0 - is a starting vector;
%   options - is a struct containing parameters (defaults are used for non-existent or blank fields)
%   varargin{:} - all other arguments are passed as additional arguments to funObj
%
% Outputs:
%   x is the minimum value found
%   f is the function value at the minimum found
  • (1)既然针对的是可微函数,至少需要为最优化的目标函数提供函数值和一阶梯度的输出,

    % f.m
    function [y, dy] = f(x)
    y = (x-2)^2;
    dy = 2*(x-2);
    
    >> minFunc(@f, 0)
     Iteration   FunEvals     Step Length    Function Val        Opt Cond
             1          2     2.50000e-01     1.00000e+00     2.00000e+00
             2          3     1.00000e+00     0.00000e+00     0.00000e+00
    Optimality Condition below optTol
    
    ans =
    
         2
                             % 也即在 x = 2 处取得最小值,

options vs options.Method

options

% Initialize options for minFunc
options.Method = 'cg';
                            % 'lbfgs'
options.display = 'off';
options.verbose = 0;
options.maxIter = 20;

options.Method

  • (1)’sd’:Steepest Descent
  • (2)’cg’: Non-Linear Conjugate Gradient(非线性共轭梯度)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值