utilities(matlab)—— minFunc

3724 단어
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) 가미함수를 겨냥한 이상 적어도 최적화된 목표 함수에 함수 값과 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(비선형 멍에 사다리)
  • 좋은 웹페이지 즐겨찾기